From 55060d1ad2c2648ff3e6676d707ada1083903adb Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Tue, 26 Nov 2024 00:39:23 +0500 Subject: [PATCH] add notes --- app/Models/Order/Loan/LoanOrder.php | 12 +++++++- .../Models/LoanOrderRequiredDocs.php | 10 +++++++ .../LoanOrderRequiredDocsRepository.php | 27 ++++++++++++++++++ .../Resources/Order/Loan/LoanOrderMobile.php | 19 ++++++++++++- .../Loan/LoanOrderMobileFieldsForDetail.php | 5 +++- ...der_required_docs_to_loan_orders_table.php | 28 +++++++++++++++++++ ..._change_notes_from_loan_orders_to_text.php | 28 +++++++++++++++++++ lang/tk.json | 3 +- 8 files changed, 128 insertions(+), 4 deletions(-) create mode 100644 app/Modules/LoanOrder/Repositories/LoanOrderRequiredDocsRepository.php create mode 100644 database/migrations/2024_11_26_001953_add_loan_order_required_docs_to_loan_orders_table.php create mode 100644 database/migrations/2024_11_26_003504_change_notes_from_loan_orders_to_text.php diff --git a/app/Models/Order/Loan/LoanOrder.php b/app/Models/Order/Loan/LoanOrder.php index 9b5d874..65db641 100644 --- a/app/Models/Order/Loan/LoanOrder.php +++ b/app/Models/Order/Loan/LoanOrder.php @@ -5,6 +5,7 @@ namespace App\Models\Order\Loan; use App\Models\Branch\Branch; use App\Models\System\Location\Province; use App\Models\User; +use App\Modules\LoanOrder\Models\LoanOrderRequiredDocs; use App\Repos\Order\Loan\LoanOrderRepo; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -82,7 +83,8 @@ use Laravel\Nova\Actions\Actionable; * @property string $loan_card_number * @property string $loan_card_name * @property string $loan_card_month - * @property string $loan_card_yea + * @property string $loan_card_year + * @property ?int $loan_order_required_doc_id */ class LoanOrder extends Model { @@ -177,6 +179,14 @@ class LoanOrder extends Model return $this->belongsTo(User::class, 'user_id'); } + /** + * Required docs + */ + public function requiredDocs(): BelongsTo + { + return $this->belongsTo(LoanOrderRequiredDocs::class, 'loan_order_required_doc_id'); + } + /** * "boot" method for model */ diff --git a/app/Modules/LoanOrder/Models/LoanOrderRequiredDocs.php b/app/Modules/LoanOrder/Models/LoanOrderRequiredDocs.php index 70878fd..712f181 100644 --- a/app/Modules/LoanOrder/Models/LoanOrderRequiredDocs.php +++ b/app/Modules/LoanOrder/Models/LoanOrderRequiredDocs.php @@ -2,7 +2,9 @@ namespace App\Modules\LoanOrder\Models; +use App\Models\Order\Loan\LoanOrder; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasMany; use Spatie\Translatable\HasTranslations; class LoanOrderRequiredDocs extends Model @@ -23,4 +25,12 @@ class LoanOrderRequiredDocs extends Model 'name', 'value', ]; + + /** + * Loan orders + */ + public function loanOrders(): HasMany + { + return $this->hasMany(LoanOrder::class, 'loan_order_required_doc_id'); + } } diff --git a/app/Modules/LoanOrder/Repositories/LoanOrderRequiredDocsRepository.php b/app/Modules/LoanOrder/Repositories/LoanOrderRequiredDocsRepository.php new file mode 100644 index 0000000..438c091 --- /dev/null +++ b/app/Modules/LoanOrder/Repositories/LoanOrderRequiredDocsRepository.php @@ -0,0 +1,27 @@ +pluck('name', 'id'); + } +} diff --git a/app/Nova/Resources/Order/Loan/LoanOrderMobile.php b/app/Nova/Resources/Order/Loan/LoanOrderMobile.php index 94f5592..798c8eb 100644 --- a/app/Nova/Resources/Order/Loan/LoanOrderMobile.php +++ b/app/Nova/Resources/Order/Loan/LoanOrderMobile.php @@ -6,6 +6,7 @@ use App\Models\Branch\Branch; use App\Models\Order\Loan\LoanOrder as LoanOrderModel; use App\Models\System\Location\Province; use App\Modules\DateHelper\Repositories\DateHelperRepository; +use App\Modules\LoanOrder\Repositories\LoanOrderRequiredDocsRepository; use App\Nova\Filters\RegionFilter; use App\Nova\Filters\StatusFilter; use App\Nova\Resource; @@ -26,12 +27,14 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Gate; use Laravel\Nova\Fields\Date; use Laravel\Nova\Fields\Email; +use Laravel\Nova\Fields\FormData; use Laravel\Nova\Fields\Hidden; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Image; use Laravel\Nova\Fields\Number; use Laravel\Nova\Fields\Select; use Laravel\Nova\Fields\Text; +use Laravel\Nova\Fields\Trix; use Laravel\Nova\Http\Requests\NovaRequest; use Laravel\Nova\Panel; use Nurmuhammet\NovaInputmask\NovaInputmask; @@ -169,9 +172,23 @@ class LoanOrderMobile extends Resource ->rules('required') ->canSeeWhen('systemUser', $this), - Text::make(__('Note'), 'notes') + Select::make(__('Required docs'), 'loan_order_required_doc_id') + ->displayUsingLabels() + ->searchable() + ->options(LoanOrderRequiredDocsRepository::values()) ->fullWidth() + ->rules('required') ->canSeeWhen('systemUser', $this), + + Trix::make(__('Note'), 'notes') + ->fullWidth() + ->dependsOn('loan_order_required_doc_id', function (Trix $field, NovaRequest $request, FormData $formData) { + $requiredDoc = $formData->get('loan_order_required_doc_id'); + + if ($requiredDoc) { + $field->setValue(LoanOrderRequiredDocsRepository::find($requiredDoc)->value); + } + }), ]), new Panel(__('Loan'), [ diff --git a/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php b/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php index 93b7163..537af9d 100644 --- a/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php +++ b/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php @@ -21,6 +21,7 @@ use Laravel\Nova\Fields\Image; use Laravel\Nova\Fields\Number; use Laravel\Nova\Fields\Select; use Laravel\Nova\Fields\Text; +use Laravel\Nova\Fields\Trix; use Laravel\Nova\Panel; use Nurmuhammet\NovaCustomHtml\NovaCustomHtml; use Nurmuhammet\NovaInputmask\NovaInputmask; @@ -45,7 +46,9 @@ class LoanOrderMobileFieldsForDetail ->withIcons() ->icons(OrderRepo::statusIcons()), - Text::make(__('Note'), 'notes'), + Trix::make(__('Note'), 'notes') + ->fullWidth() + ->alwaysShow(), BelongsTo::make(__('Created by').': ', 'user', User::class), diff --git a/database/migrations/2024_11_26_001953_add_loan_order_required_docs_to_loan_orders_table.php b/database/migrations/2024_11_26_001953_add_loan_order_required_docs_to_loan_orders_table.php new file mode 100644 index 0000000..c571b94 --- /dev/null +++ b/database/migrations/2024_11_26_001953_add_loan_order_required_docs_to_loan_orders_table.php @@ -0,0 +1,28 @@ +foreignId('loan_order_required_doc_id')->nullable()->constrained('loan_order_required_docs')->restrictOnDelete(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('loan_orders', function (Blueprint $table) { + $table->dropColumn('loan_order_required_doc_id'); + }); + } +}; diff --git a/database/migrations/2024_11_26_003504_change_notes_from_loan_orders_to_text.php b/database/migrations/2024_11_26_003504_change_notes_from_loan_orders_to_text.php new file mode 100644 index 0000000..ed91298 --- /dev/null +++ b/database/migrations/2024_11_26_003504_change_notes_from_loan_orders_to_text.php @@ -0,0 +1,28 @@ +text('notes')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('loan_orders', function (Blueprint $table) { + $table->string('notes')->nullable()->change(); + }); + } +}; diff --git a/lang/tk.json b/lang/tk.json index 109b300..5ca1ea5 100644 --- a/lang/tk.json +++ b/lang/tk.json @@ -330,5 +330,6 @@ "Online payment history": "Onlaýn töleg taryhy", "Make payment": "Töleg", "Visa/Master, Sber Settings": "Visa/Master, Sber sazlamalar", - "Loan order required docs": "Karz gerekli resminamalary" + "Loan order required docs": "Karz gerekli resminamalary", + "Required docs": "Gerekli resminamalar" }