From 2e00095510742260a0b18e53c3c8a945c8f7785f Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Tue, 30 Dec 2025 14:47:40 +0530 Subject: [PATCH] Endoresment update changes : GWM --- app/Config/Routes.php | 1 + app/Controllers/EndorsementController.php | 68 +++++++++++++++++++++++ app/Models/EndorsementModel.php | 2 + app/Models/EndorsementTypeModel.php | 2 +- 4 files changed, 72 insertions(+), 1 deletion(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 3025bc1..82bd513 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -133,6 +133,7 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) { //endorsement $routes->get('endorsement/endorsementList', 'EndorsementController::endorsementList'); $routes->post('endorsement/createEndorsement', 'EndorsementController::createEndorsement'); + $routes->post('endorsement/updateEndorsement', 'EndorsementController::updateEndorsement'); //dashboard $routes->get('dashboard/managerDashboard', 'DashboardController::managerDashboard'); diff --git a/app/Controllers/EndorsementController.php b/app/Controllers/EndorsementController.php index c8b0ffb..d3e2aea 100644 --- a/app/Controllers/EndorsementController.php +++ b/app/Controllers/EndorsementController.php @@ -157,6 +157,74 @@ class EndorsementController extends ResourceController } } + public function updateEndorsement() + { + try { + + $endorsementId = $this->request->getPost('id'); + + if (!$endorsementId) { + return $this->respond([ 'status' => 'failed', 'code' => 400, 'data' => 'endorsementId is required' ], 200); + } + + $reqData = $this->request->getPost(); + + // Fetch existing record + $endorsement = $this->EndorsementModel->find($endorsementId); + + if (empty($endorsement)) { + return $this->respond([ 'status' => 'failed', 'code' => 404, 'data' => 'Endorsement not found' ], 200); + } + + // Handle upload (endorsement completion file) + $uploadFile = $this->request->getFile('endorsement_completion_file'); + $uploadedCompletionFile = $endorsement['endorsement_completion_file']; // keep old if not replaced + + if ($uploadFile && $uploadFile->isValid()) { + + $uploadPath = WRITEPATH . 'uploads/endorsement/'; + if (!is_dir($uploadPath)) { + mkdir($uploadPath, 0777, true); + } + + $uploadedCompletionFile = time() . '_' . $uploadFile->getRandomName(); + $uploadFile->move($uploadPath, $uploadedCompletionFile); + } + + // Prepare data to update + $updateData = [ + 'endorsement_type' => $reqData['endorsement_type'] ?? $endorsement['endorsement_type'], + 'endorsement_description' => $reqData['endorsement_description'] ?? $endorsement['endorsement_description'], + 'endorsement_no' => $reqData['endorsement_no'] ?? $endorsement['endorsement_no'], + 'status' => 'Completed', // Fixed Update to Completed + 'endorsement_completion_file' => $uploadedCompletionFile, + 'updated_by' => $reqData['updated_by'] ?? null, + ]; + + if (!$this->EndorsementModel->update($endorsementId, $updateData)) { + return $this->respond([ + 'status' => 'failed', + 'code' => 422, + 'data' => $this->EndorsementModel->errors() + ], 422); + } + + return $this->respond([ + 'status' => 'success', + 'code' => 200, + 'data' => ['endorsement_id' => $endorsementId, 'message' => 'Endorsement updated successfully'] + ], 200); + + } catch (\Exception $e) { + return $this->respond([ + 'status' => 'failed', + 'code' => 500, + 'data' => $e->getMessage() + ], 500); + } + } + + diff --git a/app/Models/EndorsementModel.php b/app/Models/EndorsementModel.php index e9c57a7..8992f29 100644 --- a/app/Models/EndorsementModel.php +++ b/app/Models/EndorsementModel.php @@ -12,6 +12,7 @@ class EndorsementModel extends Model protected $useSoftDeletes = false; protected $allowedFields = [ + 'policy_from', 'client_id', 'client_policy_id', 'insurer_id', @@ -24,6 +25,7 @@ class EndorsementModel extends Model 'endorsement_description', 'status', 'endorsement_file_name', + 'endorsement_completion_file', 'created_at', 'updated_by', 'updated_at', diff --git a/app/Models/EndorsementTypeModel.php b/app/Models/EndorsementTypeModel.php index f7ed484..51e16a8 100644 --- a/app/Models/EndorsementTypeModel.php +++ b/app/Models/EndorsementTypeModel.php @@ -14,7 +14,7 @@ class EndorsementTypeModel extends Model protected $returnType = 'array'; protected $allowedFields = [ - 'policy_from', + 'endorsement_type', 'is_active', 'created_by',