diff --git a/app/Http/Controllers/InsuranceSubscriptionController.php b/app/Http/Controllers/InsuranceSubscriptionController.php index 947c677..21da311 100644 --- a/app/Http/Controllers/InsuranceSubscriptionController.php +++ b/app/Http/Controllers/InsuranceSubscriptionController.php @@ -496,6 +496,7 @@ class InsuranceSubscriptionController extends Controller $this->validate($request, [ 'nh_validating_agent_id' => 'required_without:agent_id|nullable|integer|exists:nh_validating_agents,id', 'agent_id' => 'required_without:nh_validating_agent_id|nullable|integer|exists:agents,id', + 'type' => 'required|in:NORMAL,MORE_INFORMATION', 'reason' => 'required' ]); @@ -504,8 +505,25 @@ class InsuranceSubscriptionController extends Controller $subscription = NhInsurancesSubscription::findOrFail($id); $datetime = $this->getCurrentTimeByCountryCode($subscription->network->country->code_country); + $type = $request->input('type'); + $mailParams = ['name' => $subscription->user->lastname, 'subscription_id' => $subscription->insurance_subscription_id, + 'bonus_amount' => $this->toMoneyWithNetwork($subscription->total_bonus_amount, $subscription->network_id), 'reason' => $request->input('reason'), 'number_of_beneficiaries' => $subscription->number_of_beneficiaries, + 'gender' => trans('states.' . $subscription->user->identification->gender), 'insurance_name' => $subscription->network->name]; + $notificationParams = ['subscription_id' => $subscription->insurance_subscription_id]; + + if ($type == 'NORMAL') { + $subscription->state = InsuranceSubscriptionState::REJECTED; + $mailTitle = trans('messages.insurance_subscription_rejected'); + $mailMessage = trans('messages.insurance_subscription_rejected_mail', $mailParams); + $notification = trans('messages.insurance_subscription_rejected_notification', $notificationParams); + } else { + $subscription->state = InsuranceSubscriptionState::AWAITING_FURTHER_INFORMATION; + $mailTitle = trans('messages.insurance_subscription_awaiting_more_information_mail'); + $mailMessage = trans('messages.insurance_subscription_awaiting_more_information_mail', $mailParams); + $notification = trans('messages.insurance_subscription_awaiting_more_information_notification', $notificationParams); + + } $subscription->reason = $request->input('reason'); - $subscription->state = InsuranceSubscriptionState::REJECTED; $subscription->updated_at = $datetime; $subscription->save(); @@ -519,9 +537,7 @@ class InsuranceSubscriptionController extends Controller 'created_at' => $datetime, 'updated_at' => $datetime, ]); - Event::dispatch(new InsuranceEvent($subscription, trans('messages.insurance_subscription_rejected'), trans('messages.insurance_subscription_rejected_mail', ['name' => $subscription->user->lastname, 'subscription_id' => $subscription->insurance_subscription_id, - 'bonus_amount' => $this->toMoneyWithNetwork($subscription->total_bonus_amount, $subscription->network_id), 'reason' => $request->input('reason'), 'number_of_beneficiaries' => $subscription->number_of_beneficiaries, - 'gender' => trans('states.' . $subscription->user->identification->gender), 'insurance_name' => $subscription->network->name]), trans('messages.insurance_subscription_rejected_notification', ['subscription_id' => $subscription->insurance_subscription_id]))); + Event::dispatch(new InsuranceEvent($subscription, $mailTitle, $mailMessage, $notification)); DB::commit(); return $this->successResponse(trans('messages.successful_transaction')); } catch (Throwable $e) { diff --git a/resources/lang/en/messages.php b/resources/lang/en/messages.php index 4998b73..82b0655 100755 --- a/resources/lang/en/messages.php +++ b/resources/lang/en/messages.php @@ -67,4 +67,16 @@ Your insurance has been validated. - Number of beneficiaries : :number_of_beneficiaries - Number of months: :months ", + 'insurance_subscription_awaiting_more_information' => "Insurance subscription waiting for more information", + 'insurance_subscription_awaiting_more_information_mail' => ":gender :name , + +Your application is waiting for more information. + Application information : + - ID: :subscription_id + - Insurance name: :insurance_name + - Premium amount: :bonus_amount + - Number of beneficiaries : :number_of_beneficiaries + + Message: :reason", + 'insurance_subscription_awaiting_more_information_notification' => "Your :subscription_id application is waiting for more information" ]; diff --git a/resources/lang/fr/messages.php b/resources/lang/fr/messages.php index cf4a752..8b7f691 100755 --- a/resources/lang/fr/messages.php +++ b/resources/lang/fr/messages.php @@ -67,4 +67,16 @@ Votre assurance a été validée. - Nombre d'ayants droit : :number_of_beneficiaries - Nombre de mois : :months ", + 'insurance_subscription_awaiting_more_information' => "Souscription à l'assurance en attente de plus d'informations", + 'insurance_subscription_awaiting_more_information_mail' => ":gender :name , + +Votre demande de souscription est en attente de plus d'informations. + Informations de la demande : + - ID : :subscription_id + - Nom de l'assurance : :insurance_name + - Montant de la prime : :bonus_amount + - Nombre d'ayants droit : :number_of_beneficiaries + + Message : :reason", + 'insurance_subscription_awaiting_more_information_notification' => "Votre demande de souscription :subscription_id est en attente de plus d'informations.", ];