diff --git a/app/Nova/Resources/Order/Loan/LoanPaidOffLetter/LoanPaidOffLetterOrderFieldsForDetail.php b/app/Nova/Resources/Order/Loan/LoanPaidOffLetter/LoanPaidOffLetterOrderFieldsForDetail.php new file mode 100644 index 0000000..fb96c70 --- /dev/null +++ b/app/Nova/Resources/Order/Loan/LoanPaidOffLetter/LoanPaidOffLetterOrderFieldsForDetail.php @@ -0,0 +1,88 @@ +hide(), + Text::make(__('ID'), 'unique_id'), + + Badge::make(__('Status'), 'status') + ->map(OrderRepo::statusClasses()) + ->addTypes([ + 'primary' => 'dark:bg-gray-900 bg-gray-600 text-white', + ]) + ->labels(OrderRepo::statusValues()) + ->withIcons() + ->icons(OrderRepo::statusIcons()), + + Text::make(__('Note'), 'notes'), + + BelongsTo::make(__('Created by').': ', 'user', User::class), + + new Panel(__('Location'), [ + Select::make(__('Region'), 'region') + ->displayUsingLabels() + ->options(RegionRepo::values()), + + BelongsTo::make(__('Branch'), 'branch', Branch::class), + ]), + + new Panel(__('Personal data'), [ + Text::make( + __('Full Name'), + fn ($model) => sprintf( + '%s %s %s', + $model->customer_name, + $model->customer_surname, + $model->customer_patronic_name + ) + ), + + Date::make(__('Date of birth'), 'born_at') + ->toTurkmenFormat(), + + NovaInputmask::make(__('Phone'), 'phone') + ->mask('+(\\9\\93)-99-99-99-99') + ->storeRawValue(), + + Select::make(__('Passport serie'), 'passport_serie') + ->displayUsingLabels() + ->options(PassportRepo::values()), + + Number::make(__('Passport id'), 'passport_id'), + ]), + + new Panel(__('Karz barada maglumatlar'), [ + Text::make(__('Karz şertnamanyň belgisi'), 'loan_contract_number'), + Text::make(__('Karz şertnamanyň senesi'), 'loan_contract_date'), + Text::make(__('Karzyň möçberi'), 'loan_amount'), + Text::make(__('Karzyň maksady'), 'loan_reason'), + ]), + ]; + } +} diff --git a/app/Nova/Resources/Order/Loan/LoanPaidOffLetter/LoanPaidOffLetterOrderFieldsForIndex.php b/app/Nova/Resources/Order/Loan/LoanPaidOffLetter/LoanPaidOffLetterOrderFieldsForIndex.php new file mode 100644 index 0000000..ae928d4 --- /dev/null +++ b/app/Nova/Resources/Order/Loan/LoanPaidOffLetter/LoanPaidOffLetterOrderFieldsForIndex.php @@ -0,0 +1,54 @@ +hide(), + + Text::make(__('ID'), 'unique_id')->sortable(), + + Select::make(__('Region'), 'region') + ->displayUsingLabels() + ->options(RegionRepo::values()) + ->canSeeWhen('isAdmin', $resource) + ->sortable(), + + BelongsTo::make(__('Branch'), 'branch', Branch::class) + ->canSeeWhen('isAdmin', $resource) + ->filterable() + ->sortable(), + + Text::make(__('Name'), 'customer_name'), + + Text::make(__('Surname'), 'customer_surname'), + + Text::make(__('Phone'), 'phone'), + + Badge::make(__('Status'), 'status') + ->map(OrderRepo::statusClasses()) + ->addTypes([ + 'primary' => 'dark:bg-gray-900 bg-gray-600 text-white', + ]) + ->labels(OrderRepo::statusValues()) + ->withIcons() + ->icons(OrderRepo::statusIcons()) + ->sortable(), + ]; + } +} diff --git a/app/Nova/Resources/Order/Loan/LoanPaidOffLetterOrder.php b/app/Nova/Resources/Order/Loan/LoanPaidOffLetterOrder.php index f9d25f4..b4bd3e6 100644 --- a/app/Nova/Resources/Order/Loan/LoanPaidOffLetterOrder.php +++ b/app/Nova/Resources/Order/Loan/LoanPaidOffLetterOrder.php @@ -7,6 +7,8 @@ use App\Models\Order\Loan\LoanPaidOffLetterOrder as LoanPaidOffLetterOrderModel; use App\Nova\Filters\RegionFilter; use App\Nova\Filters\StatusFilter; use App\Nova\Resource; +use App\Nova\Resources\Order\Loan\LoanPaidOffLetter\LoanPaidOffLetterOrderFieldsForDetail; +use App\Nova\Resources\Order\Loan\LoanPaidOffLetter\LoanPaidOffLetterOrderFieldsForIndex; use App\Repos\Order\Card\CardOrderRepo; use App\Repos\Order\OrderRepo; use App\Repos\System\Nova\NovaRepo; @@ -125,17 +127,29 @@ class LoanPaidOffLetterOrder extends Resource } /** - * Get the fields displayed by the resource. - * - * @return array + * Get the fields for index. */ - public function fields(NovaRequest $request) + public function fieldsForIndex(NovaRequest $request): array + { + return LoanPaidOffLetterOrderFieldsForIndex::make($this, $request); + } + + /** + * Get the fields for detail + */ + public function fieldsForDetail(): array + { + return LoanPaidOffLetterOrderFieldsForDetail::make($this); + } + + /** + * Get the fields displayed by the resource. + */ + public function fields(NovaRequest $request): array { return [ ID::make()->sortable(), - ID::make()->sortable(), - Hidden::make('user_id') ->default(auth()->id()) ->hideWhenUpdating(),