diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index eba6065..804ce24 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -206,11 +206,11 @@ class Kernel extends ConsoleKernel } })->daily()->runInBackground(); - // Generer les factures d'assurances chaque jour à minuit + // Mettre a jour les delai de paiements des factures d'assurances chaque jour à minuit $schedule->call(function () { try { DB::beginTransaction(); - $this->generateInsurancesInvoices(); + $this->updateInsurancesInvoices(); DB::commit(); } catch (\Throwable $t) { DB::rollBack(); diff --git a/app/Http/Controllers/InsuranceController.php b/app/Http/Controllers/InsuranceController.php index 54e3d00..9e826f9 100644 --- a/app/Http/Controllers/InsuranceController.php +++ b/app/Http/Controllers/InsuranceController.php @@ -340,7 +340,7 @@ class InsuranceController extends Controller * */ $this->validate($request, [ -// 'password' => 'required|string', + 'password' => 'required|string', 'beneficiaries' => 'nullable|array', 'beneficiaries.*.lastname' => 'required|string', 'beneficiaries.*.gender' => 'required|in:M,F', @@ -362,9 +362,9 @@ class InsuranceController extends Controller $identification = $insurance->user->identification; $this->userIdentificationVerification($user); // Validation du mot de passe dépendamment de la configuration du réseau - $this->validate($request, [ - 'password' => [new PasswordValidation($insurance->network_id, 'user', $user)] - ]); +// $this->validate($request, [ +// 'password' => [new PasswordValidation($insurance->network_id, 'user', $user)] +// ]); $nbOfBeneficiaries = $insurance->beneficiaries()->count(); $networkConfig = NhNetworksConfig::where('network_id', $insurance->network_id)->first(); @@ -666,21 +666,25 @@ class InsuranceController extends Controller */ public function renewInsurance(Request $request, $id) { -// $this->validate($request, [ -// 'password' => 'required|string', -// ]); + $this->validate($request, [ + 'password' => 'required|string', + ]); $insurance = NhInsurance::findOrFail($id); if (!in_array($insurance->state, [InsuranceState::STOPPED, InsuranceState::EXPIRED])) { return $this->errorResponse(__('errors.cannot_renew_insurance')); } + if (NhInsurancesInvoice::where('insurance_id', $id)->where('state', InsuranceInvoiceState::UNPAID)->count() > 0) { + return $this->errorResponse("Vous avez des factures non payés"); + } + $user = $insurance->user; $this->userIdentificationVerification($user); // Validation du mot de passe dépendamment de la configuration du réseau - $this->validate($request, [ - 'password' => [new PasswordValidation($insurance->network_id, 'user', $user)] - ]); +// $this->validate($request, [ +// 'password' => [new PasswordValidation($insurance->network_id, 'user', $user)] +// ]); $networkConfig = NhNetworksConfig::where('network_id', $insurance->network_id)->first(); if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante') @@ -715,65 +719,42 @@ class InsuranceController extends Controller $amount_per_split = ceil($total_bonus_amount / $monthPrice->number_of_fractions); $amount_last_payment = $total_bonus_amount - ($amount_per_split * ($monthPrice->number_of_fractions - 1)); - // Paiement de la 1ere facture - $amountToPaid = $amount_per_split; - if ($user->wallet->balance < $amountToPaid) { - $amount = $amountToPaid - $user->wallet->balance; - return $this->errorResponse(trans('errors.insufficient_balance', ['amount' => $this->toMoneyWithCurrencyCode($amount, $currency)])); - } - $datetime = $this->getCurrentTimeByCountryCode($user->network->country->code_country); - $hyperviseur = AgentPlus::where('category', 'hyper')->where('network_id', $insurance->network_id)->firstOrFail(); - $walletHyperviseur = Wallet::where('id_networkAgent', $hyperviseur->network_agent_id)->firstOrFail(); - $walletHyperviseur->balance_princ += $amountToPaid; - $walletHyperviseur->save(); - - $user->balance_nano_health += $amountToPaid; - $user->wallet->balance -= $amountToPaid; - $user->wallet->save(); - $user->save(); - - if (empty($monthPrice->waiting_period_days)) { - $start_at = $datetime; - } else { - $start_at = $this->addDaysToDateTime($datetime, $monthPrice->waiting_period_days)->format('Y-m-d H:i:s'); - } - $end_at = $this->addMonthsToDateTime($start_at, $monthPrice->number_of_months); - $insurance->update([ 'number_of_beneficiaries' => sizeof($insurance->beneficiaries), 'total_bonus_amount' => $total_bonus_amount, 'bonus_amount' => $bonus_amount, 'insurance_coverage_amount' => 0, 'updated_at' => $datetime, - 'state' => $monthPrice->number_of_fractions == 1 ? InsuranceState::PAID : InsuranceState::PARTIALLY_PAID, - 'start_at' => $start_at, - 'end_at' => $end_at, - 'deadlines' => $monthPrice->number_of_fractions, - 'paid_deadlines' => 1, - 'amount_per_split' => $amount_per_split, - 'amount_last_payment' => $amount_last_payment + 'state' => InsuranceState::UNDER_RENEW, + 'start_at' => null, + 'end_at' => null, ]); // Reinitialiser les montants de couvertures de l'assurance $insurance->beneficiaries->each->update([ 'insurance_coverage_amount' => 0 ]); - // Generer la 1ere facture + // Generer la facture NhInsurancesInvoice::create([ 'invoice_id' => $this->generateInsuranceInvoiceID(), 'insurance_id' => $insurance->id, - 'amount' => $amount_per_split, - 'payment_deadline' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days + $networkConfig->suspension_delay_days_after_reminder), - 'payment_reminder' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days), - 'state' => InsuranceInvoiceState::PAID, + 'amount' => $total_bonus_amount, + 'next_payment_deadline' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days + $networkConfig->suspension_delay_days_after_reminder), + 'next_payment_reminder' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days), + 'deadlines' => $monthPrice->number_of_fractions, + 'paid_deadlines' => 1, + 'next_payment_deadlines_to_paid' => 1, + 'amount_per_split' => $amount_per_split, + 'amount_last_payment' => $amount_last_payment, + 'state' => InsuranceInvoiceState::UNPAID, 'reason' => InsuranceAction::RENEWAL, 'created_at' => $datetime, 'updated_at' => $datetime, ]); Event::dispatch(new InsuranceEvent($insurance, trans('messages.insurance_renew'), trans('messages.insurance_renew_mail', ['name' => $user->lastname, 'insured_id' => $insurance->insured_id, - 'bonus_amount' => $this->toMoneyWithCurrencyCode($bonus_amount, $currency), 'total_bonus_amount' => $this->toMoneyWithCurrencyCode($amountToPaid, $currency), 'number_of_beneficiaries' => $insurance->number_of_beneficiaries, + 'bonus_amount' => $this->toMoneyWithCurrencyCode($bonus_amount, $currency), 'total_bonus_amount' => $this->toMoneyWithCurrencyCode($total_bonus_amount, $currency), 'number_of_beneficiaries' => $insurance->number_of_beneficiaries, 'gender' => trans('states.' . $user->identification->gender), 'insurance_name' => $insurance->network->name, 'months' => $monthPrice->number_of_months]))); DB::commit(); return $this->successResponse(trans('messages.insurance_renew_paid')); diff --git a/app/Http/Controllers/InsuranceInvoiceController.php b/app/Http/Controllers/InsuranceInvoiceController.php index 5f95905..4190bdc 100644 --- a/app/Http/Controllers/InsuranceInvoiceController.php +++ b/app/Http/Controllers/InsuranceInvoiceController.php @@ -102,7 +102,7 @@ class InsuranceInvoiceController extends Controller * ref="#/components/schemas/ApiResponse", * example = { * "status" : 200, - * "response" : {{"id":1,"invoice_id":"SFSF6565656","insurance_id":5,"subscription_id":2,"amount":"495\u202f000 FCFA","payment_deadline":"2022-04-08 17:31:52","payment_reminder":"2022-04-05 17:31:52","state":"NON PAY\u00c9E", + * "response" : {{"id":1,"invoice_id":"SFSF6565656","insurance_id":5,"subscription_id":2,"amount":"495\u202f000 FCFA","next_payment_deadline":"2022-04-08 17:31:52","next_payment_reminder":"2022-04-05 17:31:52","state":"NON PAY\u00c9E", * "reason":"ACTIVATION DE L'ASSURANCE","created_at":"2022-03-29T16:31:52.000000Z","updated_at":"2022-03-29T16:31:52.000000Z","insurance":{"id":5,"network_id":250,"user_id":349,"insured_id":"5DSTKZ7PQZX4", * "months_grid_id":77,"bonus_amount":"150000.00","number_of_beneficiaries":2,"total_bonus_amount":"495000.00","insurance_coverage_amount":"0.00","start_at":null,"end_at":null,"state":"UNDER_ACTIVATION", * "deadlines":1,"amount_last_payment":"495000.00","amount_per_split":"495000.00","paid_deadlines":0,"created_at":"2022-03-29T16:31:52.000000Z","updated_at":"2022-03-29T16:31:52.000000Z"}, @@ -136,7 +136,7 @@ class InsuranceInvoiceController extends Controller if (!empty($state)) { // if ($state == 'TO_PAID') { // $query = $query->where('state', InsuranceInvoiceState::UNPAID) -// ->where('payment_deadline', '>=', $datetime); +// ->where('next_payment_deadline', '>=', $datetime); // } else { $query = $query->where('state', $state); // } @@ -184,6 +184,11 @@ class InsuranceInvoiceController extends Controller * type="string", * example = "addfdf21", * description="Mot de passe de l'utilisateur" + * ), + * @OA\Property(property="amount", + * type="number", + * example = 32450, + * description="Montant à payer" * ) * ), * example = {"password":"adbc1215448"} @@ -202,10 +207,12 @@ class InsuranceInvoiceController extends Controller */ public function payInvoice($id, Request $request) { -// $this->validate($request, [ -// 'password' => 'required|string', -// ]); + $this->validate($request, [ + 'password' => 'required|string', + 'amount' => 'required|numeric|min:0' + ]); + $amountToPaid = $request->input('amount'); $invoice = NhInsurancesInvoice::findOrFail($id); $datetime = $this->getCurrentTimeByCountryCode($invoice->insurance->network->country->code_country); @@ -213,25 +220,38 @@ class InsuranceInvoiceController extends Controller return $this->errorResponse(trans('errors.invoice_already_paid')); } -// if ($invoice->payment_deadline < $datetime) { -// return $this->errorResponse(trans('errors.payment_deadline_reached')); -// } + $networkConfig = NhNetworksConfig::where('network_id', $invoice->insurance->network_id)->first(); + if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante') { + return $this->errorResponse(trans('errors.nano_health_not_activated')); + } $user = $invoice->insurance->user; $this->userIdentificationVerification($user); // Validation du mot de passe dépendamment de la configuration du réseau - $this->validate($request, [ - 'password' => [new PasswordValidation($invoice->insurance->network_id, 'user', $user)] - ]); +// $this->validate($request, [ +// 'password' => [new PasswordValidation($invoice->insurance->network_id, 'user', $user)] +// ]); $currency = $this->getNetworkCurrency($invoice->insurance->network_id); - $amountToPaid = $invoice->amount; + $total_paid_amount = NhInsurancesPayment::where('invoice_id', $id)->sum('amount'); + $total_remains_amount = $invoice->amount - $total_paid_amount; + + if ($amountToPaid > $total_remains_amount) { + return $this->errorResponse("Le montant maximum à payer est de " . $this->toMoneyWithCurrencyCode($total_remains_amount, $currency)); + } + + if ($amountToPaid < $invoice->amount_per_split && $amountToPaid < $total_remains_amount) { + if ($total_remains_amount < $invoice->amount_per_split) { + return $this->errorResponse(trans('errors.minimum amount_to_paid', ['amount' => $this->toMoneyWithCurrencyCode($total_remains_amount, $currency)])); + } + return $this->errorResponse(trans('errors.minimum amount_to_paid', ['amount' => $this->toMoneyWithCurrencyCode($invoice->amount_per_split, $currency)])); + } if ($user->wallet->balance < $amountToPaid) { - $amount = $amountToPaid - $user->wallet->balance; - return $this->errorResponse(trans('errors.insufficient_balance', ['amount' => $this->toMoneyWithCurrencyCode($amount, $currency)])); + $remains_amount = $amountToPaid - $user->wallet->balance; + return $this->errorResponse(trans('errors.insufficient_balance', ['amount' => $this->toMoneyWithCurrencyCode($remains_amount, $currency)])); } try { @@ -247,21 +267,37 @@ class InsuranceInvoiceController extends Controller $user->wallet->save(); $user->save(); - $invoice->update(['state' => InsuranceInvoiceState::PAID, 'updated_at' => $datetime]); - $invoice->insurance->paid_deadlines++; - if ($invoice->insurance->paid_deadlines == $invoice->insurance->deadlines) { + $payment = NhInsurancesPayment::create([ + 'payment_id' => $this->generateID('nh_insurances_payments', 'payment_id', 10), + 'invoice_id' => $invoice->id, + 'amount' => $amountToPaid + ]); + + // Calcul de l'equivalence en nombre d'echeance + $paid_deadlines = $amountToPaid < $invoice->amount_per_split ? 1 : intval($amountToPaid / $invoice->amount_per_split); + $invoice->paid_deadlines += $paid_deadlines; + $invoice->next_payment_deadlines_to_paid -= $paid_deadlines; + + if ($invoice->next_payment_deadlines_to_paid < 0) { + $invoice->next_payment_deadlines_to_paid = 0; + } + + if ($invoice->paid_deadlines == $invoice->deadlines) { $invoice->insurance->state = InsuranceState::PAID; + $invoice->state = InsuranceInvoiceState::PAID; $isPartialPayment = false; } else { - $countUnpaidInvoices = NhInsurancesInvoice::where('insurance_id', $invoice->insurance->id)->where('state', InsuranceInvoiceState::UNPAID)->count(); - if ($countUnpaidInvoices == 0) { + if ($invoice->next_payment_deadlines_to_paid == 0) { $invoice->insurance->state = InsuranceState::PARTIALLY_PAID; } + $deadline = $invoice->next_payment_deadline; + $invoice->next_payment_deadline = $this->addDaysToDateTime($deadline, $networkConfig->reminder_delay_days + $networkConfig->suspension_delay_days_after_reminder); // 1 semaines + 3 jours + $invoice->next_payment_reminder = $this->addDaysToDateTime($deadline, $networkConfig->reminder_delay_days); $isPartialPayment = true; } // Si c'est le 1er paiement - if ($invoice->insurance->paid_deadlines == 1) { + if ($invoice->paid_deadlines == 1) { if ($invoice->reason == InsuranceAction::ADDITION_OF_BENEFICIARY) { $invoice->insurance->bonus_amount = $invoice->subscription->bonus_amount; @@ -290,17 +326,19 @@ class InsuranceInvoiceController extends Controller } } + $invoice->updated_at = $datetime; + $invoice->insurance->updated_at = $datetime; $invoice->insurance->save(); + $invoice->save(); Event::dispatch(new InsuranceEvent($invoice->insurance, $isPartialPayment ? trans('messages.insurance_partially_paid') : trans('messages.insurance_subscription_paid'), trans('messages.insurance_paid_mail', ['name' => $invoice->insurance->user->lastname, 'insured_id' => $invoice->insurance->insured_id, 'bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->bonus_amount, $currency), 'total_bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->total_bonus_amount, $currency), 'number_of_beneficiaries' => $invoice->insurance->number_of_beneficiaries, 'gender' => trans('states.' . $invoice->insurance->user->identification->gender), 'insurance_name' => $invoice->insurance->network->name, 'months' => $invoice->insurance->monthsGrid->number_of_months, 'invoice_id' => $invoice->invoice_id, - 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'paid_deadlines' => $invoice->insurance->paid_deadlines, 'remains_deadlines' => $invoice->insurance->deadlines - $invoice->insurance->paid_deadlines, + 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'paid_amount' => $this->toMoneyWithCurrencyCode($total_paid_amount + $amountToPaid, $currency), 'remains_amount' => $this->toMoneyWithCurrencyCode($total_remains_amount - $amountToPaid, $currency), 'payment_period' => trans('states.' . $invoice->insurance->monthsGrid->payment_period), 'reason' => trans('states.' . $invoice->reason), 'title' => $isPartialPayment ? trans('messages.insurance_partially_paid_title') : trans('messages.insurance_fully_paid_title'), - 'deadlines' => $invoice->insurance->deadlines, 'amount_per_split' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_per_split, $currency), 'amount_last_payment' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_last_payment, $currency), 'waiting_days' => empty($invoice->insurance->monthsGrid->waiting_period_days) ? trans('messages.none') : trans('messages.n_days', ['n' => $invoice->insurance->monthsGrid->waiting_period_days]), - 'start_at' => $invoice->insurance->start_at + 'start_at' => $invoice->insurance->start_at, 'payment_id' => $payment->payment_id ]))); DB::commit(); return $this->successResponse(trans('messages.insurance_invoice_paid')); @@ -311,20 +349,20 @@ class InsuranceInvoiceController extends Controller } } - public function generateInvoices() - { - try { - DB::beginTransaction(); - $this->generateInsurancesInvoices(); - DB::commit(); - return $this->successResponse("Success"); - } catch (\Throwable $t) { - DB::rollBack(); - Log::error('-------- Insurances Invoices expired insurance-----------'); - Log::error($t->getMessage() . " :\n" . $t->getTraceAsString()); - return $this->errorResponse("Error"); - } - } +// public function generateInvoices() +// { +// try { +// DB::beginTransaction(); +// $this->generateInsurancesInvoices(); +// DB::commit(); +// return $this->successResponse("Success"); +// } catch (\Throwable $t) { +// DB::rollBack(); +// Log::error('-------- Insurances Invoices expired insurance-----------'); +// Log::error($t->getMessage() . " :\n" . $t->getTraceAsString()); +// return $this->errorResponse("Error"); +// } +// } public function reminderInvoices() { diff --git a/app/Http/Controllers/InsuranceSubscriptionController.php b/app/Http/Controllers/InsuranceSubscriptionController.php index 78c6602..790a576 100644 --- a/app/Http/Controllers/InsuranceSubscriptionController.php +++ b/app/Http/Controllers/InsuranceSubscriptionController.php @@ -462,11 +462,7 @@ class InsuranceSubscriptionController extends Controller 'number_of_beneficiaries' => $subscription->number_of_beneficiaries, 'bonus_amount' => $subscription->bonus_amount, 'created_at' => $datetime, 'updated_at' => $datetime, - 'state' => InsuranceState::UNDER_ACTIVATION, - 'deadlines' => $subscription->monthsGrid->number_of_fractions, - 'paid_deadlines' => 0, - 'amount_per_split' => $amount_per_split, - 'amount_last_payment' => $amount_last_payment + 'state' => InsuranceState::UNDER_ACTIVATION ]); foreach ($subscription->beneficiaries as $b) { NhInsurancesHavingRight::create([ @@ -485,24 +481,24 @@ class InsuranceSubscriptionController extends Controller $insurance->update([ 'state' => InsuranceState::UNDER_ADDING_BENEFICIARY, - 'deadlines' => $subscription->monthsGrid->number_of_fractions, - 'paid_deadlines' => 0, - 'amount_per_split' => $amount_per_split, - 'amount_last_payment' => $amount_last_payment, 'updated_at' => $datetime, ]); } if (in_array($subscription->insurance_action, [InsuranceAction::ADDITION_OF_BENEFICIARY, InsuranceAction::ACTIVATION])) { - // Generer la 1ere facture + // Generer la facture NhInsurancesInvoice::create([ 'invoice_id' => $this->generateInsuranceInvoiceID(), 'insurance_id' => $insurance->id, 'subscription_id' => $subscription->id, - 'amount' => $amount_per_split, - 'payment_deadline' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days + $networkConfig->suspension_delay_days_after_reminder), - 'payment_reminder' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days), + 'amount' => $subscription->total_bonus_amount, + 'next_payment_deadline' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days + $networkConfig->suspension_delay_days_after_reminder), + 'next_payment_reminder' => $this->addDaysToDateTime($datetime, $networkConfig->reminder_delay_days), 'state' => InsuranceInvoiceState::UNPAID, + 'deadlines' => $subscription->monthsGrid->number_of_fractions, + 'paid_deadlines' => 0, + 'amount_per_split' => $amount_per_split, + 'amount_last_payment' => $amount_last_payment, 'reason' => $subscription->insurance_action, 'created_at' => $datetime, 'updated_at' => $datetime, ]); diff --git a/app/Models/NhInsurance.php b/app/Models/NhInsurance.php index 541dec0..e25ebb4 100644 --- a/app/Models/NhInsurance.php +++ b/app/Models/NhInsurance.php @@ -49,11 +49,7 @@ class NhInsurance extends Model 'bonus_amount', 'start_at', 'end_at', - 'state', - 'deadlines', - 'paid_deadlines', - 'amount_per_split', - 'amount_last_payment' + 'state' ]; public function network() diff --git a/app/Models/NhInsurancesInvoice.php b/app/Models/NhInsurancesInvoice.php index 8c2f882..dc8121e 100644 --- a/app/Models/NhInsurancesInvoice.php +++ b/app/Models/NhInsurancesInvoice.php @@ -9,24 +9,6 @@ namespace App\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; -/** - * Class NhInsurancesInvoice - * - * @property int $id - * @property string $invoice_id - * @property int $insurance_id - * @property int $subscription_id - * @property float $amount - * @property Carbon $payment_deadline - * @property Carbon $payment_reminder - * @property string $state - * @property string $reason - * @property int $deadline_number - * @property Carbon|null $created_at - * @property Carbon|null $updated_at - * - * @package App\Models - */ class NhInsurancesInvoice extends Model { protected $table = 'nh_insurances_invoices'; @@ -37,17 +19,7 @@ class NhInsurancesInvoice extends Model 'deadline_number' => 'int' ]; - protected $fillable = [ - 'invoice_id', - 'insurance_id', - 'subscription_id', - 'amount', - 'payment_deadline', - 'payment_reminder', - 'state', - 'reason', - 'deadline_number' - ]; + protected $guarded = ['id']; public function insurance() { diff --git a/app/Models/NhInsurancesPayment.php b/app/Models/NhInsurancesPayment.php index 7264167..b884d49 100644 --- a/app/Models/NhInsurancesPayment.php +++ b/app/Models/NhInsurancesPayment.php @@ -9,33 +9,14 @@ namespace App\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; -/** - * Class NhInsurancesPayment - * - * @property int $id - * @property string $insurance_subscription_id - * @property string $insured_id - * @property float $amount - * @property string $reason - * @property Carbon $created_at - * @property Carbon $updated_at - * - * @package App\Models - */ class NhInsurancesPayment extends Model { protected $table = 'nh_insurances_payments'; protected $casts = [ + 'invoice_id' => 'int', 'amount' => 'float' ]; - protected $fillable = [ - 'insurance_subscription_id', - 'insured_id', - 'amount', - 'reason', - 'created_at', - 'updated_at' - ]; + protected $guarded = ['id']; } diff --git a/app/Traits/Helper.php b/app/Traits/Helper.php index e5998b9..87dd4cd 100644 --- a/app/Traits/Helper.php +++ b/app/Traits/Helper.php @@ -20,7 +20,9 @@ use App\Models\NhInfosHealthCareSheets; use App\Models\NhInsurance; use App\Models\NhInsurancesHavingRight; use App\Models\NhInsurancesInvoice; +use App\Models\NhInsurancesPayment; use App\Models\NhInsurancesSubscription; +use App\Models\NhInvoice; use App\Models\NhMonthsPricesGrid; use App\Models\NhNetworksConfig; use App\Models\User; @@ -39,6 +41,7 @@ use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use stdClass; +use function Clue\StreamFilter\fun; trait Helper { @@ -367,53 +370,89 @@ trait Helper return $code; } - // Generer les factures des assurances à payer - public function generateInsurancesInvoices(): void + public function generateID($table, $column, $length = 12): string { - $insurances = NhInsurance::with('monthsGrid')->whereIn('state', [InsuranceState::UNDER_ACTIVATION, InsuranceState::UNDER_ADDING_BENEFICIARY, InsuranceState::UNDER_RENEW, - InsuranceState::PARTIALLY_PAID, InsuranceState::SUSPENDED]) - ->whereColumn('paid_deadlines', '<', 'deadlines')->get(); + do { + $code = generateTransactionCode($length); + $codeCorrect = count(DB::select("SELECT * FROM $table WHERE $column = :code", ['code' => $code])) < 0; + } while ($codeCorrect); + return $code; + } - foreach ($insurances as $i) { - $lastInvoice = NhInsurancesInvoice::where('insurance_id', $i->id)->orderBy('id', 'DESC')->first(); - if (isset($lastInvoice) && $lastInvoice->deadline_number < $i->deadlines) { - if (in_array($i->monthsGrid->payment_period, ['DAILY', 'MONTHLY'])) { - // Si le paiement est mensuel, se rassurer que cela fait deja 1 mois - if ($i->monthsGrid->payment_period == 'MONTHLY' && $lastInvoice->created_at->diff(date('Y-m-d'))->m < 1) { - continue; - } + // Generer les factures des assurances à payer +// public function generateInsurancesInvoices(): void +// { +// $insurances = NhInsurance::with('monthsGrid')->whereIn('state', [InsuranceState::UNDER_ACTIVATION, InsuranceState::UNDER_ADDING_BENEFICIARY, InsuranceState::UNDER_RENEW, +// InsuranceState::PARTIALLY_PAID, InsuranceState::SUSPENDED]) +// ->whereColumn('paid_deadlines', '<', 'deadlines')->get(); +// +// foreach ($insurances as $i) { +// $lastInvoice = NhInsurancesInvoice::where('insurance_id', $i->id)->orderBy('id', 'DESC')->first(); +// if (isset($lastInvoice) && $lastInvoice->deadline_number < $i->deadlines) { +// if (in_array($i->monthsGrid->payment_period, ['DAILY', 'MONTHLY'])) { +// // Si le paiement est mensuel, se rassurer que cela fait deja 1 mois +// if ($i->monthsGrid->payment_period == 'MONTHLY' && $lastInvoice->created_at->diff(date('Y-m-d'))->m < 1) { +// continue; +// } +// +// $networkConfig = NhNetworksConfig::where('network_id', $i->network_id)->first(); +// if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante') { +// Log::error("Insurance Invoice generated " . trans('errors.nano_health_not_activated')); +// continue; +// } +// +// $current_deadline_number = $lastInvoice->deadline_number + 1; +// $invoice = NhInsurancesInvoice::create([ +// 'invoice_id' => $this->generateInsuranceInvoiceID(), +// 'insurance_id' => $i->id, +// 'subscription_id' => $lastInvoice->subscription_id ?? null, +// 'amount' => $current_deadline_number == $i->deadlines ? $i->amount_last_payment : $i->amount_per_split, +// 'next_payment_deadline' => Carbon::now()->addDays(10), // 1 semaines + 3 jours +// 'next_payment_reminder' => Carbon::now()->addDays(7), +// 'state' => InsuranceInvoiceState::UNPAID, +// 'reason' => $lastInvoice->reason, +// 'deadline_number' => $current_deadline_number +// ]); +// $currency = $this->getNetworkCurrency($invoice->insurance->network_id); +// // Envoyer le mail +// Event::dispatch(new InsuranceEvent($invoice->insurance, trans('messages.insurance_invoice_generated_title'), +// trans('messages.insurance_invoice_generated_mail', ['name' => $invoice->insurance->user->lastname, 'insured_id' => $invoice->insurance->insured_id, +// 'bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->bonus_amount, $currency), 'total_bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->total_bonus_amount, $currency), 'number_of_beneficiaries' => $invoice->insurance->number_of_beneficiaries, +// 'gender' => trans('states.' . $invoice->insurance->user->identification->gender), 'insurance_name' => $invoice->insurance->network->name, 'months' => $invoice->insurance->monthsGrid->number_of_months, 'invoice_id' => $invoice->invoice_id, +// 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'remains_deadlines' => $invoice->insurance->deadlines - $invoice->insurance->paid_deadlines - 1, +// 'payment_period' => trans('states.' . $invoice->insurance->monthsGrid->payment_period), 'reason' => trans('states.' . $invoice->reason), 'title' => trans('messages.insurance_invoice_generated_mail_title', ['deadline' => $current_deadline_number]), 'object' => trans('messages.the_invoice'), +// 'deadlines' => $invoice->insurance->deadlines, 'amount_per_split' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_per_split, $currency), 'amount_last_payment' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_last_payment, $currency), +// 'waiting_days' => empty($invoice->insurance->monthsGrid->waiting_period_days) ? trans('messages.none') : trans('messages.n_days', ['n' => $invoice->insurance->monthsGrid->waiting_period_days]), +// 'start_at' => $invoice->insurance->start_at +// ]))); +// } +// } +// } +// } - $networkConfig = NhNetworksConfig::where('network_id', $i->network_id)->first(); - if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante') { - Log::error("Insurance Invoice generated " . trans('errors.nano_health_not_activated')); - continue; - } + // Mettre a jour les factures chaque jour + public function updateInsurancesInvoices(): void + { + $invoices = NhInsurancesInvoice::whereHas('insurance')->with(['insurance.monthsGrid'])->where('state', InsuranceInvoiceState::UNPAID) + ->whereDate('next_payment_reminder', date('Y-m-d'))->get(); - $current_deadline_number = $lastInvoice->deadline_number + 1; - $invoice = NhInsurancesInvoice::create([ - 'invoice_id' => $this->generateInsuranceInvoiceID(), - 'insurance_id' => $i->id, - 'subscription_id' => $lastInvoice->subscription_id ?? null, - 'amount' => $current_deadline_number == $i->deadlines ? $i->amount_last_payment : $i->amount_per_split, - 'payment_deadline' => Carbon::now()->addDays(10), // 1 semaines + 3 jours - 'payment_reminder' => Carbon::now()->addDays(7), - 'state' => InsuranceInvoiceState::UNPAID, - 'reason' => $lastInvoice->reason, - 'deadline_number' => $current_deadline_number - ]); - $currency = $this->getNetworkCurrency($invoice->insurance->network_id); - // Envoyer le mail - Event::dispatch(new InsuranceEvent($invoice->insurance, trans('messages.insurance_invoice_generated_title'), - trans('messages.insurance_invoice_generated_mail', ['name' => $invoice->insurance->user->lastname, 'insured_id' => $invoice->insurance->insured_id, - 'bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->bonus_amount, $currency), 'total_bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->total_bonus_amount, $currency), 'number_of_beneficiaries' => $invoice->insurance->number_of_beneficiaries, - 'gender' => trans('states.' . $invoice->insurance->user->identification->gender), 'insurance_name' => $invoice->insurance->network->name, 'months' => $invoice->insurance->monthsGrid->number_of_months, 'invoice_id' => $invoice->invoice_id, - 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'remains_deadlines' => $invoice->insurance->deadlines - $invoice->insurance->paid_deadlines - 1, - 'payment_period' => trans('states.' . $invoice->insurance->monthsGrid->payment_period), 'reason' => trans('states.' . $invoice->reason), 'title' => trans('messages.insurance_invoice_generated_mail_title', ['deadline' => $current_deadline_number]), 'object' => trans('messages.the_invoice'), - 'deadlines' => $invoice->insurance->deadlines, 'amount_per_split' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_per_split, $currency), 'amount_last_payment' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_last_payment, $currency), - 'waiting_days' => empty($invoice->insurance->monthsGrid->waiting_period_days) ? trans('messages.none') : trans('messages.n_days', ['n' => $invoice->insurance->monthsGrid->waiting_period_days]), - 'start_at' => $invoice->insurance->start_at - ]))); + foreach ($invoices as $invoice) { + if (in_array($invoice->insurance->monthsGrid->payment_period, ['DAILY', 'MONTHLY'])) { + // Si le paiement est mensuel, se rassurer que cela fait deja 1 mois + if ($invoice->monthsGrid->payment_period == 'MONTHLY' && date_create($invoice->next_payment_deadline)->diff(new DateTime())->m < 1) { + continue; } + + $networkConfig = NhNetworksConfig::where('network_id', $invoice->insurance->network_id)->first(); + if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante') { + continue; + } + + $deadline = $invoice->next_payment_deadline; + $invoice->next_payment_deadlines_to_paid++; + $invoice->next_payment_deadline = $this->addDaysToDateTime($deadline, $networkConfig->reminder_delay_days + $networkConfig->suspension_delay_days_after_reminder); // 1 semaines + 3 jours + $invoice->next_payment_reminder = $this->addDaysToDateTime($deadline, $networkConfig->reminder_delay_days); + $invoice->save(); } } } @@ -421,25 +460,28 @@ trait Helper public function reminderInsurancesInvoices(): void { $invoices = NhInsurancesInvoice::with(['insurance'])->where('state', InsuranceInvoiceState::UNPAID) - ->whereDate('payment_reminder', date('Y-m-d'))->get(); + ->whereDate('next_payment_reminder', date('Y-m-d'))->get(); foreach ($invoices as $invoice) { // Reminders $currency = $this->getNetworkCurrency($invoice->insurance->network_id); + $total_paid_amount = NhInsurancesPayment::where('invoice_id', $invoice->id)->sum('amount'); Event::dispatch(new InsuranceEvent($invoice->insurance, trans('messages.insurance_payment_reminder'), trans('messages.insurance_invoice_generated_mail', ['name' => $invoice->insurance->user->lastname, 'insured_id' => $invoice->insurance->insured_id, 'bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->bonus_amount, $currency), 'total_bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->total_bonus_amount, $currency), 'number_of_beneficiaries' => $invoice->insurance->number_of_beneficiaries, 'gender' => trans('states.' . $invoice->insurance->user->identification->gender), 'insurance_name' => $invoice->insurance->network->name, 'months' => $invoice->insurance->monthsGrid->number_of_months, 'invoice_id' => $invoice->invoice_id, - 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'deadline' => $invoice->deadline_number, 'remains_deadlines' => $invoice->insurance->deadlines - $invoice->insurance->paid_deadlines, 'object' => trans('messages.the_payment'), + 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'object' => trans('messages.the_payment'), 'payment_period' => trans('states.' . $invoice->insurance->monthsGrid->payment_period), 'reason' => trans('states.' . $invoice->reason), 'title' => trans('messages.insurance_payment_reminder_title', ['invoice_id' => $invoice->invoice_id, 'n_reminder' => 7, 'n_suspension' => 3]), - 'deadlines' => $invoice->insurance->deadlines, 'amount_per_split' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_per_split, $currency), 'amount_last_payment' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_last_payment, $currency), + 'paid_amount' => $this->toMoneyWithCurrencyCode($total_paid_amount, $currency), 'remains_amount' => $this->toMoneyWithCurrencyCode($invoice->amount - $total_paid_amount, $currency), 'waiting_days' => empty($invoice->insurance->monthsGrid->waiting_period_days) ? trans('messages.none') : trans('messages.n_days', ['n' => $invoice->insurance->monthsGrid->waiting_period_days]), 'start_at' => $invoice->insurance->start_at ]))); } - $invoices = NhInsurancesInvoice::whereHas('insurance')->with(['insurance'])->where('state', InsuranceInvoiceState::UNPAID) - ->whereDate('payment_deadline', Carbon::now()->subDay())->get(); + $invoices = NhInsurancesInvoice::whereHas('insurance', function ($q) { + return $q->whereNotIn('state', [InsuranceState::STOPPED, InsuranceState::EXPIRED]); + })->with(['insurance'])->where('state', InsuranceInvoiceState::UNPAID) + ->whereDate('next_payment_deadline', Carbon::now()->subDay())->get(); foreach ($invoices as $invoice) { $invoice->insurance->update([ @@ -450,13 +492,14 @@ trait Helper foreach ($invoices as $invoice) { // Reminders $currency = $this->getNetworkCurrency($invoice->insurance->network_id); + $total_paid_amount = NhInsurancesPayment::where('invoice_id', $invoice->id)->sum('amount'); Event::dispatch(new InsuranceEvent($invoice->insurance, trans('messages.insurance_payment_suspended'), trans('messages.insurance_paid_mail', ['name' => $invoice->insurance->user->lastname, 'insured_id' => $invoice->insurance->insured_id, 'bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->bonus_amount, $currency), 'total_bonus_amount' => $this->toMoneyWithCurrencyCode($invoice->insurance->total_bonus_amount, $currency), 'number_of_beneficiaries' => $invoice->insurance->number_of_beneficiaries, 'gender' => trans('states.' . $invoice->insurance->user->identification->gender), 'insurance_name' => $invoice->insurance->network->name, 'months' => $invoice->insurance->monthsGrid->number_of_months, 'invoice_id' => $invoice->invoice_id, - 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'paid_deadlines' => $invoice->insurance->paid_deadlines, 'remains_deadlines' => $invoice->insurance->deadlines - $invoice->insurance->paid_deadlines, + 'amount' => $this->toMoneyWithCurrencyCode($invoice->amount, $currency), 'payment_period' => trans('states.' . $invoice->insurance->monthsGrid->payment_period), 'reason' => trans('states.' . $invoice->reason), 'title' => trans('messages.insurance_payment_suspended_title'), - 'deadlines' => $invoice->insurance->deadlines, 'amount_per_split' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_per_split, $currency), 'amount_last_payment' => $this->toMoneyWithCurrencyCode($invoice->insurance->amount_last_payment, $currency), + 'paid_amount' => $this->toMoneyWithCurrencyCode($total_paid_amount, $currency), 'remains_amount' => $this->toMoneyWithCurrencyCode($invoice->amount - $total_paid_amount, $currency), 'waiting_days' => empty($invoice->insurance->monthsGrid->waiting_period_days) ? trans('messages.none') : trans('messages.n_days', ['n' => $invoice->insurance->monthsGrid->waiting_period_days]), 'start_at' => $invoice->insurance->start_at ]))); diff --git a/database/migrations/2022_04_28_120537_recreate_nh_insurances_payments_table.php b/database/migrations/2022_04_28_120537_recreate_nh_insurances_payments_table.php new file mode 100644 index 0000000..aa7b9c7 --- /dev/null +++ b/database/migrations/2022_04_28_120537_recreate_nh_insurances_payments_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('payment_id')->unique(); + $table->integer('invoice_id'); + $table->decimal('amount', 10, 2); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('nh_insurances_payments'); + } +} diff --git a/database/migrations/2022_04_29_092816_add_deadlines_and_split_amounts_to_nh_insurances_invoices_table.php b/database/migrations/2022_04_29_092816_add_deadlines_and_split_amounts_to_nh_insurances_invoices_table.php new file mode 100644 index 0000000..9c5b329 --- /dev/null +++ b/database/migrations/2022_04_29_092816_add_deadlines_and_split_amounts_to_nh_insurances_invoices_table.php @@ -0,0 +1,48 @@ +renameColumn('payment_deadline', 'next_payment_deadline'); + $table->renameColumn('payment_reminder', 'next_payment_reminder'); + $table->unsignedInteger('deadlines')->nullable()->comment("Nombre total d'écheances") + ->after('state'); + $table->unsignedInteger('paid_deadlines')->nullable()->comment("Nombre d'écheances payées") + ->after('deadlines'); + $table->decimal('amount_per_split', 10)->nullable()->comment("Montant par echeance") + ->after('paid_deadlines'); + $table->decimal('amount_last_payment', 10)->nullable()->comment("Montant de la derniere echeance") + ->after('amount_per_split'); + $table->unsignedInteger('next_payment_deadlines_to_paid')->default(1)->comment("Nombre d'echeances à payer lors du prochain payment pour reactiver son assurance") + ->after('paid_deadlines'); + $table->dropColumn('deadline_number'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('nh_insurances_invoices', function (Blueprint $table) { + $table->dropColumn(['deadlines', 'paid_deadlines', 'amount_per_split', 'amount_last_payment', 'next_payment_deadlines_to_paid']); + $table->renameColumn('next_payment_deadline', 'payment_deadline'); + $table->renameColumn('next_payment_reminder', 'payment_reminder'); + $table->unsignedInteger('deadline_number')->default(1)->comment("Numero de la dealine") + ->after('reason'); + }); + } +} diff --git a/database/migrations/2022_05_02_012857_remove_deadlines_details_to_nh_insurances.php b/database/migrations/2022_05_02_012857_remove_deadlines_details_to_nh_insurances.php new file mode 100644 index 0000000..b7fd8df --- /dev/null +++ b/database/migrations/2022_05_02_012857_remove_deadlines_details_to_nh_insurances.php @@ -0,0 +1,40 @@ +dropColumn(['deadlines', 'paid_deadlines', 'amount_per_split', 'amount_last_payment']); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('nh_insurances', function (Blueprint $table) { + $table->unsignedInteger('deadlines')->default(0)->comment("Nombre total d'écheances") + ->after('state'); + $table->unsignedInteger('paid_deadlines')->default(0)->comment("Nombre d'écheances payées") + ->after('deadlines'); + $table->decimal('amount_per_split', 10)->default(0)->comment("Montant par echeance") + ->after('paid_deadlines'); + $table->decimal('amount_last_payment', 10)->default(0)->comment("Montant de la derniere echeance") + ->after('amount_per_split'); + + }); + } +} diff --git a/resources/lang/en/errors.php b/resources/lang/en/errors.php index 711f2bb..e94137b 100755 --- a/resources/lang/en/errors.php +++ b/resources/lang/en/errors.php @@ -69,5 +69,7 @@ return [ 'act_authorization_request_required' => "An authorization is required to apply the act :act_name", 'act_unit_quantity_required' => "The unit quantity is required for the act :act_name", 'prescription_ordered_quantity_must_not_greater_than_ordered_quantity' => "Prescription quantity :id must not be greater than :quantity", - 'consultation_prescription_not_found' => "The consultation attached to this prescription does not exist" + 'consultation_prescription_not_found' => "The consultation attached to this prescription does not exist", + 'minimum amount_to_paid' => "The minimum amount to pay is :amount", + 'maximum amount_to_paid' => "The maximum amount to pay is :amount" ]; diff --git a/resources/lang/en/messages.php b/resources/lang/en/messages.php index 1275eaf..5930e6d 100755 --- a/resources/lang/en/messages.php +++ b/resources/lang/en/messages.php @@ -195,10 +195,11 @@ Your insurance has expired. :title Payment information : - - ID: :invoice_id + - ID: :payment_id + - Invoice ID: :invoice_id - Amount: :amount - - Number of paid installments: :paid_deadlines - - Number of remaining deadlines: :remains_deadlines :remains_deadlines + - Amount paid: :paid_amount + - Remaining amount: :remains_amount - Reason: :reason Insurance information : @@ -209,9 +210,6 @@ Your insurance has expired. - Number of beneficiaries : :number_of_beneficiaries - Number of months: :months - Payment period: :payment_period - - Total number of instalments: :deadlines - - Amount per due date: :amount_per_split - - Amount of the last payment: :amount_last_payment - Waiting period: :waiting_days - Start date of the insurance: :start_at ", @@ -232,8 +230,8 @@ Your insurance has expired. :object information : - ID: :invoice_id - Amount: :amount - - Due : :deadline - - Number of remaining deadlines : :remains_deadlines + - Amount paid: :paid_amount + - Remaining amount: :remains_amount - Reason: :reason Insurance information : @@ -244,9 +242,6 @@ Your insurance has expired. - Number of beneficiaries : :number_of_beneficiaries - Number of months: :months - Payment period: :payment_period - - Number of total deadlines: :deadlines - - Amount per due date: :amount_per_split - - Amount of the last payment: :amount_last_payment - Waiting period: :waiting_days - Start date of the insurance: :start_at ", diff --git a/resources/lang/fr/errors.php b/resources/lang/fr/errors.php index 225e01a..45b06e9 100755 --- a/resources/lang/fr/errors.php +++ b/resources/lang/fr/errors.php @@ -72,6 +72,8 @@ return [ 'consultation_prescription_not_found' => "La consultation rattaché à cette prescription n'existe pas", 'sheet_performances_duplicata' => "La feuille de soins a des duplicata de prestations", 'sheet_exams_duplicata' => "La feuille de soins a des duplicata d'examens", - 'sheet_prescriptions_duplicata' => "La feuille de soins a des duplicata de prescriptions médicales" + 'sheet_prescriptions_duplicata' => "La feuille de soins a des duplicata de prescriptions médicales", + 'minimum_amount_to_paid' => "Le montant minimum à payer est de :amount", + 'maximum_amount_to_paid' => "Le montant maximum à payer est de :amount" ]; diff --git a/resources/lang/fr/messages.php b/resources/lang/fr/messages.php index 065cf8c..ad12594 100755 --- a/resources/lang/fr/messages.php +++ b/resources/lang/fr/messages.php @@ -212,10 +212,11 @@ Votre assurance est arrivée à échéance. :title Informations sur le paiement : - - ID : :invoice_id + - ID : :payment_id + - ID de la facture : :invoice_id - Montant : :amount - - Nombre d'échéances payées : :paid_deadlines - - Nombre d'échéances restantes : :remains_deadlines + - Montant payé : :paid_amount + - Montant restant : :remains_amount - Motif : :reason Informations de l'assurance : @@ -226,9 +227,6 @@ Votre assurance est arrivée à échéance. - Nombre d'ayants droit : :number_of_beneficiaries - Nombre de mois : :months - Période de paiement : :payment_period - - Nombre d'échéances totales : :deadlines - - Montant par échéance : :amount_per_split - - Montant de la dernière échéance : :amount_last_payment - Délai de carence : :waiting_days - Date de debut de l'assurance : :start_at ", @@ -249,8 +247,8 @@ Votre assurance est arrivée à échéance. Informations sur :object : - ID : :invoice_id - Montant : :amount - - Echéance : :deadline - - Nombre d'échéances restantes : :remains_deadlines + - Montant payé : :paid_amount + - Montant restant : :remains_amount - Motif : :reason Informations de l'assurance : @@ -261,9 +259,6 @@ Votre assurance est arrivée à échéance. - Nombre d'ayants droit : :number_of_beneficiaries - Nombre de mois : :months - Période de paiement : :payment_period - - Nombre d'échéances totales : :deadlines - - Montant par échéance : :amount_per_split - - Montant de la dernière échéance : :amount_last_payment - Délai de carence : :waiting_days - Date de debut de l'assurance : :start_at ", diff --git a/routes/web.php b/routes/web.php index bb0895f..c50c3bd 100644 --- a/routes/web.php +++ b/routes/web.php @@ -32,7 +32,7 @@ $router->group(['prefix' => '', 'middleware' => 'auth'], function () use ($route $router->post('', 'InsuranceSubscriptionController@subscribe'); $router->put('{id}/validate', 'InsuranceSubscriptionController@validateSubscription'); $router->put('{id}/reject', 'InsuranceSubscriptionController@rejectSubscription'); - $router->put('{id}/pay', 'InsuranceSubscriptionController@paySubscription'); +// $router->put('{id}/pay', 'InsuranceSubscriptionController@paySubscription'); //OLD $router->get('', 'InsuranceSubscriptionController@getSubscriptions'); });