From cf3280cd7abecebd3bfcdac30362afc9f8bcf7cf Mon Sep 17 00:00:00 2001 From: ivan-sim Date: Thu, 4 Jan 2024 14:15:14 +0700 Subject: [PATCH] Update add provider --- .../Controllers/Api/RequestLogController.php | 58 +++++++++++++++---- 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index a7f796ad..bdcc6a8f 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php @@ -26,7 +26,7 @@ class RequestLogController extends Controller 'service_code' => $request->service_code, 'id_provider' => $request->id_provider, 'name_provider' => $request->name_provider, - 'adress_provider' => $request->address_provider + 'address_provider' => $request->address_provider ]; $validator = Validator::make($request->all(), [ 'member_id' => 'required', @@ -53,17 +53,55 @@ class RequestLogController extends Controller } else { + //insert data to organization + try { + // Memulai transaksi + DB::beginTransaction(); - $requestLogControllerInstance = new PrimeCenterRequestLog(); - $response = $requestLogControllerInstance->createNew($request); + // Insert data ke tabel organizations + $organization_id = DB::table('organizations') + ->insertGetId([ + 'name' => $request->name_provider, + 'code' => $request->name_provider, + 'created_at' => now(), + 'created_by' => auth()->user()->id + ]); + + // Insert data ke tabel addresses + $address_id = DB::table('addresses') + ->insertGetId([ + 'text'=> $request->address_provider, + 'addressable_type' => 'App\Models\Organization', + 'addressable_id' => $organization_id, + 'created_at' => now(), + 'created_by' => auth()->user()->id + ]); + + // Update main_address_id di tabel organizations + DB::table('organizations') + ->where('organizations.id', '=', $organization_id) + ->update(['main_address_id' => $address_id]); + + // Commit transaksi + DB::commit(); + $request->merge(['organization_id' => $organization_id]); + $requestLogControllerInstance = new PrimeCenterRequestLog(); + $response = $requestLogControllerInstance->createNew($request); - if($response->original['statusCode'] == 200) - { - return ApiResponse::apiResponse("Success", $data, trans('Message.success'), 200); - } - else - { - return ApiResponse::apiResponse('Server Error', $data, trans('Message.server_error'), 500); + if($response->original['statusCode'] == 200) + { + return ApiResponse::apiResponse("Success", $data, trans('Message.success'), 200); + } + else + { + return ApiResponse::apiResponse('Server Error', $data, trans('Message.server_error'), 500); + } + } catch (\Exception $e) { + // Rollback transaksi jika terjadi kesalahan + DB::rollBack(); + + // Handle error, bisa di-log atau dikembalikan sebagai response + return ApiResponse::apiResponse('Server Error', $data, $e->getMessage(), 500); } } }