diff --git a/app/Controllers/ClaimController.php b/app/Controllers/ClaimController.php index 084cec2..b9428f0 100644 --- a/app/Controllers/ClaimController.php +++ b/app/Controllers/ClaimController.php @@ -145,23 +145,25 @@ class ClaimController extends ResourceController try { $reqData = $this->request->getPost(); - if (empty($reqData['policy_number']) || empty($reqData['claim_type'])) { + if (empty($reqData['policy_number']) || empty($reqData['claim_type']) || empty($reqData['policy_from'])) { return $this->respond([ 'status' => 'failed', 'code' => 400, - 'data' => 'policy_number and claim_type are required', + 'data' => 'policy_number, claim_type and policy_from are required', ], 400); } - $policy = $this->PolicyModel - ->select('partner_policy.*, Q.insurer_id, E.mobile as client_mobile, E.email as client_email, E.broker_id') - ->join('partner_quotation Q', 'Q.id = partner_policy.quotation_id AND Q.status = "Accepted"', 'left') - ->join('partner_enquiry E', 'E.id = partner_policy.enquiry_id', 'left') - ->where('partner_policy.policy_number', $reqData['policy_number']) - ->first(); + if($reqData['policy_from'] === 'Internal') { + $policy = $this->PolicyModel + ->select('partner_policy.*, Q.insurer_id, E.mobile as client_mobile, E.email as client_email, E.broker_id') + ->join('partner_quotation Q', 'Q.id = partner_policy.quotation_id AND Q.status = "Accepted"', 'left') + ->join('partner_enquiry E', 'E.id = partner_policy.enquiry_id', 'left') + ->where('partner_policy.policy_number', $reqData['policy_number']) + ->first(); - if (empty($policy)) { - return $this->respond(['status' => 'failed', 'code' => 404, 'data' => 'Policy not found'], 404); + if (empty($policy)) { + return $this->respond(['status' => 'failed', 'code' => 404, 'data' => 'Policy not found'], 404); + } } $status = $this->ClaimStatusModel @@ -176,8 +178,10 @@ class ClaimController extends ResourceController $claimData = [ 'claim_status_id' => $reqData['claim_status_id'] ?? $status['id'], - 'policy_id' => $policy['id'], - 'policy_no' => $policy['policy_number'], + 'policy_id' => $policy['id'] ?? null, + 'policy_no' => $policy['policy_number'] ?? null, + 'claim_number' => $reqData['claim_number'] ?? null, + 'policy_from' => $reqData['policy_from'], 'insurer_id' => $policy['insurer_id'] ?? null, 'broker_id' => $reqData['broker_id'] ?? $policy['broker_id'] ?? null, 'insured_name' => $reqData['insured_name'] ?? $policy['insured_name'] ?? null, diff --git a/app/Models/ClaimModel.php b/app/Models/ClaimModel.php index 862030e..2e27d42 100644 --- a/app/Models/ClaimModel.php +++ b/app/Models/ClaimModel.php @@ -36,6 +36,8 @@ class ClaimModel extends Model 'is_active', 'created_by', 'updated_by', + 'claim_number', + 'policy_from', ]; // Auto timestamps