From 4ccb8b4347a4d81589a5986c3000dd59d7ba235b Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Tue, 24 Sep 2024 23:10:46 +0500 Subject: [PATCH] wip --- .../Controllers/LoanOrderController.php | 18 ++- .../Requests/LoanOrderStoreRequest.php | 132 ++++++++++++++++++ .../Concerns/LoanOrderFieldsForDetail.php | 1 - app/Repos/Order/Loan/LoanTypeRepo.php | 3 + app/Repos/Order/OrderRepo.php | 5 + 5 files changed, 154 insertions(+), 5 deletions(-) diff --git a/app/Modules/LoanOrder/Controllers/LoanOrderController.php b/app/Modules/LoanOrder/Controllers/LoanOrderController.php index 224ea29..cd5ddc4 100644 --- a/app/Modules/LoanOrder/Controllers/LoanOrderController.php +++ b/app/Modules/LoanOrder/Controllers/LoanOrderController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use App\Models\Order\Loan\LoanOrder; use App\Modules\LoanOrder\Controllers\Requests\LoanOrderStoreRequest; use App\Modules\LoanOrder\Controllers\Resources\LoanOrderIndexResource; +use App\Repos\Order\OrderRepo; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -24,11 +25,20 @@ class LoanOrderController extends Controller /** * SAVE* Loan order. */ - public function store(LoanOrderStoreRequest $request): void + public function store(LoanOrderStoreRequest $request): JsonResponse { - // "user_id", - // "status", - // "notes", + LoanOrder::create( + $request->validated(), + ...[ + 'user_id' => auth()->id(), + 'status' => OrderRepo::PENDING, + 'source' => OrderRepo::MOBILE_DEVICE, + ] + ); + + return response()->json([ + 'message' => __('Successfully created'), + ], 201); } /** diff --git a/app/Modules/LoanOrder/Controllers/Requests/LoanOrderStoreRequest.php b/app/Modules/LoanOrder/Controllers/Requests/LoanOrderStoreRequest.php index e2640ee..e3a0c3f 100644 --- a/app/Modules/LoanOrder/Controllers/Requests/LoanOrderStoreRequest.php +++ b/app/Modules/LoanOrder/Controllers/Requests/LoanOrderStoreRequest.php @@ -24,6 +24,13 @@ class LoanOrderStoreRequest extends FormRequest */ 'loan_type' => ['required', 'integer', Rule::exists('loan_types', 'id')], + /** + * Loan amount + * + * @example 20000 + */ + 'loan_amount' => ['required', 'integer', 'max:40000'], + /** * Region (https://online.tbbank.gov.tm/api/base-app-enums) */ @@ -147,6 +154,34 @@ class LoanOrderStoreRequest extends FormRequest */ 'phone_home' => ['required', 'string', 'max:255'], + /** + * Card number + * + * @example 4434345434423442 + */ + 'card_number' => ['required', 'digits:16'], + + /** + * Name on card + * + * @example 'Mahmyt Allaberdiyev' + */ + 'card_name' => ['required', 'string', 'max:255'], + + /** + * Card expiration month + * + * @example 06 + */ + 'card_month' => ['required'], + + /** + * Card expiration year + * + * @example 2040 + */ + 'card_year' => ['required'], + /** * Region (https://online.tbbank.gov.tm/api/base-app-enums) */ @@ -212,6 +247,103 @@ class LoanOrderStoreRequest extends FormRequest */ 'passport_four' => ['required', 'file', 'max:2048', 'mimes:jpg,png,jpeg'], + /** + * Guarantor name + * + * @example Mahmyt + */ + 'guarantor_name' => ['required', 'string', 'max:255'], + + /** + * Guarantor surname + * + * @example Allaberdiev + */ + 'guarantor_surname' => ['required', 'string', 'max:255'], + + /** + * Guarantor surname + * + * @example Owezowic + */ + 'guarantor_patronic_name' => ['required', 'string', 'max:255'], + + /** + * Guarantor card number + * + * @example 4323344234423443 + */ + 'guarantor_card_number' => ['required', 'string', 'max:255'], + + /** + * Guarantor name on card + * + * @example Mahmyt Allaberdiyev + */ + 'guarantor_card_name' => ['required', 'string', 'max:255'], + + /** + * Guarantor Card month + * + * @example 06 + */ + 'guarantor_card_month' => ['required', 'string', 'max:255'], + + /** + * Guarantor Card year + * + * @example 2040 + */ + 'guarantor_card_year' => ['required', 'string', 'max:255'], + + /** + * 2. Guarantor name + * + * @example Mahmyt + */ + 'guarantor_2_name' => ['required', 'string', 'max:255'], + + /** + * 2. Guarantor surname + * + * @example Allaberdiev + */ + 'guarantor_2_surname' => ['required', 'string', 'max:255'], + + /** + * 2. Guarantor patronic name + * + * @example Owezowich + */ + 'guarantor_2_patronic_name' => ['nullable', 'string', 'max:255'], + + /** + * 2. Guarantor card number + * + * @example 4323344234423443 + */ + 'guarantor_2_card_number' => [], + + /** + * 2. Guarantor name on card + * + * @example Mahmyt Allaberdiyev + */ + 'guarantor_2_card_name' => [], + + /** + * 2. Guarantor Card month + * + * @example 06 + */ + 'guarantor_2_card_month' => [], + + /** + * 2. Guarantor Card year + * + * @example 2040 + */ + 'guarantor_2_card_year' => [], ]; } } diff --git a/app/Nova/Resources/Order/Loan/Concerns/LoanOrderFieldsForDetail.php b/app/Nova/Resources/Order/Loan/Concerns/LoanOrderFieldsForDetail.php index 700b28b..37e7a34 100644 --- a/app/Nova/Resources/Order/Loan/Concerns/LoanOrderFieldsForDetail.php +++ b/app/Nova/Resources/Order/Loan/Concerns/LoanOrderFieldsForDetail.php @@ -2,7 +2,6 @@ namespace App\Nova\Resources\Order\Loan\Concerns; -use App\Modules\DateHelper\Repositories\DateHelperRepository; use App\Nova\Resources\Branch\Branch; use App\Nova\Resources\Order\Loan\LoanType; use App\Nova\Resources\System\Location\Province; diff --git a/app/Repos/Order/Loan/LoanTypeRepo.php b/app/Repos/Order/Loan/LoanTypeRepo.php index df45a0f..06af25f 100644 --- a/app/Repos/Order/Loan/LoanTypeRepo.php +++ b/app/Repos/Order/Loan/LoanTypeRepo.php @@ -17,6 +17,9 @@ class LoanTypeRepo return LoanType::where('active', true)->pluck('name', 'id'); } + /** + * Only guarantor + */ public static function onlyGuarantor(): Collection|array { return LoanType::where('active', true)->where('id', static::loanTypeGuarantorId())->pluck('name', 'id'); diff --git a/app/Repos/Order/OrderRepo.php b/app/Repos/Order/OrderRepo.php index 094858d..19db98d 100644 --- a/app/Repos/Order/OrderRepo.php +++ b/app/Repos/Order/OrderRepo.php @@ -29,6 +29,11 @@ class OrderRepo */ public const CANCELLED = 'cancelled'; + /** + * Mobile device + */ + public const MOBILE_DEVICE = 'mobile'; + /** * Default status value */