diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 1d535aea..02daae30 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -68,22 +68,33 @@ $routes->post('save_deposit', 'ClientController::saveDeposit'); $routes->group("relation", ["filter" => "authMVC"], function($routes){ $routes->post("create", "ClientController::createClientRelation"); $routes->post("edit", "ClientController::editClientRelation"); - }); + }); + $routes->group("policy", ["filter" => "authMVC"], function($routes){ $routes->post("create", "ClientController::createClientPolicy"); $routes->post("edit", "ClientController::editClientPolicy"); $routes->get("list/(:any)", "ClientController::getClientPolicyById/$1"); + $routes->post("policyGMCTerms", "ClientController::policyGMCTerms"); + $routes->get("getterms", "ClientController::getterms"); }); + $routes->group("kyc", ["filter" => "authMVC"], function($routes){ $routes->post("create", "ClientController::createClientKYCInfo"); $routes->post("edit", "ClientController::editClientKYCInfo"); $routes->get("list/(:any)", "ClientController::getKycDocsById/$1"); $routes->get("delete/(:any)", "ClientController::deleteClientKycDocs/$1"); }); + $routes->group("premimum", ["filter" => "authMVC"], function($routes){ $routes->post("create", "ClientController::createClientPolicyPremium"); $routes->post("edit", "ClientController::editClientPolicyPremium"); }); + + $routes->group("terms", ["filter" => "authMVC"], function($routes){ + $routes->post("gpa_create", "ClientController::policyGPATerms"); + $routes->post("edit", "ClientController::editClientPolicyPremium"); + }); + }); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index bc4506e1..5d5029bf 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -27,7 +27,7 @@ use App\Models\StateModel; use App\Models\PolicyGridModel; use App\Models\PolicyPremium1Model; use App\Models\PolicyPremium2Model; - +use App\Models\EmployeeModel; class ClientController extends AdminController { @@ -53,8 +53,7 @@ class ClientController extends AdminController protected $policyPremium1Model; protected $policyPremium2Model; protected $clientDepositModel; - - + protected $employeeModel; public function __construct() { @@ -78,8 +77,11 @@ class ClientController extends AdminController $this->tpaModel = new TPAModel(); $this->stateModel = new StateModel(); $this->policyGridModel = new PolicyGridModel(); - $this->policyPremium1Model = new PolicyPremium1Model(); - $this->policyPremium2Model = new PolicyPremium2Model(); + $this->policyPremium1Model = new PolicyPremium1Model(); + $this->policyPremium2Model = new PolicyPremium2Model(); + $this->employeeModel = new EmployeeModel(); + + } public function index() @@ -158,7 +160,7 @@ public function view_Deposit($insurerId) { $data['deposiamount'] = $this->clientPolicyModel->getDepositSummary($clientId, $insurerId); -// print_r($data['depositdata'] );die; + // print_r($data['depositdata'] );die; // Load the view for the new list page echo view('layout/header', $headerData); echo view('view_deposit',$data); @@ -234,9 +236,11 @@ public function saveDeposit() $insert = $this->clientModel->insert($data); if($insert){ $client_data = $this->clientModel->where(['id' => $insert, 'is_active' => 1])->first(); - echo json_encode(array("status" => true , 'data' => $client_data)); + return $this->respond(['status' => true,'code' => 200,'data' => $client_data], 200); + }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404,'message' => 'no data found'], 200); + } } @@ -248,9 +252,9 @@ public function saveDeposit() $data['updated_by'] = get_session_userid(); $update = $this->clientModel->update($id,$data); if($update){ - echo json_encode(array("status" => true , 'data' => $data)); + return $this->respond(['status' => true,'code' => 200,'data' => $data], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404,'message' => 'no data found'], 200); } } @@ -269,9 +273,9 @@ public function saveDeposit() if($insert){ $kycDocs = $this->clientKYCDocsModel->where('client_id',$this->request->getPost('client_id'))->findAll(); - echo json_encode(array("status" => true , 'data' => $kycDocs, 'file_name' => $File)); + return $this->respond(['status' => true,'code' => 200,'data' => $kycDocs, 'file_name' => $File], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404,'message' => 'no data found'], 200); } } @@ -290,9 +294,10 @@ public function saveDeposit() $insert = $this->clientKYCDocsModel->insert($data); if($insert){ $kycDocs = $this->clientKYCDocsModel->getKycDocsName($id); - echo json_encode(array("status" => true , 'data' => $kycDocs)); + return $this->respond(['status' => true,'code' => 200,'data' => $kycDocs], 200); }else{ - echo json_encode(array()); + return $this->respond(['status' => false,'code' => 404,'message' => 'no data found'], 200); + } } @@ -301,9 +306,9 @@ public function saveDeposit() $delete = $this->clientKYCDocsModel->where('kyc_doc_type_id', $id)->delete(); if($delete){ - echo json_encode(array("status" => true, 'id' => $id )); + return $this->respond(['status' => true,'code' => 200,'id' => $id], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404,'message' => 'no data found'], 200); } } @@ -312,9 +317,9 @@ public function saveDeposit() $delete = $this->clientKYCDocsModel->where('id', $id)->delete(); if($delete){ - echo json_encode(array("status" => true, 'id' => $id )); + return $this->respond(['status' => true,'code' => 200,'id' => $id], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404,'message' => 'no data found'], 200); } } @@ -348,9 +353,9 @@ public function saveDeposit() } if ($inserted) { - echo json_encode(array("status" => true, 'data' => $this->request->getPost())); + return $this->respond(['status' => true,'code' => 200,'data' => $this->request->getPost()], 200); } else { - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404,'message' => 'no data found'], 200); } } @@ -400,9 +405,9 @@ public function saveDeposit() $lastQuery = $this->clientRMModel->getLastQuery(); if ($inserted) { - echo json_encode(array("status" => true, 'data' => $this->request->getPost(), "place" => 'edit')); + return $this->respond(['status' => true,'code' => 200,'data' => $this->request->getPost(), "place" => 'edit'], 200); } else { - echo json_encode(array("status" => false, "place" => 'edit')); + return $this->respond(['status' => false,'code' => 404,"place" => 'edit', 'message' => 'no data found'], 200); } } @@ -432,9 +437,9 @@ public function saveDeposit() if($insert){ $branchData = $this->clientBranchModel->where('client_id', $this->request->getPost('client_id'))->findAll(); - echo json_encode(array("status" => true , 'data' => $branchData)); + return $this->respond(['status' => true,'code' => 200,'data' => $branchData], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } @@ -469,9 +474,9 @@ public function saveDeposit() if($insert){ $branchData = $this->clientBranchModel->where('client_id', $client_id)->findAll(); - echo json_encode(array("status" => true , 'data' => $branchData)); + return $this->respond(['status' => true,'code' => 200,'data' => $branchData], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } @@ -496,12 +501,12 @@ public function saveDeposit() $data['client_id'] = $this->request->getPost('client_id'); - $data['insured'] = $this->request->getPost('insured'); $data['no_of_lives'] = $this->request->getPost('no_of_lives'); $data['policy_status'] = $this->request->getPost('policy_status'); $data['no_of_employees'] = $this->request->getPost('no_of_employees'); $data['earned_premium_date'] = change_date_format($this->request->getPost('earned_premium_date'), 'd-m-Y', 'Y-m-d'); - $data['claims_incurred_date'] = change_date_format($this->request->getPost('claims_incurred_date'), 'd-m-Y', 'Y-m-d'); $data['incurred_claims_ratio'] = $this->request->getPost('incurred_claims_ratio'); + $data['claims_incurred_date'] = change_date_format($this->request->getPost('claims_incurred_date'), 'd-m-Y', 'Y-m-d'); + $data['incurred_claims_ratio'] = $this->request->getPost('incurred_claims_ratio'); $data['no_lives_at_inception'] = $this->request->getPost('no_lives_at_inception'); $data['premium_paid_at_inception'] = $this->request->getPost('premium_paid_at_inception'); $data['claims_experience_for_last_3_years'] = $this->request->getPost('claims_experience_for_last_3_years'); @@ -519,9 +524,9 @@ public function saveDeposit() $insert = $this->clientPolicyModel->insert($data); if($insert){ $clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($this->request->getPost('client_id')); - echo json_encode(array("status" => true , 'data' => $clientPoliceData, 'method' => 'CERATE')); + return $this->respond(['status' => true,'code' => 200,'data' => $clientPoliceData, 'method' => 'CERATE'], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } @@ -571,13 +576,12 @@ public function saveDeposit() if($insert){ $clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($client_id); - echo json_encode(array("status" => true , 'data' => $clientPoliceData , 'method' => 'EDIT')); + return $this->respond(['status' => true,'code' => 200,'data' => $clientPoliceData, 'method' => 'EDIT'], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } - public function createClientPolicyPremium() { $policy_type = $this->request->getPost('policy_type'); @@ -649,9 +653,10 @@ public function saveDeposit() } if($insert){ - echo json_encode(array("status" => true , 'data' => $data)); + return $this->respond(['status' => true,'code' => 200,'data' => $data], 200); }else{ - echo json_encode(array("status" => false , 'data' => $data)); + return $this->respond(['status' => false,'code' => 404, 'data' => $data,'message' => 'no data found'], 200); + } } @@ -667,11 +672,11 @@ public function saveDeposit() $this->myLogger->logme('error','getKycDocsById function called'); if($id){ $kyc_docs_data = $this->kycDocsModel->where(['kyc_type_id' => $id, 'is_active' => 1])->findAll(); - echo json_encode(array("status" => true , 'data' => $kyc_docs_data)); $this->myLogger->logme('error','getKycDocs status TRUE'); + return $this->respond(['status' => true,'code' => 200,'data' => $kyc_docs_data], 200); }else{ - echo json_encode(array("status" => false)); $this->myLogger->logme('error','getKycDocs status FALSE'); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } @@ -680,9 +685,9 @@ public function saveDeposit() $this->myLogger->logme('error','getPolicesByInsurerId function called'); if($id){ $police_data = $this->policesModel->where(['insurer_id' => $id, 'is_active' => 1])->findAll(); - echo json_encode(array("status" => true , 'data' => $police_data)); + return $this->respond(['status' => true,'code' => 200,'data' => $police_data], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } @@ -693,9 +698,9 @@ public function saveDeposit() if($id){ $branch_data = $this->clientBranchModel->where(['id' => $id, 'is_active' => 1])->first(); $branch_contact_data = $this->levelContactModel->where(['ref_id' => $id, 'contact_type'=>'client', 'is_active' => 1])->findAll(); - echo json_encode(array("status" => true , 'data' => $branch_data, 'contact' => $branch_contact_data)); + return $this->respond(['status' => true,'code' => 200,'data' => $branch_data, 'contact' => $branch_contact_data], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } @@ -707,9 +712,9 @@ public function saveDeposit() $client_policy_data = $this->clientPolicyModel->where(['id' => $id, 'is_active' => 1])->first(); $insurer_id = $client_policy_data['insurer_id']; $polices = $this->policesModel->where(['insurer_id' => $insurer_id, 'is_active' => 1])->findAll(); - echo json_encode(array("status" => true , 'data' => $client_policy_data, 'policy' => $polices)); + return $this->respond(['status' => true,'code' => 200,'data' => $client_policy_data, "insurer_id" => $client_policy_data['insurer_id'], 'policy' => $polices], 200); }else{ - echo json_encode(array("status" => false)); + return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); } } @@ -720,6 +725,19 @@ public function saveDeposit() $policy_id = $this->request->getGet('policy_id'); $client_id = $this->request->getGet('client_id'); + $emp_count = $this->employeeModel ->join('client_policy cp',"employees.client_id = cp.client_id") + ->join('employee_polices ep',"cp.id = ep.client_policy_id AND employees.id = ep.employee_id") + ->where("employees.client_id",$client_id) + ->where("employees.emp_status",'active') + ->countAllResults(); + + if($emp_count = 0){ + $emp_count = true; + }else{ + $emp_count = false; + } + + $data = $this->policesModel->getPolicyPremium($policy_id); $pattern = '/gmc/i'; $subject = $data[0]->policy_type; @@ -731,18 +749,248 @@ public function saveDeposit() $results = $this->policyGridModel->like('policy_type', $search_term)->findAll(); if($search_term === 'GPA'){ - $premiumData = $this->policyPremium1Model->where(['client_id' => $client_id, 'client_policy_id' => $policy_id, 'is_active' => 1])->findAll(); }else{ $premiumData = $this->policyPremium2Model->where(['client_id' => $client_id, 'client_policy_id' => $policy_id, 'is_active' => 1])->findAll(); - } - // echo '
';
         // print_r($results);
         // print_r($data[0]->policy_type); die;
-        echo json_encode(array("status" => true , 'data' => $results, 'premiumData' => $premiumData));
+        return $this->respond(['status' => true,'code' => 200,'data' => $results, 'premiumData' => $premiumData, 'count' => $emp_count], 200);
+
+    }
+
+    public function policyGMCTerms()
+    {
+        
+        try {
+            $this->myLogger->logme('error','Terms CREATE function called');
+            // print_r($this->request->getPost());
+            $client_id = $this->request->getPost("client_id");
+            $policy_id = $this->request->getPost("policy_id");
+            $data['sum_insured']   =$this->request->getPost("sum_insured");
+            $data['family_floater']   =$this->request->getPost("family_floater");
+            // print_r($data['familyfloater']);
+            if (!$data['family_floater'] || $data['family_floater'] == 0) {
+                $data['corporatebuffer'] = "";
+                $data['family_floaters'] = "";
+            }else{
+                $data['corporatebuffer'] = $this->request->getPost("corporatebuffer");
+                $data['family_floaters'] = $this->request->getPost("family_floaters") ?? [];                
+            }
+
+            $data['waiverofpreexistingdiseases']   =$this->request->getPost("waiverofpreexistingdiseases");
+            if ($data['waiverofpreexistingdiseases'] == 1) {
+                $data['maternitycoverage']   =$this->request->getPost("maternitycoverage");
+                $data['twindelivery']   =$this->request->getPost("twindelivery");
+                $data['preandpostnatal']   =$this->request->getPost("preandpostnatal");
+                $data['babyday1cover']   =$this->request->getPost("babyday1cover");
+            }else{
+                $data['maternitycoverage']   ="";
+                $data['twindelivery']   ="";
+                $data['preandpostnatal']   ="";
+                $data['babyday1cover']   ="";
+            }
+            $data['9monthwaitingperiodwaived'] =$this->request->getPost("9monthwaitingperiodwaived");
+            $data['coverfromthedateofjoining'] =$this->request->getPost("coverfromthedateofjoining");
+            $data['waiverof1,2,3&4thyearexclusions'] =$this->request->getPost("waiverof1,2,3&4thyearexclusions");
+            $data['waiverof30dayswaitingperiod'] =$this->request->getPost("waiverof30dayswaitingperiod");
+            $data['prehospitalizationcover'] =$this->request->getPost("prehospitalizationcover");
+            // $data['posthospitalizationcover'] =$this->request->getPost("posthospitalizationcover");
+            $data['congenitaldiseasesinternal'] =$this->request->getPost("congenitaldiseasesinternal");
+            // $data['congenitaldiseasesexternal'] =$this->request->getPost("congenitaldiseasesexternal");
+            $data['copayzonewisecopay'] =$this->request->getPost("copayzonewisecopay");
+            $data['bioabsorbablestenttoriclensmultifocallens'] =$this->request->getPost("bioabsorbablestenttoriclensmultifocallens");
+            $data['roomrentlimit'] =$this->request->getPost("roomrentlimit");
+            $data['proportionatedeductionclause'] =$this->request->getPost("proportionatedeductionclause");
+            $data['nursingallowance'] =$this->request->getPost("nursingallowance");
+            $data['ailmentcapping'] =$this->request->getPost("ailmentcapping");
+            $data['ambulancecharges'] =$this->request->getPost("ambulancecharges");
+            $data['airambulance'] =$this->request->getPost("airambulance");
+            $data['familytransportationbenefit'] =$this->request->getPost("familytransportationbenefit");
+            $data['reasonableandcustomarycharges'] =$this->request->getPost("reasonableandcustomarycharges");
+            $data['ayudhtreatmentcover'] =$this->request->getPost("ayudhtreatmentcover");
+            $data['armdcovered'] =$this->request->getPost("armdcovered");
+            $data['suminsuredenhancement'] =$this->request->getPost("suminsuredenhancement");
+            $data['automaticsuminsuredreinstatement'] =$this->request->getPost("automaticsuminsuredreinstatement");
+            $data['additionalsicknessbenefit'] =$this->request->getPost("additionalsicknessbenefit");
+            $data['lasiksurgery'] =$this->request->getPost("lasiksurgery");
+            $data['midterminclusion'] =$this->request->getPost("midterminclusion");
+            $data['capd'] =$this->request->getPost("capd");
+            $data['organdonorexpenses'] =$this->request->getPost("organdonorexpenses");
+            $data['moderntreatmentsasperirdai'] =$this->request->getPost("moderntreatmentsasperirdai");
+            $data['Wellness'] =$this->request->getPost("Wellness");
+            $data['days_of_discharge'] =$this->request->getPost("days_of_discharge");
+            $data['days_from_dod'] =$this->request->getPost("days_from_dod");
+            $data['special_condition_label'] = $this->request->getPost("special_condition_label") ?? [];
+            $data['special_condition_input'] = $this->request->getPost("special_condition_input") ?? [];
+
+
+                $jsonData = json_encode($data);
+                $dataa = array(
+                    'policy_terms' => $jsonData,
+                    'client_id' => $client_id,
+                    'policy_id' => $policy_id
+                );
+
+            $record = $this->clientPolicyModel->where(['client_id' => $client_id, 'policy_id' => $policy_id])->first();
+
+            if ($record) {
+                $update = $this->clientPolicyModel->update($record['id'], $dataa);
+                if ($update) {
+                    return $this->respond(['status' => true,'code' => 200,'message' => 'Data updated successfully'], 200);
+                } else {
+                    return $this->respond(['status' => false,'code' => 404, 'message' => 'Failed to update data'], 200);
+                }
+            }else{
+                $insert = $this->clientPolicyModel->insert($dataa);        
+                if ($insert) {
+                    return $this->respond(['status' => true,'code' => 200,'message' => 'Data stored successfully'], 200);
+                } else {
+                    return $this->respond(['status' => false,'code' => 404, 'message' => 'Failed to store data'], 200);
+                }
+            }
+        } catch (\Exception $e) {
+
+            echo "Failed to insert data: " . $e->getMessage();
+            // Log the error
+            log_message('error', 'Failed to insert data: ' . $e->getMessage());
+        }
+        
+    }
+    
+    public function getterms()
+    {
+        $client_id = $this->request->getVar('client_id');
+        $policy_id = $this->request->getVar('policy_id');
+        $record    = $this->clientPolicyModel->where(['client_id' => $client_id, 'policy_id' => $policy_id])->first();
+        $emp_count = $this->employeeModel ->join('client_policy cp',"employees.client_id = cp.client_id")
+                                          ->join('employee_polices ep',"cp.id = ep.client_policy_id AND employees.id = ep.employee_id")
+                                          ->where("employees.client_id",$client_id)
+                                          ->where("employees.emp_status",'active')
+                                          ->countAllResults();
+        if($emp_count = 0){
+            $emp_count = true;
+        }else{
+            $emp_count = false;
+        }
+
+        if ($record) {
+            return $this->respond(['Status' => true,'code' => 200,'data' => $record['policy_terms'], 'count' => $emp_count], 200);
+        } else {
+            return $this->respond(['Status' => false,'code' => 200,'message' => 'Record not found.', 'count' => $emp_count], 200);
+        }
+
+    }
+
+    public function policyGPATerms()
+    {
+        
+        try {
+            $this->myLogger->logme('error','Policy GPA Terms CREATE function called');
+
+            // print_r($this->request->getPost());
+            $client_id = $this->request->getPost("client_id");
+            $policy_id = $this->request->getPost("policy_id");
+
+            $data['sumInsured2']   =$this->request->getPost("sumInsured2");
+            $data['totalSumInsured'] =$this->request->getPost("totalSumInsured");
+            $data['accidentalDeathBenefit'] =$this->request->getPost("accidentalDeathBenefit");
+            $data['permanentTotalDisablement'] =$this->request->getPost("permanentTotalDisablement");
+            $data['permanentPartialDisablement'] =$this->request->getPost("permanentPartialDisablement");
+            $data['temporaryTotalDisablementBenefit'] =$this->request->getPost("temporaryTotalDisablementBenefit");
+            $data['accidentalHospitalizationExpenses'] =$this->request->getPost("accidentalHospitalizationExpenses");
+            $data['childrenEducationWelfareFund'] =$this->request->getPost("childrenEducationWelfareFund");
+
+            $data['compassionateVisitExpenses']   =$this->request->getPost("compassionateVisitExpenses");
+            if ($data['compassionateVisitExpenses'] == 1) {
+                $data['compassionateVisitExpensesData']   =$this->request->getPost("compassionateVisitExpensesData");
+            }else{
+                $data['compassionateVisitExpensesData']   ="";
+            }
+
+            $data['brokenBoneExpenses']   = $this->request->getPost("brokenBoneExpenses");
+            if ($data['brokenBoneExpenses'] == 1) {
+                $data['brokenBoneExpensesData']   = $this->request->getPost("brokenBoneExpensesData");
+            }else{
+                $data['brokenBoneExpensesData']   ="";
+            }
+
+            $data['ambulanceCharges']   =$this->request->getPost("ambulanceCharges");
+            if ($data['ambulanceCharges'] == 1) {
+                $data['ambulanceChargesData']   =$this->request->getPost("ambulanceChargesData");
+            }else{
+                $data['ambulanceChargesData']   ="";
+            }
+
+            $data['burnExpenses']   = $this->request->getPost("burnExpenses");
+            if ($data['burnExpenses'] == 1) {
+                $data['burnExpensesData']   = $this->request->getPost("burnExpensesData");
+            }else{
+                $data['burnExpensesData']   = "";
+            }
+
+            $data['carriageOfDeadBody']   = $this->request->getPost("carriageOfDeadBody");
+            if ($data['carriageOfDeadBody'] == 1) {
+                $data['carriageOfDeadBodyData']   = $this->request->getPost("carriageOfDeadBodyData");
+            }else{
+                $data['carriageOfDeadBodyData']   = "";
+            }
+
+            $data['animalSnakeInsectBite'] = $this->request->getPost("animalSnakeInsectBite");
+            $data['terrorism']             = $this->request->getPost("terrorism");
+            $data['worldwideCover']        = $this->request->getPost("worldwideCover");
+
+
+            print_r($data);
+
+            // print_r($this->request->getPost());
+                // die();
+
+                $jsonData = json_encode($data);
+                $dataa = array(
+                    'policy_terms' => $jsonData,
+                    'client_id' => $client_id,
+                    'policy_id' => $policy_id
+                );
+            $record = $this->clientPolicyModel->where(['client_id' => $client_id, 'policy_id' => $policy_id])->first();
+            if ($record) {
+                $update = $this->clientPolicyModel->update($record['id'], $dataa);
+                if ($update) {
+                    return $this->respond(['status' => true,'code' => 200,'message' => 'Data updated successfully'], 200);
+                } else {
+                    return $this->respond(['status' => false,'code' => 404, 'message' => 'Failed to update data'], 200);
+                }
+            }else{
+                $insert = $this->clientPolicyModel->insert($dataa);        
+                if ($insert) {
+                    return $this->respond(['status' => true,'code' => 200,'message' => 'Data stored successfully'], 200);
+                } else {
+                    return $this->respond(['status' => false,'code' => 404, 'message' => 'Failed to store data'], 200);
+                }
+            }
+        } catch (\Exception $e) {
+            // Handle the exception
+            echo "Failed to insert data: " . $e->getMessage();
+            // Log the error
+            log_message('error', 'Failed to insert data: ' . $e->getMessage());
+        }
+        
+    }
+
+    public function getPolicyGPATerms(){
+
+        $client_id = $this->request->getVar('client_id');
+        $policy_id = $this->request->getVar('policy_id');
+        $record = $this->clientPolicyModel->where(['client_id' => $client_id, 'policy_id' => $policy_id])->first();
+
+        if ($record) {
+            echo $record['policy_terms'];
+            
+        } else {
+            echo "Record not found.";
+        }
 
     }
 
diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php
index 0b2064de..bd8b4f10 100644
--- a/app/Models/ClientPolicyModel.php
+++ b/app/Models/ClientPolicyModel.php
@@ -16,6 +16,8 @@ class ClientPolicyModel extends Model
         "insurer_branch_id",
         "tpa_id",
         "tpa_branch_id",
+        "policy_type_id",
+        
         
         "policy_start_date",
         "policy_end_date",
@@ -33,6 +35,7 @@ class ClientPolicyModel extends Model
         "earned_premium_amount",
         "claims_incurred_amount",
 
+        "policy_terms",
         "created_by",
         "updated_by",
         "Is_active",
diff --git a/app/Views/client_basic_info.php b/app/Views/client_basic_info.php
index 9df58db2..c7a54c83 100644
--- a/app/Views/client_basic_info.php
+++ b/app/Views/client_basic_info.php
@@ -139,6 +139,9 @@ $(document).ready(function () {
             form_action = '';
         }
 
+        $('.loader').fadeIn();
+        $('.loader-mask').fadeIn();
+
         var formData = new FormData($('#general_form')[0]);
         var OptionsHTML1 = ''
 
@@ -150,20 +153,29 @@ $(document).ready(function () {
             processData: false,
             contentType: false,
             success: function(res) {
+
+                if(res){
+                    setTimeout(function() {
+                        
+                        $('.loader').fadeOut();
+                        $('.loader-mask').delay(350).fadeOut('slow');
+                        $('#kyc_tab').click();
+                        var message = (PrimaryKey === '') ? 'Client General Info Created successfully' : 'Client General Info Updated successfully';
+                        toastr.success(message, 'Success');
+
+                    }, 1000);
+                }
                 
-                console.log(res);
                 $('#client_id').val(res.data.id);
                 $('#client_id_relation').val(res.data.id);
+                $('#relation_PrimaryKey').val(res.data.id);
                 $('#client_id_branch').val(res.data.id);
                 $('#branch_PrimaryKey').val(res.data.id);
                 $('#client_id_policy').val(res.data.id);
                 $('#policy_PrimaryKey').val(res.data.id);
                 $('#client_id_kyc').val(res.data.id);
+                $('#kyc_PrimaryKey').val(res.data.id);
                 $('#entity_type').val(res.data.entity_type_id);
-                $('#kyc_tab').click();
-
-                var message = (PrimaryKey === '') ? 'Client General Info Created successfully' : 'Client General Info Updated successfully';
-                toastr.success(message, 'Success');
 
                 $.ajax({
                     url: '' + res.data.entity_type_id,
diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php
index 23dc8c51..dee42779 100644
--- a/app/Views/client_branch.php
+++ b/app/Views/client_branch.php
@@ -237,6 +237,9 @@ $(document).ready(function () {
 
         if (isValid) {
 
+            $('.loader').fadeIn();
+            $('.loader-mask').fadeIn();
+
             var formData = new FormData($('#branch_form')[0]);
 
             $.ajax({
@@ -247,9 +250,21 @@ $(document).ready(function () {
                 processData: false,
                 contentType: false,
                 success: function(res) {
-                    console.log(res);
-                    var message = (branch_PrimaryKey === '') ? 'Client General Info Created successfully' : 'Client General Info Updated successfully';
-                    toastr.success(message, 'Success');
+
+                    if(res){
+                        setTimeout(function() {
+                            
+                            $('.loader').fadeOut();
+                            $('.loader-mask').delay(350).fadeOut('slow');
+                            $('#add_branch').hide();
+                            $('#branch_table').show();
+                            $('.btnBack').hide();
+                            $('#btnBranchAdd').show();
+                            var message = (branch_PrimaryKey === '') ? 'Client Branch Created successfully' : 'Client Branch Updated successfully';
+                            toastr.success(message, 'Success');                        
+                        }, 1000);
+                    }
+
                     $('#branch_list tr').remove();
                     var branchTableInsert = ''
                     $.each(res.data, function(index, item) {
@@ -262,10 +277,7 @@ $(document).ready(function () {
                         `;   
                     });
                     $('#branch_list').append(branchTableInsert); 
-                    $('#add_branch').hide();
-                    $('#branch_table').show();
-                    $('.btnBack').hide();
-                    $('#btnBranchAdd').show();
+
                 },
                 error: function (xhr, status, error) {
                     console.error(xhr.responseText);
diff --git a/app/Views/client_kyc.php b/app/Views/client_kyc.php
index 154e5d06..9ea8fbea 100644
--- a/app/Views/client_kyc.php
+++ b/app/Views/client_kyc.php
@@ -105,7 +105,9 @@
         $(document).on('click', '.submit', function(e) {
 
             e.preventDefault();
-            kycPrimaryKey  = $('#kyc_PrimaryKey').val();
+            // kycPrimaryKey  = $('#kyc_PrimaryKey').val();
+            kycPrimaryKey  = $('#client_id_kyc').val();
+
 
             var form = $(this).closest('form'); 
             var formData = new FormData(form[0]); 
@@ -149,8 +151,8 @@
                 processData: false,
                 contentType: false,
                 success: function (res) {
-                    res = JSON.parse(res)
-                    console.log(res);
+                    // res = JSON.parse(res)
+                    // console.log(res);
                     form.trigger('reset')
                     $.each(res.data, function (index, item) {
 
@@ -168,8 +170,6 @@
             });
         });
 
-        ;
-
         if(kycPrimaryKey !== ''){
 
             $.ajax({
@@ -203,8 +203,10 @@
                 }
             });
 
+
             var table = '';
             var data  = ;
+
             console.log(data)
             $('#other_docs tr').remove();
             $.each(data, function(index, item) {
@@ -221,14 +223,15 @@
             });
             $('#other_docs').append(table);
             
+
             $.each(data, function(index, item) {
                 // console.log(item.kyc_doc_type_id);
                 // console.log('name_' + item.kyc_doc_type_id);
                 // console.log(document.getElementById('name_' + item.kyc_doc_type_id));
                 setTimeout(function() {
-                    $('#name_'+item.kyc_doc_type_id).show();
-                    $('#name_'+item.kyc_doc_type_id).html(item.file_name);
-                    $('#form_'+item.kyc_doc_type_id).hide();
+                    $('#name_'+item.id).show();
+                    $('#name_'+item.id).html(item.file_name);
+                    $('#form_'+item.id).hide();
                 }, 1000);
 
             });
diff --git a/app/Views/client_onboarding.php b/app/Views/client_onboarding.php
index 92d70c6a..bd5248f2 100644
--- a/app/Views/client_onboarding.php
+++ b/app/Views/client_onboarding.php
@@ -36,12 +36,15 @@ body {
             
-

Client Onboarding

+

Client Onboarding

+ +
+