diff --git a/app/Config/Routes.php b/app/Config/Routes.php index ac723e59..e3685dd8 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -89,6 +89,8 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) { $routes->get('deposit/(:num)', 'ClientController::deposit/$1'); $routes->get('remove/(:num)', 'ClientController::removeClient/$1'); $routes->get("list/(:any)", "ClientController::editClientOnboarding/$1"); + $routes->post('wipe', 'ClientController::wipeDemoClient'); + // application/config/routes.php // Add a route for the view_Deposit method @@ -591,7 +593,9 @@ $routes->group("/ticket", ["filter" => "authMVC"], function ($routes) { $routes->post("getPoliciesbyEmpID","TicketController::getPoliciesbyEmpID"); $routes->post("getMoreInfo","TicketController::getMoreInfo"); $routes->get("getMoreInfo","TicketController::getMoreInfo"); -// $routes->post('ticket_messages','TicketController::getTicketMessage'); + $routes->post('upload_url',"TicketController::upload_url"); + $routes->post('getUrlDataByTicketId',"TicketController::getUrlDataByTicketId"); + $routes->get('remove_url',"TicketController::remove_url"); }); $routes->group("clientApi",["filter" => "AuthClientApi"], function ($routes){ diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index e639c97c..d4bfa5d8 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -608,6 +608,8 @@ class ClientController extends AdminController $data['policy_types'] = $this->policyTypeModel->findAll(); $data['policy_type'] = ['1' => 'Base Policy', '2' => 'SI Topup', '3' => 'Dependent Addon']; $data['client_type'] = ['1' => 'Group', '2' => 'Retail']; + $data['clients'] = $this->clientModel->where('is_active', 1)->findAll(); + $data['insurers'] = $this->insurerModel->where('is_active', 1)->findAll(); // echo "
";
// print_r($data); die;
@@ -809,7 +811,12 @@ class ClientController extends AdminController
$data['is_download_btn'] = 1;
}
+ if(empty($data['parent_client_id'])){
+ $data['parent_client_id'] = null;
+ }
+
$insert = $this->clientModel->insert($data);
+
if ($insert) {
$client_data = $this->clientModel->where(['id' => $insert, 'is_active' => 1])->first();
return $this->respond(['status' => true, 'code' => 200, 'data' => $client_data], 200);
@@ -838,6 +845,9 @@ class ClientController extends AdminController
$data['is_download_btn'] = 1;
}
+ if(empty($data['parent_client_id'])){
+ $data['parent_client_id'] = null;
+ }
// print_r($data);die;
$update = $this->clientModel->update($id, $data);
@@ -2170,6 +2180,7 @@ class ClientController extends AdminController
$insurer_id = $client_policy_data['insurer_id'];
$client_id = $client_policy_data['client_id'];
+ $insurer_branch_id = $client_policy_data['insurer_branch_id'];
if (!empty($client_policy_data['policy_start_date'])) {
$client_policy_data['source_policy_start_date'] = change_date_format($client_policy_data['policy_start_date'], 'Y-m-d', 'd/m/Y');
@@ -2190,7 +2201,8 @@ class ClientController extends AdminController
->findAll();
$client_policy_list = $this->clientPolicyModel->getPolicyTypeForPolicyBinding($client_id);
- $cd_data = $this->CDMasterModel->where('client_id', $client_id)->where('insurer_id', $insurer_id)->where('is_active', 1)->findAll();
+ // $cd_data = $this->CDMasterModel->where('client_id', $client_id)->where('insurer_id', $insurer_id)->where('is_active', 1)->findAll();
+ $cd_data = $this->get_cd_ac($client_id, $insurer_id, $insurer_branch_id, "internal");
// $client_policy_data['policy_end_date'] = date('d/m/Y', strtotime($client_policy_data['policy_end_date']));
$fromDate = new \DateTime($client_policy_data['policy_end_date']);
$fromDate->modify('+1 year');
@@ -2549,6 +2561,7 @@ class ClientController extends AdminController
// $data['special_condition_label'] = str_replace(',', '', $this->request->getPost("special_condition_label")) ?? [];
// $data['special_condition_input'] = str_replace(',', '', $this->request->getPost("special_condition_input")) ?? [];
// $data['multiple_sum_insured'] = str_replace(',', '', $this->request->getPost("multiple_sum_insured")) ?? [];
+
$fields = [
'waiverofpreexistingdiseases' => false,
'waiverof1,2,3&4thyearexclusions' => false,
@@ -2595,18 +2608,17 @@ class ClientController extends AdminController
'special_condition_input' => true,
'multiple_sum_insured' => true,
];
-
- // $data = [];
-
+
foreach ($fields as $field => $needsCleanup) {
$value = $this->request->getPost($field);
if ($value !== null && $value !== '') {
$data[$field] = $needsCleanup ? str_replace(',', '', $value) : $value;
+ }else{
+ $data[$field] = $value;
}
}
-
$data['enrollment_display_key'] = $this->enrollmentGMCDisplayValueTransform();
// print_r($data);die;
@@ -2869,6 +2881,8 @@ class ClientController extends AdminController
try {
$this->myLogger->logme('error', 'Policy GPA Terms CREATE function called');
+ // print_r($this->request->getPost()); die;
+
/*** Client Policy Table Primary Key(ID) ***/
$client_policy_id = $this->request->getPost("client_policy_id");
@@ -2940,6 +2954,8 @@ class ClientController extends AdminController
$value = $this->request->getPost($field);
if ($value !== null) {
$data[$field] = str_replace(',', '', $value);
+ }else{
+ $data[$field] = $value;
}
}
@@ -2948,6 +2964,8 @@ class ClientController extends AdminController
$value = $this->request->getPost($field);
if ($value !== null) {
$data[$field] = $value;
+ }else{
+ $data[$field] = $value;
}
}
@@ -3555,23 +3573,64 @@ class ClientController extends AdminController
return $this->respond(['status' => true, 'code' => 200, 'message' => 'Additionaly Rack Rate Data Remove Successfully'], 200);
}
- public function get_cd_ac($client_id, $insurer_id, $insurer_branch_id)
+ public function get_cd_ac($client_id, $insurer_id, $insurer_branch_id, $return_type = null)
{
+ // Get client data
+ $client_data = $this->clientModel
+ ->where('is_active', 1)
+ ->where('id', $client_id)
+ ->first();
- $cd_data = $this->CDMasterModel
+ $cd_data = [];
+
+ // If client has a parent, fetch parent client CD data
+ if (!empty($client_data['parent_client_id'])) {
+ $parent_cd_data = $this->CDMasterModel
+ ->where('client_id', $client_data['parent_client_id'])
+ ->where('insurer_id', $insurer_id)
+ ->where('insurer_branch_id', $insurer_branch_id)
+ ->where('is_active', 1)
+ ->findAll();
+
+ $cd_data = array_merge($cd_data, $parent_cd_data);
+ }
+
+ // Fetch current client CD data
+ $client_cd_data = $this->CDMasterModel
->where('client_id', $client_id)
->where('insurer_id', $insurer_id)
->where('insurer_branch_id', $insurer_branch_id)
->where('is_active', 1)
->findAll();
- if ($cd_data) {
- return $this->respond(['status' => true, 'code' => 200, 'data' => $cd_data], 200);
+ $cd_data = array_merge($cd_data, $client_cd_data);
+
+ if($return_type == "internal"){
+ if(!empty($cd_data)){
+ return $cd_data;
+ }else{
+ return [];
+ }
+ }
+
+ if (!empty($cd_data)) {
+ return $this->respond([
+ 'status' => true,
+ 'code' => 200,
+ 'data' => $cd_data
+ ], 200);
} else {
- return $this->respond(['status' => false, 'code' => 404, 'insurer_id' => $insurer_id, 'client_id' => $client_id], 200);
+ return $this->respond([
+ 'status' => false,
+ 'code' => 404,
+ 'client_id' => $client_id,
+ 'insurer_id' => $insurer_id,
+ 'insurer_branch_id' => $insurer_branch_id
+ ], 200);
}
}
+
public function otherPolicyTermsFormSubmit()
{
@@ -4100,22 +4159,60 @@ class ClientController extends AdminController
}
-
- public function getCDAccNoByClientAndInsurer($client, $insurer, $insurer_branch_id)
+ public function getCDAccNoByClientAndInsurer($client_id, $insurer_id, $insurer_branch_id)
{
- $cdmData = $this->CDMasterModel
- ->where('client_id', $client)
- ->where('insurer_id', $insurer)
- ->where('insurer_branch_id', $insurer_branch_id)
- ->where('is_active', 1)
- ->findAll();
+ // Get client data
+ $client_data = $this->clientModel
+ ->where('is_active', 1)
+ ->where('id', $client_id)
+ ->first();
- if ($cdmData) {
- return $this->respond(['status' => true, 'data' => $cdmData], 200);
+ $cd_data = [];
+
+ // If client has a parent, fetch parent client CD data
+ if (!empty($client_data['parent_client_id'])) {
+ $parent_cd_data = $this->CDMasterModel
+ ->where('client_id', $client_data['parent_client_id'])
+ ->where('insurer_id', $insurer_id)
+ ->where('insurer_branch_id', $insurer_branch_id)
+ ->where('is_active', 1)
+ ->findAll();
+
+ $cd_data = array_merge($cd_data, $parent_cd_data);
+ }
+
+ // Fetch current client CD data
+ $client_cd_data = $this->CDMasterModel
+ ->where('client_id', $client_id)
+ ->where('insurer_id', $insurer_id)
+ ->where('insurer_branch_id', $insurer_branch_id)
+ ->where('is_active', 1)
+ ->findAll();
+
+ $cd_data = array_merge($cd_data, $client_cd_data);
+
+ if (!empty($cd_data)) {
+ return $this->respond([ 'status' => true,'code' => 200, 'data' => $cd_data], 200);
} else {
- return $this->respond(['status' => false], 200);
+ return $this->respond(['status' => false,'code' => 404,'client_id' => $client_id,'insurer_id' => $insurer_id,'insurer_branch_id' => $insurer_branch_id ], 200);
}
}
+
+ // public function getCDAccNoByClientAndInsurer($client, $insurer, $insurer_branch_id)
+ // {
+ // $cdmData = $this->CDMasterModel
+ // ->where('client_id', $client)
+ // ->where('insurer_id', $insurer)
+ // ->where('insurer_branch_id', $insurer_branch_id)
+ // ->where('is_active', 1)
+ // ->findAll();
+
+ // if ($cdmData) {
+ // return $this->respond(['status' => true, 'data' => $cdmData], 200);
+ // } else {
+ // return $this->respond(['status' => false], 200);
+ // }
+ // }
public function createClientWithMinimalData()
{
@@ -4125,7 +4222,7 @@ class ClientController extends AdminController
$client_data = [
'client_type' => $postData['client_type'],
'client_name' => $postData['client_name'],
- 'short_name' => $postData['short_name'],
+ 'short_name' => $postData['short_name'] ?? $postData['client_name'],
'pan' => $postData['pan'],
'client_code' => generate_client_code(),
];
@@ -4943,24 +5040,24 @@ class ClientController extends AdminController
// ---------- EMP SERVICE CONTROLLER --------------------------------------------------------------------------------
- $employeeRestController = new EmployeeServiceController();
- // $employeeRestController->excelFileDataValidation(['file_id' => 1629]); die;
- // $employeeRestController->employeesOnboardPreprocess(['file_id' => 726]);
- // $employeeRestController->employeesOnboardProcess(['file_id' => 835]);
- // $employeeRestController->employeesEnrollmentInsert(['file_id' => 836]);
- // $r = Jobs::addJob(['job_name' => 'employeesEnrollmentInsert','payload' => ['file_id' => 721]]);
$empServiceController = new EmployeeServiceController();
// $res = $empServiceController->excelFileFormatValidation(['file_id' => '865']);
// $res = $empServiceController->excelFileDataValidation(['file_id' => '865']);
+ // $res = $empServiceController->employeesOnboardPreprocess(['file_id' => 726]);
+ // $res = $empServiceController->employeesOnboardProcess(['file_id' => 835]);
+ // $res = $empServiceController->employeesEnrollmentInsert(['file_id' => 836]);
// $res = $empServiceController->employeesSIEnhanceProcess(['file_id' => '978']);
- // $res = $empServiceController->employeeDisembark(['file_id' => '1681']); dd( $res);
+ // $res = $empServiceController->employeeDisembark(['file_id' => '1681']);
+ // $res = $empServiceController->employeesCorrectionProcess(['file_id' => '1681']);
+ // dd( $res);
+
+ // ---------- POLICY TRANSACTION CONTROLLER --------------------------------------------------------------------------------
$policyTransactionController = new PolicyTransactionController();
// $res = $policyTransactionController->validateInsurerStatement(['file_id' => '17']);
// $res = $policyTransactionController->updateInsurerStatement(['file_id' => '22']);
// dd('-----', $res);
-
// ----------EMP DATA SERVICE CONTROLLER--------------------------------------------------------------------------------
$batch_data = [
@@ -4991,44 +5088,26 @@ class ClientController extends AdminController
// $client_policy_data = $this->clientPolicyModel->getPolicyDetailsForRemainder($client_id=159, $client_branch_id=126);
// $dashBoardController->sendRemainderMail($client_policy_data);
- // $EmpDataServiceController = new EmpDataServiceController();
// $emp_data = $this->employeePolicyModel->getEmployeePolicyForEcard(12);
// $ids = array_column($emp_data, 'id');
- // $EmpDataServiceController->sendMailForDownloadingECard($ids);
$EmpDataServiceController = new EmpDataServiceController();
- // $return = $EmpDataServiceController->generateExcelForDeletion($batch_data); dd($return); die;
- // $EmpDataServiceController->generateExcelForSIEnhancement($batch_data); die;
- // $EmpDataServiceController->importInceptionFileValidation(['file_id' => 1932]); die;
- // $EmpDataServiceController->importDeletionValidation(['file_id' => 304]); //for live
- // $EmpDataServiceController->importSIEnhancementUpdateEndorsementID(['file_id' => 1199]); //for live
- // $result = $EmpDataServiceController->importSIEnhancementValidation(['file_id' => 2496]); //for live
- // $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 214]); //for live
-
- // $result = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data, 1); dd($result);
- // $result = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1);
+ // $res = $EmpDataServiceController->generateExcelForDeletion($batch_data); dd($return); die;
+ // $res = $EmpDataServiceController->generateExcelForSIEnhancement($batch_data); die;
+ // $res = $EmpDataServiceController->importInceptionFileValidation(['file_id' => 1932]); die;
+ // $res = $EmpDataServiceController->importDeletionValidation(['file_id' => 304]); //for live
+ // $res = $EmpDataServiceController->importSIEnhancementUpdateEndorsementID(['file_id' => 1199]); //for live
+ // $res = $EmpDataServiceController->importSIEnhancementValidation(['file_id' => 2496]); //for live
+ // $res = $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 214]); //for live
+ // $res = $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 310]); dd($res);//for live
+ // $res = $EmpDataServiceController->getInceptionBasePremium(["13332","13333","13334","13335","13336"]); dd($res);//for live
+ // $res = $EmpDataServiceController->getDeletionBasePremium(["13248","13250","13249","13247"], json_decode('{"employeeIds":["13248","13250","13249","13247"],"client_id":"3927","client_policy_id":"6183","client_branch_id":"1874","cd_ac_no":"CD9751909505","endorsement_no":"END1238","count":4,"event_name":"deletion","policy_name":"GMC","user_id":"48"}', true)); dd($res);//for live
+ // $res = $EmpDataServiceController->makeEntryForBDSPolicyTransaction(json_decode('{"client_policy_id":"6187","endorsement_no":null,"emp_count":5,"action_type":"inception","no_of_insured":3,"no_of_dependent":0}', true)); dd($res);//for live
+ // $res = $EmpDataServiceController->sendMailForDownloadingECard($ids);
+ // $res = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data, 1); dd($result);
+ // $res = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1);
// return $this->downloadInsurerExcelExport($batch_data);
- // dd($result); die;
-
- // $empServiceController = new EmployeeServiceController();
- // $res = $empServiceController->employeesOnboardPreprocess(['file_id' => '741']);
-
- // $PolicyTransactionController = new PolicyTransactionController();
- // $res = $PolicyTransactionController->validateInsurerStatement(['file_id' => '36']);
-
- // $empServiceController = new EmployeeServiceController();
- // $res = $empServiceController->excelFileDataValidation(['file_id' => '1101']);
- // dd($res);
-
- // $EmpDataServiceController = new EmpDataServiceController();
- // $EmpDataServiceController->importInceptionFileValidation(['file_id' => 160]);
-
- // $EmpDataServiceController = new EmpDataServiceController();
- // $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 162]);
- // $EmpDataServiceController->importInceptionFileValidation(['file_id' => 162]);
- // $EmpDataServiceController->importDeletionValidation(['file_id' => 171]);
- // $EmpDataServiceController->importDeletionUpdateEndorsementID(['file_id' => 171]);
- // $EmpDataServiceController->importCorrectionUpdateEndorsementID(['file_id' => 188]);
+ // dd($res); die;
// $params = [
// 'client_policy_id' => 6090,
@@ -6147,7 +6226,7 @@ class ClientController extends AdminController
}
}
- // ---------------------------------------------------------------------------------------------------
+ // ---------------- HR ACCESS CONTROL -----------------------------------------------------------------------------------
public function viewHrAccessData()
{
@@ -6493,8 +6572,585 @@ class ClientController extends AdminController
}
}
+ // ------------------- DEMO CLIENT FUNCTION --------------------------------------------------------------------------------
+ // public function wipeDemoClient()
+ // {
+ // // $this->myLogger->logme('error', "Wipe Demo Client function called");
+ // $this->myLogger->logme('error', "Wipe Demo Client function called"); // Red text
+ // $this->myLogger->logme('error', "Wipe Demo client Payload : " . json_encode($this->request->getPost() ?? []));
+ // $client_id = $this->request->getPost('client_id');
+
+ // if (empty($client_id)) {
+ // return $this->respond(['status' => false, 'message' => 'Client id required'], 404);
+ // }
+
+ // // 1. Client Model
+ // $client_data = $this->clientModel->where('id', $client_id)->where('is_active', 1)->first();
+ // $this->myLogger->logme('error', "Client data : " . json_encode($client_data ?? []));
+
+ // if (!empty($client_data)) {
+ // $is_deleted = $this->clientModel->where('id', $client_id)->delete();
+
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client record does not exist.");
+ // }
+ // } else {
+ // return $this->respond(['status' => false, 'message' => 'Client not found'], 404);
+ // }
+
+ // // 2. Client RM Model
+ // $client_rm_data = $this->clientRMModel->where('client_id', $client_id)->first();
+ // $this->myLogger->logme('error', "Client Relationship Manager data : " . json_encode($client_rm_data ?? []));
+
+ // if (!empty($client_rm_data)) {
+ // $is_deleted = $this->clientRMModel->where('client_id', $client_id)->delete();
+
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client Relationship Manager data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client Relationship Manager record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Relationship Manager data not found.");
+ // }
+
+ // // 3. Client KYC Docs Model
+ // $client_kyc_data = $this->clientKYCDocsModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client KYC Docs data : " . json_encode($client_kyc_data ?? []));
+
+ // if (!empty($client_kyc_data)) {
+ // $is_deleted = $this->clientKYCDocsModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client KYC Docs data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client KYC Docs record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client KYC Docs data not found.");
+ // }
+
+ // // 4. Client Branch Model
+ // $client_branch_data = $this->clientBranchModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client Branch data : " . json_encode($client_branch_data ?? []));
+
+ // $branch_ids = array_column($client_branch_data, 'id') ?? [];
+ // $this->myLogger->logme('error', "Client Branch id count : " . count($branch_ids ?? []));
+
+ // if (!empty($client_branch_data)) {
+
+ // $is_deleted = $this->clientBranchModel->where('client_id', $client_id)->delete();
+
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client Branch data removed successfully.");
+
+ // if(!empty($branch_ids)){
+
+ // $level_contact_data = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->findAll();
+ // $this->myLogger->logme('error', "Level Contact data : " . json_encode($level_contact_data ?? []));
+
+ // $is_deleted = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Level Contact data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Level Contact record does not exist. To delete");
+ // }
+
+ // }else{
+ // $this->myLogger->logme('error', "Level Contact data not found.");
+ // }
+
+ // } else {
+ // $this->myLogger->logme('error', "Client Branch record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Branch data not found.");
+ // }
+
+ // // 5. Client Policy Model
+ // $client_policy_data = $this->clientPolicyModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client Policy data : " . json_encode($client_policy_data ?? []));
+
+ // $policy_ids = array_column($client_policy_data, 'id') ?? [];
+ // $this->myLogger->logme('error', "Client Policy id count : " . count($policy_ids ?? []));
+
+ // if (!empty($client_policy_data)) {
+ // $is_deleted = $this->clientPolicyModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+
+ // $this->myLogger->logme('error', "Client Policy data removed successfully.");
+
+ // if(!empty($policy_ids)){
+
+ // $employee_policy_data = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->findAll();
+ // $this->myLogger->logme('error', "Employee Policy data count : " . count($employee_policy_data ?? []));
+
+ // $is_deleted = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Employee policy data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Employee policy record does not exist. To delete");
+ // }
+
+ // }else{
+ // $this->myLogger->logme('error', "Employee policy data not found.");
+ // }
+
+ // } else {
+ // $this->myLogger->logme('error', "Client Policy record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Policy data not found.");
+ // }
+
+ // // 6. Employee Model
+ // $employee_data = $this->employeeModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Employee data count : " . count($employee_data ?? []));
+
+ // if (!empty($employee_data)) {
+
+ // $is_deleted = $this->employeeModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Employee data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Employee record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Employee data not found.");
+ // }
+
+ // // 7. Client Deposit Model
+ // $client_deposit_data = $this->clientDepositModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client Deposit data : " . json_encode($client_deposit_data ?? []));
+
+ // if (!empty($client_deposit_data)) {
+ // $is_deleted = $this->clientDepositModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client Deposit data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client Deposit record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Deposit data not found.");
+ // }
+
+ // // 8. Policy Premium 1 Model
+ // $policy_premium1_data = $this->policyPremium1Model->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Policy Premium 1 data count : " . count($policy_premium1_data ?? []));
+
+ // if (!empty($policy_premium1_data)) {
+ // $is_deleted = $this->policyPremium1Model->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Policy Premium 1 data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 1 record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 1 data not found.");
+ // }
+
+ // // 9. Policy Premium 2 Model
+ // $policy_premium2_data = $this->policyPremium2Model->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Policy Premium 2 data count: " . count($policy_premium2_data ?? []));
+
+ // if (!empty($policy_premium2_data)) {
+ // $is_deleted = $this->policyPremium2Model->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Policy Premium 2 data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 2 record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 2 data not found.");
+ // }
+
+ // // 10. Notification Model
+ // $notification_data = $this->notificationModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Notification data : " . json_encode($notification_data ?? []));
+
+ // if (!empty($notification_data)) {
+ // $is_deleted = $this->notificationModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Notification data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Notification record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Notification data not found.");
+ // }
+
+ // // 11. CD Master Model
+ // $cd_master_data = $this->CDMasterModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "CD Master data : " . json_encode($cd_master_data ?? []));
+
+ // if (!empty($cd_master_data)) {
+ // $is_deleted = $this->CDMasterModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "CD Master data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "CD Master record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "CD Master data not found.");
+ // }
+
+ // // 12. Policy Transaction Model
+ // $policy_transaction_data = $this->policyTransactionModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Policy Transaction data : " . json_encode($policy_transaction_data ?? []));
+
+ // $pt_ids = array_column($policy_transaction_data, 'id') ?? [];
+ // $this->myLogger->logme('error', "Policy Transaction id count : " . count($pt_ids ?? []));
+
+ // if (!empty($policy_transaction_data)) {
+ // $is_deleted = $this->policyTransactionModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Policy Transaction data removed successfully.");
+
+ // if(!empty($pt_ids)){
+
+ // $pt_co_share_data = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->findAll();
+ // $this->myLogger->logme('error', "PT CO Share data : " . json_encode($pt_co_share_data ?? []));
+
+ // $is_deleted = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "PT CO Share data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "PT CO Share record does not exist. To delete");
+ // }
+
+ // }else{
+ // $this->myLogger->logme('error', "PT CO Share data not found.");
+ // }
+
+ // } else {
+ // $this->myLogger->logme('error', "Policy Transaction record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Policy Transaction data not found.");
+ // }
+
+ // $this->myLogger->logme('error', "Wipe Demo Client function closed");
+ // return $this->respond(['status' => true, 'message' => 'Demo client data wiped successfully'], 200);
+ // }
+
+ public function wipeDemoClient()
+ {
+ $this->myLogger->logme('error', "========================================");
+ $this->myLogger->logme('error', "WIPE DEMO CLIENT FUNCTION STARTED");
+ $this->myLogger->logme('error', "========================================");
+
+ $this->myLogger->logme('error', "Request Payload: " . json_encode($this->request->getPost() ?? []));
+ $client_id = $this->request->getPost('client_id');
+
+ if (empty($client_id)) {
+ $this->myLogger->logme('error', "ERROR: Client ID is required");
+ return $this->respond(['status' => false, 'message' => 'Client id required'], 404);
+ }
+
+ $this->myLogger->logme('error', "Client ID to wipe: " . $client_id);
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 1. CLIENT MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "1. PROCESSING CLIENT MODEL");
+ $client_data = $this->clientModel->where('id', $client_id)->where('is_active', 1)->first();
+ $this->myLogger->logme('error', " Found Client Data: " . json_encode($client_data ?? []));
+
+ if (!empty($client_data)) {
+ $is_deleted = $this->clientModel->where('id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete client record");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Client not found or inactive");
+ return $this->respond(['status' => false, 'message' => 'Client not found'], 404);
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 2. CLIENT RM MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "2. PROCESSING CLIENT RM MODEL");
+ $client_rm_data = $this->clientRMModel->where('client_id', $client_id)->first();
+ $this->myLogger->logme('error', " Found Client RM Data: " . json_encode($client_rm_data ?? []));
+
+ if (!empty($client_rm_data)) {
+ $is_deleted = $this->clientRMModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client RM data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client RM record");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client RM data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 3. CLIENT KYC DOCS MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "3. PROCESSING CLIENT KYC DOCS MODEL");
+ $client_kyc_data = $this->clientKYCDocsModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Client KYC Records: " . count($client_kyc_data ?? []));
+ $this->myLogger->logme('error', " Client KYC Data: " . json_encode($client_kyc_data ?? []));
+
+ if (!empty($client_kyc_data)) {
+ $is_deleted = $this->clientKYCDocsModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client KYC Docs data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client KYC Docs records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client KYC Docs data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 4. CLIENT BRANCH MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "4. PROCESSING CLIENT BRANCH MODEL");
+ $client_branch_data = $this->clientBranchModel->where('client_id', $client_id)->findAll();
+ $branch_ids = array_column($client_branch_data, 'id') ?? [];
+ $this->myLogger->logme('error', " Found Client Branch Records: " . count($client_branch_data ?? []));
+ $this->myLogger->logme('error', " Branch IDs: " . json_encode($branch_ids));
+ $this->myLogger->logme('error', " Client Branch Data: " . json_encode($client_branch_data ?? []));
+
+ if (!empty($client_branch_data)) {
+ $is_deleted = $this->clientBranchModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client Branch data removed successfully");
+
+ // Delete related Level Contact data
+ if (!empty($branch_ids)) {
+ $this->myLogger->logme('error', " 4a. PROCESSING RELATED LEVEL CONTACT DATA");
+ $level_contact_data = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->findAll();
+ $this->myLogger->logme('error', " Found Level Contact Records: " . count($level_contact_data ?? []));
+ $this->myLogger->logme('error', " Level Contact Data: " . json_encode($level_contact_data ?? []));
+
+ $is_deleted = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Level Contact data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Level Contact records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Branch IDs available for Level Contact deletion");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client Branch records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client Branch data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 5. CLIENT POLICY MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "5. PROCESSING CLIENT POLICY MODEL");
+ $client_policy_data = $this->clientPolicyModel->where('client_id', $client_id)->findAll();
+ $policy_ids = array_column($client_policy_data, 'id') ?? [];
+ $this->myLogger->logme('error', " Found Client Policy Records: " . count($client_policy_data ?? []));
+ $this->myLogger->logme('error', " Policy IDs: " . json_encode($policy_ids));
+ $this->myLogger->logme('error', " Client Policy Data: " . json_encode($client_policy_data ?? []));
+
+ if (!empty($client_policy_data)) {
+ $is_deleted = $this->clientPolicyModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client Policy data removed successfully");
+
+ // Delete related Employee Policy data
+ if (!empty($policy_ids)) {
+ $this->myLogger->logme('error', " 5a. PROCESSING RELATED EMPLOYEE POLICY DATA");
+ $employee_policy_data = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->findAll();
+ $this->myLogger->logme('error', " Found Employee Policy Records: " . count($employee_policy_data ?? []));
+
+ $is_deleted = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Employee Policy data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Employee Policy records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy IDs available for Employee Policy deletion");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client Policy records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client Policy data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 6. EMPLOYEE MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "6. PROCESSING EMPLOYEE MODEL");
+ $employee_data = $this->employeeModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Employee Records: " . count($employee_data ?? []));
+
+ if (!empty($employee_data)) {
+ $is_deleted = $this->employeeModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Employee data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Employee records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Employee data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 7. CLIENT DEPOSIT MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "7. PROCESSING CLIENT DEPOSIT MODEL");
+ $client_deposit_data = $this->clientDepositModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Client Deposit Records: " . count($client_deposit_data ?? []));
+ $this->myLogger->logme('error', " Client Deposit Data: " . json_encode($client_deposit_data ?? []));
+
+ if (!empty($client_deposit_data)) {
+ $is_deleted = $this->clientDepositModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client Deposit data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client Deposit records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client Deposit data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 8. POLICY PREMIUM 1 MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "8. PROCESSING POLICY PREMIUM 1 MODEL");
+ $policy_premium1_data = $this->policyPremium1Model->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Policy Premium 1 Records: " . count($policy_premium1_data ?? []));
+
+ if (!empty($policy_premium1_data)) {
+ $is_deleted = $this->policyPremium1Model->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Policy Premium 1 data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Policy Premium 1 records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Premium 1 data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 9. POLICY PREMIUM 2 MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "9. PROCESSING POLICY PREMIUM 2 MODEL");
+ $policy_premium2_data = $this->policyPremium2Model->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Policy Premium 2 Records: " . count($policy_premium2_data ?? []));
+
+ if (!empty($policy_premium2_data)) {
+ $is_deleted = $this->policyPremium2Model->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Policy Premium 2 data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Policy Premium 2 records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Premium 2 data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 10. NOTIFICATION MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "10. PROCESSING NOTIFICATION MODEL");
+ $notification_data = $this->notificationModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Notification Records: " . count($notification_data ?? []));
+ $this->myLogger->logme('error', " Notification Data: " . json_encode($notification_data ?? []));
+
+ if (!empty($notification_data)) {
+ $is_deleted = $this->notificationModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Notification data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Notification records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Notification data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 11. CD MASTER MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "11. PROCESSING CD MASTER MODEL");
+ $cd_master_data = $this->CDMasterModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found CD Master Records: " . count($cd_master_data ?? []));
+ $this->myLogger->logme('error', " CD Master Data: " . json_encode($cd_master_data ?? []));
+
+ if (!empty($cd_master_data)) {
+ $is_deleted = $this->CDMasterModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ CD Master data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete CD Master records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No CD Master data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 12. POLICY TRANSACTION MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "12. PROCESSING POLICY TRANSACTION MODEL");
+ $policy_transaction_data = $this->policyTransactionModel->where('client_id', $client_id)->findAll();
+ $pt_ids = array_column($policy_transaction_data, 'id') ?? [];
+ $this->myLogger->logme('error', " Found Policy Transaction Records: " . count($policy_transaction_data ?? []));
+ $this->myLogger->logme('error', " Policy Transaction IDs: " . json_encode($pt_ids));
+ $this->myLogger->logme('error', " Policy Transaction Data: " . json_encode($policy_transaction_data ?? []));
+
+ if (!empty($policy_transaction_data)) {
+ $is_deleted = $this->policyTransactionModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Policy Transaction data removed successfully");
+
+ // Delete related PT CO Share data
+ if (!empty($pt_ids)) {
+ $this->myLogger->logme('error', " 12a. PROCESSING RELATED PT CO SHARE DATA");
+ $pt_co_share_data = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->findAll();
+ $this->myLogger->logme('error', " Found PT CO Share Records: " . count($pt_co_share_data ?? []));
+ $this->myLogger->logme('error', " PT CO Share Data: " . json_encode($pt_co_share_data ?? []));
+
+ $is_deleted = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ PT CO Share data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete PT CO Share records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Transaction IDs available for PT CO Share deletion");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Policy Transaction records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Transaction data found");
+ }
+
+ $this->myLogger->logme('error', "========================================");
+ $this->myLogger->logme('error', "WIPE DEMO CLIENT FUNCTION COMPLETED");
+ $this->myLogger->logme('error', "Client ID: " . $client_id . " - Successfully processed");
+ $this->myLogger->logme('error', "========================================");
+
+ return $this->respond(['status' => true, 'message' => 'Demo client data wiped successfully'], 200);
+ }
}
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index 9d3eeecf..506b39a1 100755
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -36,13 +36,13 @@ use App\Models\PTCOShareDetailsModel;
use App\Controllers\Jobs;
use App\Controllers\JobWorker;
-
-
+use App\Models\PolicyTypeModel;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Exception as SpreadsheetReaderException;
use PhpParser\Node\Expr\Cast\Double;
+use Kint\Kint;
use function PHPUnit\Framework\returnSelf;
@@ -199,13 +199,21 @@ class EmpDataServiceController extends BaseController
$totals = round($totals, 2);
- if($export_data['insurer_or_tpa'] == 'insurer') //check CD amt related issue for only insurer, not tpa
+ //check CD amt insufficient only insurer, not tpa // DO NOT REMOVE THIS
+ if($export_data['insurer_or_tpa'] == 'insurer')
{
if (!empty($cash_balance)) {
if ((int) $cash_balance['balance'] < (int) $totals) {
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- return 0;
+ session()->set('cd_balance', false);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+ }else{
+ session()->set('cd_balance', true);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+
}
}
}
@@ -700,13 +708,21 @@ class EmpDataServiceController extends BaseController
// echo '';
// print_r($ids); die;
- if($export_data['insurer_or_tpa'] == 'insurer') //check CD amt related issue for only insurer, not tpa
+ //check CD amt insufficiend for only insurer, not tpa // DO NOT REMOVE THIS
+ if($export_data['insurer_or_tpa'] == 'insurer')
{
if (!empty($cash_balance)) {
if ((int) $cash_balance['balance'] < (int) $rounded_totals) {
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- return 0;
+ session()->set('cd_balance', false);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $rounded_totals);
+ }else{
+ session()->set('cd_balance', true);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $rounded_totals);
+
}
}
}
@@ -1003,22 +1019,29 @@ class EmpDataServiceController extends BaseController
$cash_balance['balance'] = $balance['opening_bal'];
}
+ // Calculate the total amount from the objects
+ $totals = 0;
+ foreach ($inceptionData as $item) {
+ $totals = $totals + $item->total;
+ }
-
- // Calculate the total amount from the objects
- $totals = 0;
- foreach ($inceptionData as $item) {
- $totals = $totals + $item->total;
- }
$totals = round($totals, 2);
- if($export_data['insurer_or_tpa'] != 'tpa')// check overal emp premium amt with cd balance only for insurer export, not tpa export
+
+ if($export_data['insurer_or_tpa'] != 'tpa')// check overal emp premium amt with cd balance only for insurer export, not tpa export
{
if (!empty($cash_balance)) {
if ((int) $cash_balance['balance'] < (int) $totals) {
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- return 0;
+ session()->set('cd_balance', false);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+ }else{
+ session()->set('cd_balance', true);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+
}
}
}
@@ -1359,6 +1382,8 @@ class EmpDataServiceController extends BaseController
$batch_code = $file['batch_code'];
$user_id = $file['created_by'];
+ $client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first();
+
$insurer_or_tpa = $file['insurer_or_tpa'];
if ($insurer_or_tpa == 'tpa') {
$id = 'tpa_id';
@@ -1516,38 +1541,42 @@ class EmpDataServiceController extends BaseController
//--- TPA ID Duplicate check start ---
- $current_tpa_id = $excel_data[$key][13];
+ // Duplicate checking for only GMC's and GPA
+ if(in_array($client_policy_data['policy_type_id'], [1,2,3,4,5])){
+ $current_tpa_id = $excel_data[$key][13];
- if (isset($tpa_id_all[$current_tpa_id])) {
+ if (isset($tpa_id_all[$current_tpa_id])) {
- // Add the current row to errors
- $errors[$key][] = [
- 'row' => $key,
- 'column' => 13,
- 'db_data' => "Duplicate TPA ID Found",
- 'excel_data' => $current_tpa_id
- ];
-
- // Add all existing rows with the same TPA ID to errors
- foreach ($tpa_id_all[$current_tpa_id] as $existing_row) {
- $errors[$existing_row][] = [
- 'row' => $existing_row,
+ // Add the current row to errors
+ $errors[$key][] = [
+ 'row' => $key,
'column' => 13,
'db_data' => "Duplicate TPA ID Found",
'excel_data' => $current_tpa_id
];
- }
+
+ // Add all existing rows with the same TPA ID to errors
+ foreach ($tpa_id_all[$current_tpa_id] as $existing_row) {
+ $errors[$existing_row][] = [
+ 'row' => $existing_row,
+ 'column' => 13,
+ 'db_data' => "Duplicate TPA ID Found",
+ 'excel_data' => $current_tpa_id
+ ];
+ }
- } else {
- if($current_tpa_id != "" && $current_tpa_id != null){
- $tpa_id_all[$current_tpa_id][] = $key;
- }
+ } else {
+ if($current_tpa_id != "" && $current_tpa_id != null){
+ $tpa_id_all[$current_tpa_id][] = $key;
+ }
+ }
}
//--- TPA ID Duplicate check end ---
- if ($insurer_or_tpa == 'tpa') {
+ if ($insurer_or_tpa == 'tpa' && in_array($client_policy_data['policy_type_id'], [1,2,3,4,5])) {
+ //verify the TPA ID is not null
if ($excel_data[$key][13] === null) {
$missing_id[$key][] = [
'row' => $key,
@@ -1557,6 +1586,8 @@ class EmpDataServiceController extends BaseController
];
}
} else if ($insurer_or_tpa == 'insurer') {
+
+ //verify the UHID or Risk ID is not null
if ($excel_data[$key][14] === null) {
$missing_id[$key][] = [
'row' => $key,
@@ -1699,7 +1730,7 @@ class EmpDataServiceController extends BaseController
];
}
- } else if ($insurer_or_tpa == 'insurer') {
+ } else if ($insurer_or_tpa == 'insurer' && in_array($client_policy_data['policy_type_id'], [1,2,3,4,5])) {
if ($emp_value['tpa_id'] != $excel_data[$key][13]) {
$errors[$key][] = [
@@ -1867,6 +1898,9 @@ class EmpDataServiceController extends BaseController
$emp_endorsement_table_data = [];
$enrollment_file_id = null;
$endorsement_id = null;
+ $no_of_insured = [];
+ $no_of_dependent = [];
+
$emp_count = count($excel_data);
$db = \Config\Database::connect();
@@ -1886,7 +1920,7 @@ class EmpDataServiceController extends BaseController
$totals = $totals + floatval($amount);
$query = $db->table('employee_polices');
- $query->select('employee_polices.id');
+ $query->select('employee_polices.id, employees.id as emp_id, employees.emp_code, employees.name as emp_name, employees.relationship');
$query->join('employees', 'employees.id = employee_polices.employee_id');
$query->where('employee_polices.client_policy_id', $client_policy_id);
$query->where('employees.client_id', $client_id);
@@ -1907,11 +1941,20 @@ class EmpDataServiceController extends BaseController
$query->limit(1);
$result = $query->get()->getRowArray();
+ // Kint::dump($result);
+
if (isset($result['id']) && $result['id'] !== null) {
$emp_policy_ids[] = $result['id']; //for cash deposite
$emp_details[] = array('id' => $result['id'], 'tpa_id' => $value[13], 'uhid' => $value[14]);
+ if (strtolower($result['relationship']) == 'self') {
+ $no_of_insured[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }else{
+ $no_of_dependent[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }
}
+
+
if(in_array($file['event_type'], ['missed_inception']) && isset($value[18])){
$endorsement_id = $value[18];
@@ -1973,7 +2016,7 @@ class EmpDataServiceController extends BaseController
}
- // dd($emp_endorsement_table_data, $enrollment_file_id);
+ // dd($emp_endorsement_table_data, $enrollment_file_id, $no_of_insured, $no_of_dependent);
//update the employee policy data (TPAID or UHID)
$return = $this->employeePolicyModel->bulkUpdate($emp_details);
@@ -1993,6 +2036,10 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'Inception Update TPA and UHID -- batch file status : {data}', ['data' => $status_val]);
$this->myLogger->logme('error', 'Inception Update TPA and UHID -- total amount for cash deposite : {data}', ['data' => $totals]);
+ //get the BASE PREMIUM and GST for BDS Entry
+ $base_bremium_and_gst = $this->getInceptionBasePremium($emp_policy_ids);
+ $this->myLogger->logme('error', 'Inception Base Premium and GST :'. json_encode($base_bremium_and_gst ?? []));
+
//update CD transaction entry if only insurer
if ($file['insurer_or_tpa'] == 'insurer') {
@@ -2035,6 +2082,10 @@ class EmpDataServiceController extends BaseController
'endorsement_no' => $endorsement_id ?? null,
'emp_count' => $emp_count ?? null,
'action_type' => $file['event_type'] ?? null,
+ 'no_of_insured' => count($no_of_insured ?? []) ?? null,
+ 'no_of_dependent' => count($no_of_dependent ?? []) ?? null,
+ 'base_premium' => $base_bremium_and_gst['base_premium'] ?? null,
+ 'gst' => $base_bremium_and_gst['gst'] ?? null,
]]);
// $this->cashDepositCalculationForInception($depositeData);
@@ -2977,6 +3028,8 @@ class EmpDataServiceController extends BaseController
$endorsement_id = '';
$enrollment_file_id = '';
$endorsement_details = [];
+ $no_of_insured = [];
+ $no_of_dependent = [];
$totals = 0;
foreach ($excel_data as $key => $value) {
@@ -2989,7 +3042,14 @@ class EmpDataServiceController extends BaseController
$result = $this->empEndorsementModel
- ->select('emp_endorsement.*, employees.id as emp_id, employee_polices.id as emp_policy_id')
+ ->select('
+ emp_endorsement.*,
+ employees.id as emp_id,
+ employees.name as emp_name,
+ employees.emp_code,
+ employees.relationship,
+ employee_polices.id as emp_policy_id
+ ')
->join('employee_polices', 'employee_polices.id = emp_endorsement.pk')
->join('employees', 'employees.emp_code = emp_endorsement.emp_code')
->where('employees.emp_code', $emp_code)
@@ -3015,6 +3075,11 @@ class EmpDataServiceController extends BaseController
$emp_policy_ids[] = array('id' => $result['emp_policy_id'], 'is_active' => 0);
$employeeIds[] = $result['emp_policy_id'];
$endorsement_details[] = array('id' => $result['id'], 'group_key' => $result['group_key'], 'endorsement_id' => $value[19], 'status' => 'complete');
+ if (strtolower($result['relationship']) == 'self') {
+ $no_of_insured[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }else{
+ $no_of_dependent[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }
}
$empData = $this->employeePolicyModel
@@ -3082,6 +3147,11 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Employee count : {data}', ['data' => $emp_count]);
$this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Batch File status : {data}', ['data' => $status_val]);
+ //get the BASE PREMIUM and GST for BDS Entry
+ $base_bremium_and_gst = $this->getInceptionBasePremium($employeeIds);
+ $this->myLogger->logme('error', 'SI Enhancement Base Premium and GST :'. json_encode($base_bremium_and_gst ?? []));
+
+
//call the cash deposite function
if ($file['insurer_or_tpa'] == 'insurer') {
@@ -3105,6 +3175,10 @@ class EmpDataServiceController extends BaseController
'endorsement_no' => $endorsement_id ?? null,
'emp_count' => $emp_count ?? null,
'action_type' => $file['event_type'] ?? null,
+ 'no_of_insured' => count($no_of_insured ?? []) ?? null,
+ 'no_of_dependent' => count($no_of_dependent ?? []) ?? null,
+ 'base_premium' => $base_bremium_and_gst['base_premium'] ?? null,
+ 'gst' => $base_bremium_and_gst['gst'] ?? null,
]]);
}
@@ -3493,6 +3567,8 @@ class EmpDataServiceController extends BaseController
$employee_policy_table_primaryKey = [];
$endorsement_id = '';
$enrollment_file_id = null; //files table primary key
+ $no_of_insured = [];
+ $no_of_dependent = [];
$totals = 0;
@@ -3526,6 +3602,12 @@ class EmpDataServiceController extends BaseController
$employee_policy_table_data[] = array('id' => $result['emp_policy_primarykey'], 'date_of_exit' => change_date_format($result['date_of_exit']), 'reason_for_exit' => $result['reason_for_exit'], 'claim_status' => $result['claim_status'], 'status' => $result['status']);
// $employees_table_data[] = array('id' => $result['employees_id'], 'emp_status' => $result['status']);
$emp_endorsement_table_data[] = array('id' => $result['emp_endorsement_primarykey'], 'group_key' => $result['group_key'], 'endorsement_id' => $value[15], 'status' => 'complete');
+
+ if (strtolower($result['relationship']) == 'self') {
+ $no_of_insured[] = ['emp_id' => $result['employees_primarykey'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }else{
+ $no_of_dependent[] = ['emp_id' => $result['employees_primarykey'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }
}
}
@@ -3575,6 +3657,9 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'Deletion Update Endorsement ID -- Employee count : {data}', ['data' => $emp_count]);
$this->myLogger->logme('error', 'Deletion Update Endorsement ID -- Batch File status : {data}', ['data' => $status_val]);
+ $base_bremium_and_gst = $this->getDeletionBasePremium($employee_policy_table_primaryKey, ['client_policy_id' => $client_policy_id]);
+ $this->myLogger->logme('error', 'Deletion Base Premium and GST :'. json_encode($base_bremium_and_gst ?? []));
+
//call the cash deposite function
if ($file['insurer_or_tpa'] == 'insurer') {
@@ -3598,6 +3683,10 @@ class EmpDataServiceController extends BaseController
'endorsement_no' => $endorsement_id ?? null,
'emp_count' => $emp_count ?? null,
'action_type' => $file['event_type'] ?? null,
+ 'no_of_insured' => count($no_of_insured ?? []) ?? null,
+ 'no_of_dependent' => count($no_of_dependent ?? []) ?? null,
+ 'base_premium' => $base_bremium_and_gst['base_premium'] ?? null,
+ 'gst' => $base_bremium_and_gst['gst'] ?? null,
]]);
}
@@ -4262,8 +4351,6 @@ class EmpDataServiceController extends BaseController
}
-
-
/**
* Below function retrieves the policy name associated with a given client policy ID.
*
@@ -4280,8 +4367,6 @@ class EmpDataServiceController extends BaseController
}
-
-
/**
* Below function converts row data into column data format for SI enhancement.
*
@@ -4838,8 +4923,8 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme("error", "Policy transaction inserted successfully: " . json_encode(['insert_id' => $insert_id]));
//do not remove this commented item
- // $coShareDetails = $this->ConstructPTShareData($policy_data, $insert_id);
- // $pt_co_share_id = $this->PTCOShareDetailsModel->insert($coShareDetails);
+ $coShareDetails = $this->ConstructPTShareData($policy_data, $insert_id, $params);
+ $pt_co_share_id = $this->PTCOShareDetailsModel->insert($coShareDetails);
// $this->myLogger->logme("error", "PT Co share data inserted successfully: " . json_encode(['pt_co_share_id' => $pt_co_share_id]));
@@ -4875,11 +4960,12 @@ class EmpDataServiceController extends BaseController
private function constructBDSData($policy_data, $lead_data, $params)
{
-
+
+ $this->myLogger->logme("error", "constructBDSData Params: " . json_encode(['policy_data' => $policy_data, 'lead_data' => $lead_data, 'params' => $params]));
$action_type_string = $params['action_type'];
- if(in_array($params['action_type'], ['dependent_addition', 'missed_inception'])){
+ if(in_array($params['action_type'], ['dependent_addition', 'missed_inception'])){
$action_type_string = "addition";
- }
+ }
$policyTransactionData = [
@@ -4900,9 +4986,9 @@ class EmpDataServiceController extends BaseController
'policy_end_date' => $policy_data['policy_end_date'] ?? null,
'data_received_date' => $policy_data['data_received_date'] ?? null,
'closure_date' => $policy_data['closure_date'] ?? null,
- 'emp_count' => $policy_data['emp_count'] ?? null,
- 'dependent_count' => $policy_data['dependent_count'] ?? null,
- 'revenue_type' => ($lead_data['lead_type'] == 1 ? "NA" : ($lead_data['lead_type'] == 2 ? "EA" : "EANR") ) ?? null,
+ 'emp_count' => $params['no_of_insured'] ?? null,
+ 'dependent_count' => $params['no_of_dependent'] ?? null,
+ 'revenue_type' => isset($lead_data['lead_type']) ?($lead_data['lead_type'] == 1 ? "NA" : ($lead_data['lead_type'] == 2 ? "EA" : "EANR") ) : null,
'co_share' => $policy_data['co_share'] ?? 0,
'pre_payable_by' => $policy_data['pre_payable_by'] ?? 1,
'renewal_date' => $policy_data['policy_end_date'] ?? null,
@@ -4910,8 +4996,10 @@ class EmpDataServiceController extends BaseController
'ct_type' => 1,
'is_cd_reduce_from_bds' => 0,
'client_type_id' => 0,
+ 'bro_payable_by' => 1,
- 'status' => "co_insurer_pending",
+ // 'status' => "co_insurer_pending",
+ 'status' => "completed",
'action_type' => $action_type_string ?? null,
'endorsement_no' => $params['endorsement_no'] ?? null,
@@ -4926,17 +5014,29 @@ class EmpDataServiceController extends BaseController
return $policyTransactionData;
}
- private function ConstructPTShareData($policy_data, $pt_id)
+ private function ConstructPTShareData($policy_data, $pt_id, $params)
{
+ $policyTypeModel = new PolicyTypeModel();
+ $policy_type_data = $policyTypeModel->where('is_active', 1)->where('id', $policy_data['policy_type_id'])->first();
+
$coShareData = [
'pt_id' => $pt_id,
'insurer_id' => $policy_data['insurer_id'],
'insurer_branch_id' => $policy_data['insurer_branch_id'],
+ 'bp_amt' => $params['base_premium'],
+ 'cop_amt' => $params['base_premium'],
+ 'bp_gst_amt' => $params['gst'],
+ 'bp_sgst' => 9,
+ 'bp_cgst' => 9,
'co_share_type' => 1,
+ 'co_share_per' => 100,
+ 'standerd_bp_per' => $policy_type_data['ebp'],
+ 'amount' => ($params['base_premium'] ?? 0) + ($params['gst'] ?? 0),
];
- $this->myLogger->logme("error", "Constructed PT co-share data: " . json_encode($coShareData));
+ $coShareData['exp_amt'] = (($params['base_premium'] ?? 0) * ($policy_type_data['ebp'] ?? 0)) / 100;
+ $this->myLogger->logme("error", "Constructed PT co-share data: " . json_encode($coShareData));
return $coShareData;
}
@@ -5085,8 +5185,117 @@ class EmpDataServiceController extends BaseController
}
+ // --------------------------------------------------------------------------------------------------------------------------------
+
+ public function getInceptionBasePremium($ids)
+ {
+ $this->myLogger->logme('error', 'getInceptionBasePremium called with the params : ' . json_encode($ids ?? ""));
+
+ // Validate input
+ if (empty($ids) || !is_array($ids)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+ // Sanitize IDs to ensure they are integers
+ $sanitizedIds = array_filter(array_map('intval', $ids), function ($id) {
+ return $id > 0;
+ });
+ if (empty($sanitizedIds)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+ // Use parameter binding for security
+ $placeholders = str_repeat('?,', count($sanitizedIds) - 1) . '?';
+ $amount = $this->employeePolicyModel->query("
+ SELECT SUM(employee_polices.rata_premimum) AS base_premium,
+ SUM(employee_polices.gst) AS gst
+ FROM employee_polices
+ JOIN employees ON employees.id = employee_polices.employee_id
+ WHERE employee_polices.id IN ($placeholders)
+ ", $sanitizedIds)->getRowArray();
+
+ $this->myLogger->logme('error', 'Get Last Executed Query : '.db_connect()->getLastQuery());
+
+ // Ensure we return proper numeric values
+ return [
+ 'base_premium' => round($amount['base_premium'] ?? 0, 2),
+ 'gst' => round($amount['gst'] ?? 0, 2)
+ ];
+ }
+
+ public function getDeletionBasePremium($ids, $params)
+ {
+ $this->myLogger->logme('error', 'getDeletionBasePremium called with the params : ' . json_encode(['emp_policy_id' => $ids ?? [], 'params' => $params ?? []] ?? ""));
+
+ // Validate input
+ if (empty($ids) || !is_array($ids)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+
+ // Sanitize IDs to ensure they are integers
+ $sanitizedIds = array_filter(array_map('intval', $ids), function ($id) {
+ return $id > 0;
+ });
+
+ if (empty($sanitizedIds)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+
+ // Validate client_policy_id parameter
+ if (empty($params['client_policy_id'])) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+
+ $get_insurer_id_from_client_policy = $this->clientPolicyModel
+ ->select('insurers.deletion_add_day')
+ ->join('insurers', 'client_policy.insurer_id = insurers.id')
+ ->where('client_policy.id', intval($params['client_policy_id']))
+ ->first();
+
+ $add_one_day = 0;
+ if (isset($get_insurer_id_from_client_policy['deletion_add_day']) && $get_insurer_id_from_client_policy['deletion_add_day'] == 1) {
+ $add_one_day = 1;
+ }
+
+ // Use parameter binding for security
+ $placeholders = str_repeat('?,', count($sanitizedIds) - 1) . '?';
+
+ // Prepare parameters array (ids repeated twice for both IN clauses)
+ $queryParams = array_merge($sanitizedIds, $sanitizedIds);
+
+ $amount = $this->employeePolicyModel->query("
+ SELECT
+ SUM(ROUND(
+ ((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + ?)) / 365),
+ 2
+ )) AS base_premium,
+ SUM(ROUND(
+ (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + ?)) / 365) * 0.18),
+ 2
+ )) AS gst
+ FROM
+ employee_polices
+ JOIN
+ employees ON employees.id = employee_polices.employee_id
+ JOIN
+ emp_endorsement ON emp_endorsement.pk = employee_polices.id
+ WHERE
+ employee_polices.id IN ($placeholders)
+ AND emp_endorsement.pk IN ($placeholders)
+ AND employee_polices.claim_status = 0
+ AND emp_endorsement.field_name = 'date_of_exit'
+ AND emp_endorsement.is_active = 1
+ AND emp_endorsement.actions = 'd'
+ AND emp_endorsement.status != 'truncated'
+ ", array_merge([$add_one_day, $add_one_day], $queryParams))->getRowArray();
+
+ $this->myLogger->logme('error', 'Get Last Executed Query : '.db_connect()->getLastQuery());
+ // Ensure we return proper numeric values with rounding
+ return [
+ 'base_premium' => round($amount['base_premium'] ?? 0, 2),
+ 'gst' => round($amount['gst'] ?? 0, 2)
+ ];
+ }
}
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 512122c6..dd80cd05 100755
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -302,9 +302,11 @@ class EmployeeController extends AdminController
//for TPA/insurer upload
$data['events'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement'];
//for inception upload
- $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement','enrollment' => 'Enrolment'];
-
- $data['import_or_export'] = ['import' => 'Import', 'export' => 'Export'];
+ $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement'];
+ // $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement','enrollment' => 'Enrolment'];
+
+ // $data['import_or_export'] = ['import' => 'Import', 'export' => 'Export'];
+ $data['import_or_export'] = ['import' => 'Upload', 'export' => 'Download'];
$data['insurer_or_tpa'] = ['insurer' => 'Insurer', 'tpa' => 'TPA'];
// $data['fileList'] = $this->fileModel
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index 938c9099..2cc47520 100755
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -1319,6 +1319,7 @@ class EmployeeServiceController extends AdminController
//get file name
$file_id = $params['file_id'];
$file = $this->fileModel->find($file_id);
+ // dd($file);
$file_name_with_path = WRITEPATH."/uploads/excel/".$file['file_name'];
@@ -1330,6 +1331,7 @@ class EmployeeServiceController extends AdminController
$excel_data = $sheet->rangeToArray('A1:' . $allowedHighestColumn['col_cell_name'] . $highestRowAndColumn['row']);
// $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
+ // dd($excel_data);
unset($excel_data[0]);
// kint::dump($excel_data);
$endorsement_data = [];
@@ -1379,10 +1381,14 @@ class EmployeeServiceController extends AdminController
->where('employee_polices.client_policy_id',$file['policy_id'])
->where('employees.emp_status !=','truncated')
->where('employees.is_active', 1)
+ ->where('employee_polices.status !=','truncated')
+ ->where('employee_polices.is_active', 1)
->first();
// $employee = $this->employeeModel->where('emp_code', $row[1])->where('name',$row[2])->where('client_id',$file['client_id'])->first();
// dd($employee);
+ // kint::dump($employee);
+
if(is_array($employee) && count($employee))
{
// dd($employee);
@@ -1406,7 +1412,13 @@ class EmployeeServiceController extends AdminController
if(!in_array($employee['id'],$endorsement_data))//make entry in endorsement firsttime only with checking that PK of emp exisintg in variable $endorsement_data
{
- $employee_policy = $this->employeePolicyModel->where('employee_id',$employee['id'])->where('client_policy_id',$file['policy_id'])->first();
+ $employee_policy = $this->employeePolicyModel
+ ->where('employee_id',$employee['id'])
+ ->where('client_policy_id',$file['policy_id'])
+ ->where('status !=','truncated')
+ ->where('is_active', 1)
+ ->first();
+
$data = ['emp_id' => $employee['id'],'name' => $employee['name'],'emp_status' => $employee['emp_status'],'emp_policy_id' => $employee_policy['id'],'emp_code' => $employee['emp_code'],'change_event' => $employee['change_event'],'date_of_exit' => $employee_policy['date_of_exit'],'reason_for_exit' => $employee_policy['reason_for_exit'],'status' => $employee_policy['status'],'claim_status' => $employee_policy['claim_status']];
$endorsement($data,$file,$row);
$endorsement_data[] = $employee['id'];
@@ -1447,7 +1459,7 @@ class EmployeeServiceController extends AdminController
//set success msg to pull notifications
$this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success'));
- return $endorsement_data;
+ return $endorsement_data;
}
diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php
index 178b5599..b1db3311 100644
--- a/app/Controllers/LeadsController.php
+++ b/app/Controllers/LeadsController.php
@@ -121,6 +121,7 @@ class LeadsController extends BaseController
];
$this->claim_type_for_gpa = [
+ 'nil' => 'Nil',
'accident_death' => 'Accident Death',
'permanent_total_disablement' => 'Permanent Total Disablement',
'permanent_partial_disablement' => 'Permanent Partial Disablement',
@@ -1823,6 +1824,72 @@ class LeadsController extends BaseController
$filename = "{$rfq_data['client_name']}_{$rfq_data['policy_type']}_{$string}_" . $policy_year . '_' . '.xlsx';
}
+ //claim history new sheet;
+ if (!empty($rfq_data['fin_years_claims'])) {
+
+ $claim_details = json_decode($rfq_data['fin_years_claims'], true) ?? [];
+
+ if (!empty($claim_details['finyear'])) {
+
+ // Get headers dynamically
+ $headers = array_map(function ($key) {
+ return ucwords(str_replace('_', ' ', $key));
+ }, array_keys($claim_details['finyear'][0]));
+
+ $newSheet = new Worksheet($spreadsheet, 'Claims Experience');
+ $spreadsheet->addSheet($newSheet);
+ $spreadsheet->setActiveSheetIndexByName('Claims Experience');
+ $sheet = $spreadsheet->getActiveSheet();
+
+ // Set headers
+ $sheet->fromArray($headers, NULL, 'A1');
+
+ // Apply background color and bold style to headers
+ $headerCellRange = 'A1:' . chr(64 + count($headers)) . '1'; // e.g., A1:G1
+
+ $sheet->getStyle($headerCellRange)->getFont()->setBold(true);
+ $sheet->getStyle($headerCellRange)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('ADD8E6');
+
+ // Add border to header
+ $sheet->getStyle($headerCellRange)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
+
+ // Fill data and apply borders
+ $row = 2;
+ foreach ($claim_details['finyear'] as $record) {
+ $col = 'A';
+ foreach ($record as $value) {
+ $label = ucwords(str_replace('_', ' ', ($value ?? "")));
+ $sheet->setCellValue($col . $row, $label);
+ $col++;
+ }
+
+ // Apply border to each data row
+ $sheet->getStyle('A' . $row . ':' . chr(64 + count($headers)) . $row)
+ ->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
+
+ $row++;
+ }
+ // Auto-size all columns based on header count
+ for ($i = 0; $i < count($headers); $i++) {
+ $colLetter = chr(65 + $i); // 'A', 'B', etc.
+ $sheet->getColumnDimension($colLetter)->setAutoSize(true);
+ }
+
+ // Enable wrap text for all cells
+ $maxColLetter = chr(64 + count($headers)); // Last column letter
+ $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setWrapText(true);
+
+ // Optional: center vertically for neatness
+ $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
+
+ // Optional: Make row height auto (helps when wrap text is on)
+ for ($i = 2; $i < $row; $i++) {
+ $sheet->getRowDimension($i)->setRowHeight(-1);
+ }
+
+ }
+ }
+
// Save to temporary location
$uploadFilePath = WRITEPATH . 'tmp/' . $filename;
$writer = new Xlsx($spreadsheet);
diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
index 3d9ee4f6..dddedd54 100644
--- a/app/Controllers/PolicyTransactionController.php
+++ b/app/Controllers/PolicyTransactionController.php
@@ -1209,6 +1209,10 @@ class PolicyTransactionController extends BaseController
$client_branch_id = $issue_type['client_branch_id'];
}
+ // if($data['bro_payable_by'] == ""){
+ // $data['bro_payable_by'] = $issue_type['bro_payable_by'];
+ // }
+
if (!$data['id']) {
$data += [
@@ -1224,7 +1228,7 @@ class PolicyTransactionController extends BaseController
'policy_end_date' => $issue_type['policy_end_date'] ?? null,
'revenue_type' => $issue_type['revenue_type'] ?? null,
'co_share' => $issue_type['co_share'] ?? 0,
- 'bro_payable_by' => $issue_type['bro_payable_by'] ?? 0,
+ 'bro_payable_by' => $data['bro_payable_by'] == "" ? $issue_type['bro_payable_by'] ?? 0 : $data['bro_payable_by'],
'installment' => $issue_type['installment'] ?? null,
'installment_data' => $issue_type['installment_data'] ?? null,
'location' => $issue_type['location'] ?? null,
@@ -2279,7 +2283,9 @@ class PolicyTransactionController extends BaseController
// if all good return true, otherwise return false with messssage
foreach ($excel_data as $excel_key => $excel_row) {
$is_row_empty = check_row_is_empty_or_null($excel_row);
+
if (!$is_row_empty) {
+
// $excel_row = ExcelSanitizeHelper::sanitizeArrayData($excel_row);
$is_source_found = 0;
// Kint::dump($excel_key,$excel_row[1],$excel_row[2]);
@@ -2297,8 +2303,17 @@ class PolicyTransactionController extends BaseController
// Kint::dump($excel_key,$policy_no,$endorsement_no,$policy_start_date,$policy_end_date);//die();
foreach ($source_data as $source_key => $source_row) {
$source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
- // Kint::dump($source_endorsement_no);
- if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name'])
+ // Kint::dump($source_row, $source_endorsement_no, $policy_no, $endorsement_no);
+
+ // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name'])
+ // {
+ // $is_source_found = 1;
+ // $line_items = $line_items + 1;
+ // unset($source_data[$source_key]);
+ // continue 2;
+ // }
+
+ if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no)
{
$is_source_found = 1;
$line_items = $line_items + 1;
@@ -2395,7 +2410,8 @@ class PolicyTransactionController extends BaseController
foreach ($source_data as $source_key => $source_row) {
// Kint::dump(change_date_format($excel_row[3],'d-m-Y','Y-m-d'));
$source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
- if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) {
+ // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) {
+ if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no) {
$is_source_found = 1;
//calculate percentage first
diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php
index 6a311ea1..5e119628 100644
--- a/app/Controllers/TicketController.php
+++ b/app/Controllers/TicketController.php
@@ -20,6 +20,7 @@ use App\Models\EmployeePolicyModel;
use App\Models\InsurerModel;
use App\Models\EmployeeModel;
use App\Models\TPAModel;
+use App\Models\ClaimFilesModel;
use DOMDocument;
use Psr\Log\LoggerInterface;
@@ -58,6 +59,7 @@ class TicketController extends BaseController
protected $extraFieldsDisplayForFrontend;
protected $insurerModel;
protected $TPAModel;
+ protected $claimFilesModel;
public function __construct()
{
@@ -341,6 +343,7 @@ class TicketController extends BaseController
$this->employeePolicyModel = new EmployeePolicyModel();
$this->insurerModel = new InsurerModel();
$this->TPAModel = new TPAModel();
+ $this->claimFilesModel = new ClaimFilesModel();
}
public function ticketList()
@@ -825,8 +828,12 @@ class TicketController extends BaseController
// dd($data);
$data['ticket_data'] = $ticket_data;
$data['acms'] = $this->employeeModel->getAcmUsingClientID($ticket_data['client_id']);
+
+ $raw_json = $this->ticketMasterModel->getPolicyTermsJson($ticket_id) ;
+
+ $decoded_top = json_decode($raw_json ?? "", true) ?? [];
+ $data['policy_terms'] = $this->recursive_json_decode($decoded_top);
- // dd($data);
return $this->loadLayout('ticket_edit_onbording', $data);
}
@@ -2135,7 +2142,117 @@ class TicketController extends BaseController
$date = \DateTime::createFromFormat($format, $value);
return $date && $date->format($format) === $value;
}
+
+ public function upload_url(){
+
+ $data = $this->request->getPost();
+
+ $insertArr = [];
+
+ foreach ($data['docs_name'] as $key => $eachData) {
+
+ if (!empty($eachData) ) {
+
+ $insertData = [
+ 'doc_name' => $data['docs_name'][$key]??'',
+ 'url' => $data['url'][$key]??'',
+ 'ticket_id'=> $data['ticket_id_url']??'',
+ 'created_by' => get_session_userid(),
+ 'is_active' => 1
+ ];
+
+ $insertArr[] = $insertData;
+
+ }
+ }
+
+ if(!empty($insertArr)){
+ // Insert into database
+ $insert = $this->claimFilesModel->insertBatch($insertArr);
+ }
+
+
+ if (isset($insert) && !empty($insert)) {
+ return $this->respond(['status' => true, 'message' => 'File uploaded successfully ']);
+ } else {
+ return $this->respond(['status' => false, 'message' => 'Failed to upload file ']);
+ }
+ }
+
+ public function getUrlDataByTicketId()
+ {
+ $ticket_id = $this->request->getPost('ticket_id');
+
+ if (!$ticket_id) {
+ return $this->response->setJSON([
+ 'status' => false,
+ 'message' => 'Ticket ID is required',
+ 'data' => []
+ ]);
+ }
+
+ $urlData = $this->claimFilesModel
+ ->where('ticket_id', $ticket_id)
+ ->where('is_active',1)
+ ->findAll();
+
+ return $this->response->setJSON([
+ 'status' => true,
+ 'data' => $urlData
+ ]);
+ }
+
+ public function remove_url()
+ {
+ $id = $this->request->getGet('id');
+
+ if (empty(trim($id))) {
+ return $this->response->setJSON([
+ 'status' => false,
+ 'message' => 'Invalid ID'
+ ]);
+ }
+
+ $updated = $this->claimFilesModel
+ ->where('id', $id)
+ ->set(['is_active' => 0])
+ ->update();
+
+ if ($updated) {
+ return $this->response->setJSON([
+ 'status' => true,
+ 'message' => 'URL successfully marked inactive.'
+ ]);
+ } else {
+ return $this->response->setJSON([
+ 'status' => false,
+ 'message' => 'Failed to update record.'
+ ]);
+ }
+ }
+
+ public function recursive_json_decode($input) {
+ if (is_string($input)) {
+ $decoded = json_decode($input, true);
+ if (json_last_error() === JSON_ERROR_NONE) {
+ return $this->recursive_json_decode($decoded); // continue decoding recursively
+ } else {
+ return $input;
+ }
+ }
+
+ if (is_array($input)) {
+ foreach ($input as $key => $value) {
+ $input[$key] = $this->recursive_json_decode($value);
+ }
+ }
+
+ return $input;
+ }
+
+
+
}
diff --git a/app/Helpers/excel_import_export_helper.php b/app/Helpers/excel_import_export_helper.php
index ad484ffe..9c72c973 100755
--- a/app/Helpers/excel_import_export_helper.php
+++ b/app/Helpers/excel_import_export_helper.php
@@ -664,12 +664,18 @@ if(!function_exists('generate_insurer_based_excel')){
$rowData = [];
foreach ($excel_header_array as $header) {
+
$fieldName = $header['db_column_name'];
+ $defaultValue = isset($header['default_value']) ? $header['default_value'] : null;
if ($fieldName === 'index') {
$value = $serialNumber;
} else {
- $value = $row->$fieldName ?? '';
+ if(empty($fieldName) && !empty($defaultValue)){
+ $value = $defaultValue;
+ }else{
+ $value = $row->$fieldName ?? '';
+ }
}
$rowData[] = $value;
diff --git a/app/Models/ClaimFilesModel.php b/app/Models/ClaimFilesModel.php
new file mode 100644
index 00000000..2a5ec138
--- /dev/null
+++ b/app/Models/ClaimFilesModel.php
@@ -0,0 +1,55 @@
+db->query("
SELECT DISTINCT
@@ -1251,6 +1251,9 @@ class EmployeePolicyModel extends Model
ee.id as emp_endorsement_primarykey,
ep.id as emp_policy_primarykey,
e.id as employees_primarykey,
+ e.relationship,
+ e.emp_code,
+ e.name as emp_name,
ee.file_id,
ee.group_key,
(
@@ -2098,4 +2101,6 @@ class EmployeePolicyModel extends Model
// var_dump($this->db->getLastQuery());
return $data;
}
+
+
}
\ No newline at end of file
diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php
index 5eabf684..ba9b2fcd 100644
--- a/app/Models/PolicyTransactionModel.php
+++ b/app/Models/PolicyTransactionModel.php
@@ -765,7 +765,12 @@ class PolicyTransactionModel extends Model
),
2
) AS unbilled_amt,
- created_user.first_name as user_name
+ created_user.first_name as user_name,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
@@ -986,7 +991,12 @@ class PolicyTransactionModel extends Model
pt_co_share_details.tp_amt AS tp,
clients.pan,
DATE_FORMAT(policy_transaction.created_at, '%d %b %Y %h:%i %p') AS created_at,
- user_profiles.first_name as user_name
+ user_profiles.first_name as user_name,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -1049,8 +1059,8 @@ class PolicyTransactionModel extends Model
// Optimize Query Execution
$builder->orderBy('policy_transaction.id', 'desc');
-
- return $builder->get()->getResultArray();
+ $data = $builder->get()->getResultArray();
+ return $data;
}
@@ -1065,7 +1075,12 @@ class PolicyTransactionModel extends Model
client_branch.branch_name as client_branch_name,
insurers.name AS insurer_name,
insurers.short_name AS insurer_short_name,
- policy_type.policy_type
+ policy_type.policy_type ,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
')
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'policy_transaction.client_id = clients.id', 'left')
@@ -1228,7 +1243,12 @@ class PolicyTransactionModel extends Model
AND co_share_stmt_details.is_active = 1
),
2
- ) AS variance_amt
+ ) AS variance_amt,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
@@ -1317,7 +1337,6 @@ class PolicyTransactionModel extends Model
'clients.client_name',
'insurers.name AS insurer_name',
'policy_type.policy_type',
- 'policy_transaction.policy_no',
'policy_transaction.endorsement_no',
"CASE
WHEN policy_transaction.action_type = 'inception' THEN 'I'
@@ -1327,7 +1346,12 @@ class PolicyTransactionModel extends Model
'pt_co_share_details.bp_amt',
'pt_co_share_details.tp_amt',
'pt_co_share_details.tep_amt',
- 'policy_transaction.status'
+ 'policy_transaction.status',
+ 'CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`'
])
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -1417,7 +1441,12 @@ class PolicyTransactionModel extends Model
policy_transaction.action_type AS action_type_full,
pt_co_share_details.exp_amt,
pt_co_share_details.variance,
- policy_transaction.status
+ policy_transaction.status,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -1490,7 +1519,6 @@ class PolicyTransactionModel extends Model
clients.client_name,
insurers.name AS insurer_name,
policy_type.policy_type,
- policy_transaction.policy_no,
policy_transaction.endorsement_no,
CASE
WHEN policy_transaction.action_type = 'inception' THEN 'I'
@@ -1525,7 +1553,12 @@ class PolicyTransactionModel extends Model
inv_payment_details.statement_id = insurer_statements.id
AND inv_payment_details.is_active = 1
),
- 2) AS outstanding_amount
+ 2) AS outstanding_amount,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
diff --git a/app/Models/TicketMasterModel.php b/app/Models/TicketMasterModel.php
index b85dad62..3a7c191a 100644
--- a/app/Models/TicketMasterModel.php
+++ b/app/Models/TicketMasterModel.php
@@ -953,4 +953,29 @@ class TicketMasterModel extends Model
'ticket_ids' => $ticketIdsString
];
}
+
+ public function getPolicyTermsJson($ticket_id)
+ {
+ $sql = " SELECT cp.policy_terms
+ FROM ticket_master tm
+ JOIN client_policy cp ON cp.id = tm.client_policy_id
+ WHERE tm.id = ?
+ AND tm.is_active = 1
+ AND cp.is_active = 1
+ ";
+
+ $binds = [$ticket_id];
+ $query = $this->db->query($sql, $binds);
+
+ if ($query && $query->getNumRows() > 0) {
+ $row = $query->getRowArray();
+ return json_encode(['policy_terms' => $row['policy_terms']]);
+ }
+
+ return json_encode(['policy_terms' => null]);
+ }
+
+
+
+
}
diff --git a/app/Views/UserList.php b/app/Views/UserList.php
index be654b8d..b7de1d73 100755
--- a/app/Views/UserList.php
+++ b/app/Views/UserList.php
@@ -1,4 +1,4 @@
- -->
+
+
+
@@ -96,7 +286,7 @@ table.dataTable tbody td {
-