diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index a7f796ad..367e0273 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,59 @@ class RequestLogController extends Controller } else { - - $requestLogControllerInstance = new PrimeCenterRequestLog(); - $response = $requestLogControllerInstance->createNew($request); + //insert data to organization + try { + if(!$request->id_provider) + { + // Memulai transaksi + DB::beginTransaction(); + + // 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]); + } - 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); + $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); + } + } 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); } } }