Add delete having right endpoints
This commit is contained in:
parent
eb3afacf63
commit
ad1d22a7bd
|
@ -106,13 +106,15 @@ class AuthorizationCareRequestController extends Controller
|
||||||
|
|
||||||
$act = NhAct::find($act_id);
|
$act = NhAct::find($act_id);
|
||||||
try {
|
try {
|
||||||
|
$datetime = $this->getCurrentTimeByCountryCode($user->network->country->code_country);
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
NhAuthorizationOfCareRequest::create([
|
NhAuthorizationOfCareRequest::create([
|
||||||
'request_id' => $this->generateRequestID(),
|
'request_id' => $this->generateRequestID(),
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
'act_id' => $act_id,
|
'act_id' => $act_id,
|
||||||
'state' => InsuranceSubscriptionState::UNDER_VALIDATION
|
'state' => InsuranceSubscriptionState::UNDER_VALIDATION,
|
||||||
|
'created_at' => $datetime, 'updated_at' => $datetime
|
||||||
]);
|
]);
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
|
@ -183,7 +185,7 @@ class AuthorizationCareRequestController extends Controller
|
||||||
$body->date = $datetime;
|
$body->date = $datetime;
|
||||||
|
|
||||||
$data = new stdClass();
|
$data = new stdClass();
|
||||||
$data->screen = "notificationview";
|
$data->screen = "demandeAutorisationSoinScreen";
|
||||||
$data->data = new stdClass();
|
$data->data = new stdClass();
|
||||||
$body->data = $data;
|
$body->data = $data;
|
||||||
$client->request('POST', '/onesignal/pushToUser', ['json' => $body, 'headers' => $headers]);
|
$client->request('POST', '/onesignal/pushToUser', ['json' => $body, 'headers' => $headers]);
|
||||||
|
|
|
@ -618,6 +618,7 @@ class HealthCareSheetController extends Controller
|
||||||
'accident_date' => (!empty($accident_date)) ? $accident_date : null,
|
'accident_date' => (!empty($accident_date)) ? $accident_date : null,
|
||||||
'pregnancy_start_at' => (!empty($pregnancy_start_at)) ? $pregnancy_start_at : null,
|
'pregnancy_start_at' => (!empty($pregnancy_start_at)) ? $pregnancy_start_at : null,
|
||||||
'pregnancy_end_at' => (!empty($pregnancy_end_at)) ? $pregnancy_end_at : null,
|
'pregnancy_end_at' => (!empty($pregnancy_end_at)) ? $pregnancy_end_at : null,
|
||||||
|
'created_at' => $datetime, 'updated_at' => $datetime
|
||||||
]);
|
]);
|
||||||
|
|
||||||
foreach ($request->input('performances', []) as $p) {
|
foreach ($request->input('performances', []) as $p) {
|
||||||
|
@ -849,6 +850,7 @@ class HealthCareSheetController extends Controller
|
||||||
$healthCareSheet->type = HealthCareSheetType::EXECUTION;
|
$healthCareSheet->type = HealthCareSheetType::EXECUTION;
|
||||||
$healthCareSheet->state = InsuranceSubscriptionState::UNDER_VALIDATION;
|
$healthCareSheet->state = InsuranceSubscriptionState::UNDER_VALIDATION;
|
||||||
$healthCareSheet->prescription_sheet_id = $sheet->id;
|
$healthCareSheet->prescription_sheet_id = $sheet->id;
|
||||||
|
$healthCareSheet->created_at = $healthCareSheet->update_at = $datetime;
|
||||||
$healthCareSheet->push();
|
$healthCareSheet->push();
|
||||||
|
|
||||||
$insurance = $sheet->insurance;
|
$insurance = $sheet->insurance;
|
||||||
|
|
|
@ -8,6 +8,7 @@ use App\InsuranceState;
|
||||||
use App\InsuranceSubscriptionState;
|
use App\InsuranceSubscriptionState;
|
||||||
use App\Models\CountriesCurrency;
|
use App\Models\CountriesCurrency;
|
||||||
use App\Models\NhInsurance;
|
use App\Models\NhInsurance;
|
||||||
|
use App\Models\NhInsurancesHavingRight;
|
||||||
use App\Models\NhInsurancesSubscription;
|
use App\Models\NhInsurancesSubscription;
|
||||||
use App\Models\NhInsurancesSubscriptionsHistory;
|
use App\Models\NhInsurancesSubscriptionsHistory;
|
||||||
use App\Models\NhNetworksConfig;
|
use App\Models\NhNetworksConfig;
|
||||||
|
@ -337,4 +338,132 @@ class InsuranceController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @OA\Put(
|
||||||
|
* path="/insurances/{id}/delete-beneficiaries",
|
||||||
|
* summary="Supprimer des ayants droits ou beneficiaires à une assurance",
|
||||||
|
* tags={"Assurances"},
|
||||||
|
* security={{"api_key":{}}},
|
||||||
|
* @OA\Parameter(
|
||||||
|
* parameter="id",
|
||||||
|
* name="id",
|
||||||
|
* description="ID de l'assurance",
|
||||||
|
* in="path",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="integer",
|
||||||
|
* default=12
|
||||||
|
* )
|
||||||
|
* ),
|
||||||
|
* @OA\RequestBody(
|
||||||
|
* description="Corps de la requete",
|
||||||
|
* required=true,
|
||||||
|
* @OA\MediaType(
|
||||||
|
* mediaType="application/json",
|
||||||
|
* @OA\Schema(ref="#/components/schemas/delete_beneficiaries"),
|
||||||
|
* example = {"password" : "1234", "beneficiaries_ids":{ 1, 4, 5}}
|
||||||
|
* )
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="OK",
|
||||||
|
* @OA\JsonContent(
|
||||||
|
* ref="#/components/schemas/ApiResponse",
|
||||||
|
* example = {"status":200,"response":"Suprresion réussie","error":null}
|
||||||
|
* )
|
||||||
|
* )
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
public function deleteBeneficiaries(Request $request, $id)
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @OA\Schema(
|
||||||
|
* schema="delete_beneficiaries",
|
||||||
|
* title = "Supprimer des beneficiaires à une assurance",
|
||||||
|
* required={"password", "beneficiaries"},
|
||||||
|
* @OA\Property(property="password",
|
||||||
|
* type="string",
|
||||||
|
* example="2021469",
|
||||||
|
* description="Mot de passe de l'utilisateur assuré"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(property="beneficiaries_ids",
|
||||||
|
* type="array",
|
||||||
|
* description="Listes des IDs beneficiaires ou ayants droit",
|
||||||
|
* @OA\Items(type="integer", format="binary")
|
||||||
|
* )
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
$this->validate($request, [
|
||||||
|
'password' => 'required|string',
|
||||||
|
'beneficiaries_ids' => 'required|array',
|
||||||
|
'beneficiaries_ids.*' => 'required|integer|exists:nh_having_rights,id',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$insurance = NhInsurance::findOrFail($id);
|
||||||
|
$user = $insurance->user;
|
||||||
|
$identification = $insurance->user->identification;
|
||||||
|
|
||||||
|
if (!isset($identification) || $identification->status == 0)
|
||||||
|
return $this->errorResponse(trans('errors.user_identification_required'));
|
||||||
|
|
||||||
|
if (!checkPassword($request->password, $user->encrypted_password, $user->salt))
|
||||||
|
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||||
|
|
||||||
|
try {
|
||||||
|
DB::beginTransaction();
|
||||||
|
$datetime = $this->getCurrentTimeByCountryCode($user->network->country->code_country);
|
||||||
|
|
||||||
|
// Creer une nouvelle subscription
|
||||||
|
$newSubscription = NhInsurancesSubscription::create([
|
||||||
|
'network_id' => $insurance->network_id,
|
||||||
|
'user_id' => $insurance->user_id,
|
||||||
|
'insurance_subscription_id' => $this->generateSubscriptionID(),
|
||||||
|
'number_of_beneficiaries' => sizeof($request->input('beneficiaries_ids', [])),
|
||||||
|
'number_of_months' => $insurance->number_of_months,
|
||||||
|
'bonus_amount' => $insurance->min_amount,
|
||||||
|
'insurance_action' => InsuranceAction::DELETION_OF_BENEFICIARY,
|
||||||
|
'created_at' => $datetime, 'updated_at' => $datetime
|
||||||
|
]);
|
||||||
|
|
||||||
|
$beneficiaries = NhInsurancesHavingRight::where('insurance_id', $insurance->id)->whereIn('having_right_id', $request->input('beneficiaries_ids'))->get();
|
||||||
|
$beneficiariesBonus = 0;
|
||||||
|
foreach ($beneficiaries as $b) {
|
||||||
|
$beneficiariesBonus += $b->bonus_amount;
|
||||||
|
NhInsurancesHavingRight::create([
|
||||||
|
'insurance_subscription_id' => $newSubscription->id,
|
||||||
|
'having_right_id' => $b->having_right_id,
|
||||||
|
'created_at' => $datetime, 'updated_at' => $datetime
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$newSubscription->total_bonus_amount = -$beneficiariesBonus;
|
||||||
|
$newSubscription->save();
|
||||||
|
|
||||||
|
NhInsurancesSubscriptionsHistory::create([
|
||||||
|
'action' => 'ADD',
|
||||||
|
'insurance_subscription_id' => $newSubscription->insurance_subscription_id,
|
||||||
|
'insurance_subscription_state' => $newSubscription->state,
|
||||||
|
'created_at' => $datetime, 'updated_at' => $datetime,
|
||||||
|
]);
|
||||||
|
|
||||||
|
Event::dispatch(new InsuranceEvent($newSubscription, trans('messages.insurance_deletion_beneficiary'), trans('messages.insurance_deletion_beneficiary_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,
|
||||||
|
'gender' => trans('states.' . $identification->gender), 'insurance_name' => $insurance->network->name])));
|
||||||
|
|
||||||
|
// $beneficiaries = $insurance->beneficiaries;
|
||||||
|
// $insurance->number_of_beneficiaries = sizeof($beneficiaries);
|
||||||
|
// $insurance->total_bonus_amount = $insurance->bonus_amount + $beneficiariesBonus;
|
||||||
|
// $insurance->updated_at = $datetime;
|
||||||
|
// $insurance->save();
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
return $this->successResponse(trans('messages.insurance_deletion_beneficiary_successful'));
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
Log::error($e->getMessage() . '\n' . $e->getTraceAsString());
|
||||||
|
DB::rollBack();
|
||||||
|
return $this->errorResponse(trans('errors.unexpected_error'), 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,5 +136,16 @@ A new consultation or prescription has been made with your insurance.
|
||||||
'care_request_rejected' => "Care request refused",
|
'care_request_rejected' => "Care request refused",
|
||||||
'care_request_rejected_notification' => "Your request for care authorisation :request_id has been refused",
|
'care_request_rejected_notification' => "Your request for care authorisation :request_id has been refused",
|
||||||
'care_request_accepted_notification' => "Your care request :request_id has been accepted",
|
'care_request_accepted_notification' => "Your care request :request_id has been accepted",
|
||||||
'generated_invoice_mail' => "Invoice issued by :agent for the period :period"
|
'generated_invoice_mail' => "Invoice issued by :agent for the period :period",
|
||||||
|
'insurance_deletion_beneficiary_successful' => "Request for deletion of your insurance beneficiary successful",
|
||||||
|
'insurance_deletion_beneficiary' => "Request for deletion of beneficiary from your insurance",
|
||||||
|
'insurance_deletion_beneficiary_mail' => ":gender :name ,
|
||||||
|
|
||||||
|
Your request for deletion of entitlement to your insurance is being validated.
|
||||||
|
Request information :
|
||||||
|
- ID: :subscription_id
|
||||||
|
- Name of the insurance: :insurance_name
|
||||||
|
- Premium amount: :bonus_amount
|
||||||
|
- Number of beneficiaries : :number_of_beneficiaries
|
||||||
|
",
|
||||||
];
|
];
|
||||||
|
|
|
@ -152,5 +152,16 @@ Une nouvelle execution de prescription vient d'etre effectuée sur votre assuran
|
||||||
'care_request_rejected' => "Demande de soins refusée",
|
'care_request_rejected' => "Demande de soins refusée",
|
||||||
'care_request_rejected_notification' => "Votre demande d'autorisation de soins :request_id a été refusée",
|
'care_request_rejected_notification' => "Votre demande d'autorisation de soins :request_id a été refusée",
|
||||||
'care_request_accepted_notification' => "Votre demande d'autorisation de soins :request_id a été acceptée",
|
'care_request_accepted_notification' => "Votre demande d'autorisation de soins :request_id a été acceptée",
|
||||||
'generated_invoice_mail' => "Facture émise par :agent pour la période :period"
|
'generated_invoice_mail' => "Facture émise par :agent pour la période :period",
|
||||||
|
'insurance_deletion_beneficiary_successful' => "Demande de suppression d'ayant droit à votre assurance réussie",
|
||||||
|
'insurance_deletion_beneficiary' => "Demande de suppression d'ayant droit à votre assurance",
|
||||||
|
'insurance_deletion_beneficiary_mail' => ":gender :name ,
|
||||||
|
|
||||||
|
Votre demande de suppression d'ayant droit à votre assurance est en cours de validation.
|
||||||
|
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
|
||||||
|
",
|
||||||
];
|
];
|
||||||
|
|
|
@ -18,6 +18,7 @@ $router->group(['prefix' => '', 'middleware' => 'auth'], function () use ($route
|
||||||
$router->get('', 'InsuranceController@getInsurances');
|
$router->get('', 'InsuranceController@getInsurances');
|
||||||
$router->get('networks', 'InsuranceController@getInsurancesNetworks');
|
$router->get('networks', 'InsuranceController@getInsurancesNetworks');
|
||||||
$router->put('{id}/add-beneficiaries', 'InsuranceController@addBeneficiaries');
|
$router->put('{id}/add-beneficiaries', 'InsuranceController@addBeneficiaries');
|
||||||
|
$router->put('{id}/delete-beneficiaries', 'InsuranceController@deleteBeneficiaries');
|
||||||
|
|
||||||
// Subscriptions
|
// Subscriptions
|
||||||
$router->group(['prefix' => '/subscriptions'], function () use ($router) {
|
$router->group(['prefix' => '/subscriptions'], function () use ($router) {
|
||||||
|
|
Loading…
Reference in New Issue