Send email while insurance invoices are generated

This commit is contained in:
Djery-Tom 2022-03-31 16:19:14 +01:00
parent 7b6069a041
commit b7dc560be7
3 changed files with 67 additions and 3 deletions

View File

@ -383,7 +383,7 @@ trait Helper
continue;
}
$current_deadline_number = $lastInvoice->deadline_number + 1;
NhInsurancesInvoice::create([
$invoice = NhInsurancesInvoice::create([
'invoice_id' => $this->generateInsuranceInvoiceID(),
'insurance_id' => $i->id,
'subscription_id' => $lastInvoice->subscription_id ?? null,
@ -394,6 +394,18 @@ trait Helper
'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), 'deadline' => $current_deadline_number, 'remains_deadlines' => $invoice->insurance->deadlines - $invoice->insurance->paid_deadlines,
'payment_period' => trans('states.' . $invoice->insurance->monthsGrid->payment_period), 'reason' => trans('states.' . $invoice->reason),
'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
])));
}
}
}

View File

@ -223,5 +223,31 @@ Your insurance has expired.
'insurance_payment_suspended_title' => 'You have an outstanding payment',
'insurance_invoice_paid' => "Insurance invoice paid",
'none' => "None",
'n_days' => ":n days"
'n_days' => ":n days",
'insurance_invoice_generated_title' => "Your insurance invoice issued",
'insurance_invoice_generated_mail' => ":gender :name ,
Your :deadline insurance invoice has been issued.
Invoice information :
- ID: :invoice_id
- Amount: :amount
- Due : :deadline
- Number of remaining deadlines : :remains_deadlines
- Reason: :reason
Insurance information :
- Insured number: :insured_id
- Name of the insurance: :insurance_name
- Basic insurance premium amount: :bonus_amount
- Total premium amount: :total_bonus_amount
- 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
",
];

View File

@ -240,5 +240,31 @@ Votre assurance est arrivée à échéance.
'insurance_payment_suspended_title' => 'Vous avez un paiement non effectué',
'insurance_invoice_paid' => "Facture de l'assurance payée",
'none' => "Aucun",
'n_days' => ":n jours"
'n_days' => ":n jours",
'insurance_invoice_generated_title' => "Facture de votre assurance émise",
'insurance_invoice_generated_mail' => ":gender :name ,
La facture de votre assurance d'échéance :deadline a été émise.
Informations sur la facture :
- ID : :invoice_id
- Montant : :amount
- Echéance : :deadline
- Nombre d'échéances restantes : :remains_deadlines
- Motif : :reason
Informations de l'assurance :
- Numéro d'assuré : :insured_id
- Nom de l'assurance : :insurance_name
- Montant de la prime de base d'assuré : :bonus_amount
- Montant total de la prime : :total_bonus_amount
- 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
",
];