Improve POST /insurances/subscriptions/bonus-amount to calculate insurance bonus amount and fix bugs
This commit is contained in:
parent
97640800fb
commit
5fc64bb218
|
@ -166,7 +166,7 @@ class InsuranceController extends Controller
|
||||||
{
|
{
|
||||||
$this->validate($request, [
|
$this->validate($request, [
|
||||||
'user_id' => 'required|integer|exists:users,id',
|
'user_id' => 'required|integer|exists:users,id',
|
||||||
'type' => 'nullable|in:ALL,EDITABLE|STOPPED',
|
'type' => 'nullable|in:ALL,EDITABLE,STOPPED',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$userId = $request->input('user_id');
|
$userId = $request->input('user_id');
|
||||||
|
@ -523,6 +523,13 @@ class InsuranceController extends Controller
|
||||||
]);
|
]);
|
||||||
$newSubscription->created_at = $newSubscription->updated_at = $datetime;
|
$newSubscription->created_at = $newSubscription->updated_at = $datetime;
|
||||||
$newSubscription->save();
|
$newSubscription->save();
|
||||||
|
|
||||||
|
foreach ($insurance->beneficiaries as $beneficiary) {
|
||||||
|
NhInsurancesHavingRight::create([
|
||||||
|
'insurance_subscription_id' => $newSubscription->id,
|
||||||
|
'having_right_id' => $beneficiary->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
Event::dispatch(new InsuranceEvent($newSubscription, trans('messages.insurance_stop'), trans('messages.insurance_stop_mail', ['name' => $newSubscription->user->lastname, 'subscription_id' => $newSubscription->insurance_subscription_id,
|
Event::dispatch(new InsuranceEvent($newSubscription, trans('messages.insurance_stop'), trans('messages.insurance_stop_mail', ['name' => $newSubscription->user->lastname, 'subscription_id' => $newSubscription->insurance_subscription_id,
|
||||||
'bonus_amount' => $this->toMoneyWithNetwork($newSubscription->total_bonus_amount, $newSubscription->network_id), 'number_of_beneficiaries' => $newSubscription->number_of_beneficiaries,
|
'bonus_amount' => $this->toMoneyWithNetwork($newSubscription->total_bonus_amount, $newSubscription->network_id), 'number_of_beneficiaries' => $newSubscription->number_of_beneficiaries,
|
||||||
'gender' => trans('states.' . $identification->gender), 'insurance_name' => $insurance->network->name])));
|
'gender' => trans('states.' . $identification->gender), 'insurance_name' => $insurance->network->name])));
|
||||||
|
|
|
@ -54,6 +54,11 @@ class InsuranceSubscriptionController extends Controller
|
||||||
* @OA\MediaType(
|
* @OA\MediaType(
|
||||||
* mediaType="application/json",
|
* mediaType="application/json",
|
||||||
* @OA\Schema(
|
* @OA\Schema(
|
||||||
|
* @OA\Property(property="insurance_id",
|
||||||
|
* type="integer",
|
||||||
|
* example = 2,
|
||||||
|
* description="ID de l'assurance"
|
||||||
|
* ),
|
||||||
* @OA\Property(property="subscription_id",
|
* @OA\Property(property="subscription_id",
|
||||||
* type="integer",
|
* type="integer",
|
||||||
* example = 2,
|
* example = 2,
|
||||||
|
@ -75,7 +80,7 @@ class InsuranceSubscriptionController extends Controller
|
||||||
* example = {{"birthdate":"1998-10-05","affiliation":"CHILD"}}
|
* example = {{"birthdate":"1998-10-05","affiliation":"CHILD"}}
|
||||||
* ),
|
* ),
|
||||||
* ),
|
* ),
|
||||||
* example = {"subscription_id":7,"network_id":250,"month_price_id":3,"beneficiaries":{{"birthdate":"1998-10-05","affiliation":"CHILD"}}}
|
* example = {"insurance_id":7,"subscription_id":7,"network_id":250,"month_price_id":3,"beneficiaries":{{"birthdate":"1998-10-05","affiliation":"CHILD"}}}
|
||||||
* )
|
* )
|
||||||
* ),
|
* ),
|
||||||
* @OA\Response(
|
* @OA\Response(
|
||||||
|
@ -91,21 +96,29 @@ class InsuranceSubscriptionController extends Controller
|
||||||
public function calculateBonusAmount(Request $request)
|
public function calculateBonusAmount(Request $request)
|
||||||
{
|
{
|
||||||
$this->validate($request, [
|
$this->validate($request, [
|
||||||
|
'insurance_id' => 'nullable|integer|exists:nh_insurances,id',
|
||||||
'subscription_id' => 'nullable|integer|exists:nh_insurances_subscriptions,id',
|
'subscription_id' => 'nullable|integer|exists:nh_insurances_subscriptions,id',
|
||||||
'network_id' => 'required_without:subscription_id|integer|exists:networks,id',
|
'network_id' => 'required_without_all::subscription_id,insurance_id|integer|exists:networks,id',
|
||||||
'month_price_id' => 'required_without:subscription_id|integer|exists:nh_months_prices_grid,id',
|
'month_price_id' => 'required_without_all::subscription_id,insurance_id|integer|exists:nh_months_prices_grid,id',
|
||||||
'beneficiaries' => 'nullable|array',
|
'beneficiaries' => 'nullable|array',
|
||||||
'beneficiaries.*.birthdate' => 'required|date_format:Y-m-d|before:today',
|
'beneficiaries.*.birthdate' => 'required|date_format:Y-m-d|before:today',
|
||||||
'beneficiaries.*.affiliation' => 'required|in:CHILD,SPOUSE'
|
'beneficiaries.*.affiliation' => 'required|in:CHILD,SPOUSE'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$subscription_id = $request->input('subscription_id');
|
$subscription_id = $request->input('subscription_id');
|
||||||
if (isset($subscription_id)) {
|
$insurance_id = $request->input('insurance_id');
|
||||||
$subscription = NhInsurancesSubscription::findOrFail($request->input('subscription_id'));
|
if (!empty($subscription_id)) {
|
||||||
|
$subscription = NhInsurancesSubscription::findOrFail($subscription_id);
|
||||||
$networkConfig = $subscription->nhNetworkConfig;
|
$networkConfig = $subscription->nhNetworkConfig;
|
||||||
$monthPrice = $networkConfig->monthsPricesGrid()->where('number_of_months', $subscription->number_of_months)->first();
|
$monthPrice = $networkConfig->monthsPricesGrid()->where('number_of_months', $subscription->number_of_months)->first();
|
||||||
|
|
||||||
$beneficiaries = array_merge($subscription->beneficiaries->toArray(), $request->input('beneficiaries', []));
|
$beneficiaries = array_merge($subscription->beneficiaries->toArray(), $request->input('beneficiaries', []));
|
||||||
|
} elseif (!empty($insurance_id)) {
|
||||||
|
$insurance = NhInsurance::findOrFail($insurance_id);
|
||||||
|
$networkConfig = $insurance->nhNetworkConfig;
|
||||||
|
$monthPrice = $networkConfig->monthsPricesGrid()->where('number_of_months', $insurance->number_of_months)->first();
|
||||||
|
|
||||||
|
$beneficiaries = array_merge($insurance->beneficiaries->toArray(), $request->input('beneficiaries', []));
|
||||||
} else {
|
} else {
|
||||||
$networkConfig = NhNetworksConfig::where('network_id', $request->input('network_id'))->first();
|
$networkConfig = NhNetworksConfig::where('network_id', $request->input('network_id'))->first();
|
||||||
if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante')
|
if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante')
|
||||||
|
|
Loading…
Reference in New Issue