diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 80babc57..f4eb5e87 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -271,6 +271,13 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("get_policy_type_for_base_policy/(:any)", "ClientController::getPolicyTypeForBasePolicy/$1"); $routes->get("get_client_details/(:any)", "ClientController::getClientDetails/$1"); $routes->get("featch_dashboard_data/(:any)", "DashboardController::featch_dashboard_data/$1"); + $routes->get("remove_rack_rate/(:any)", "ClientController::removeRackRate/$1"); + $routes->get("rename_rack_rate_tab/(:any)", "ClientController::renameRackRateTab/$1"); + $routes->post("create_excel_template", "MasterController::createExcelTemplate"); + $routes->get("get_insurer_by_export_templete", "MasterController::getInsurerByExportTemplete"); + $routes->get("copy_insurer_templete/(:any)", "MasterController::copyInsurerTemplete/$1"); + $routes->get("get_single_excel_template/(:any)", "MasterController::getSingleExcelTemplate/$1"); + $routes->get("dublicate_template/(:any)", "MasterController::duplicateTemplate/$1"); }); $routes->cli('cli/processjob', 'JobWorker::processJob'); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index b2a638f7..ceb81ef8 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -252,15 +252,25 @@ class ClientController extends AdminController public function removeClientBranch($id = null) { $this->myLogger->logme('error','Client Branch Remove function called'); - // $id = $this->request->getPost('PrimaryKey'); - // $data = $this->request->getPost(); - $data['updated_by'] = get_session_userid(); - $data['is_active'] = 0; - $update = $this->clientBranchModel->update($id,$data); - if($update){ - return $this->respond(['status' => true,'code' => 200], 200); + + $data = [ + 'updated_by' => get_session_userid(), + 'is_active' => 0 + ]; + + $config_count = $this->clientPolicyModel->where('client_branch_id', $id)->countAllResults(); + + if($config_count > 0){ + + $update = $this->clientBranchModel->where('id', $id)->set($data)->update(); + if($update){ + return $this->respond(['status' => true,'code' => 200, 'message' => 'Client branch removed successfully'], 200); + }else{ + return $this->respond(['status' => false,'code' => 404, 'message' => 'Failed to remove client branch'], 200); + } }else{ - return $this->respond(['status' => false,'code' => 404], 200); + + return $this->respond(['status' => false,'code' => 404, 'message' => 'The client branch configuration with policy cannot be deleted.'], 200); } } @@ -559,6 +569,8 @@ class ClientController extends AdminController } } + + public function createClientRelation() { @@ -647,6 +659,7 @@ class ClientController extends AdminController } } + public function createClientBranch() { @@ -658,7 +671,7 @@ class ClientController extends AdminController $data['sez'] = 1; } $data['created_by'] = get_session_userid(); - $insert = $this->clientBranchModel->insert($data); + $insert = $this->clientBranchModel->insert($data); if($insert){ for ($i = 0; $i < count($this->request->getPost('name')); $i++) { @@ -679,9 +692,18 @@ class ClientController extends AdminController if($insert){ $branchData = $this->clientBranchModel->where('client_id', $this->request->getPost('client_id'))->findAll(); $branchData['role'] = get_role_id(); - return $this->respond(['status' => true,'code' => 200,'data' => $branchData], 200); + return $this->respond([ + 'status' => true, + 'code' => 200, + 'data' => $branchData, + 'message' => 'Client branch created successfully', + ], 200); }else{ - return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); + return $this->respond([ + 'status' => false, + 'code' => 404, + 'message' => 'Failed to create client branch ', + ], 200); } } @@ -692,11 +714,57 @@ class ClientController extends AdminController $id = $this->request->getPost('branch_id_primarykey'); $client_id = $this->request->getPost('client_id'); $data = $this->request->getPost(); + $units = $this->request->getPost('units'); + + $emp_unit_count = 0; + $rr_unit_count = 0; + $rr_unit_count2 = 0; + $total_count = 0; + + $list_of_branch_units = $this->clientBranchModel->find($id); + $units = json_decode($list_of_branch_units['units']); + + if (!empty($units)) { + foreach ($units as $unit) { + $emp_unit_count += $this->employeeModel->where('unit', $unit)->countAllResults(); + $rr_unit_count += $this->policyPremium2Model->where('unit', $unit)->countAllResults(); + $rr_unit_count2 += $this->policyPremium1Model->where('unit', $unit)->countAllResults(); + } + + $total_count = $emp_unit_count + $rr_unit_count + $rr_unit_count2; + } + $uncommonValues = []; + + if ($total_count > 0) { + $units = (string) $this->request->getPost('units'); // Assuming 'units' is an array + + $list_of_branch_units = $this->clientBranchModel->find($id); + $branch_units = json_decode($list_of_branch_units['units'], true); + $units = json_decode($units); + + $uncommonValues = array_diff($branch_units, $units); + + if (count($uncommonValues) > 0) { + + $branchData = $this->clientBranchModel->where('client_id', $client_id)->findAll(); + + return $this->respond([ + 'status' => false, + 'code' => 404, + 'message' => "Deleted unit(s) in use. couldn't complete this operation.", + 'uncommonValues' => $uncommonValues, + 'data' => $branchData, + ], 200); + } + } + + if (!isset($data['sez'])) { $data['sez'] = 0; } elseif ($data['sez']) { $data['sez'] = 1; } + $data['updated_by'] = get_session_userid(); $insert = $this->clientBranchModel->update($id, $data); $this->myLogger->logme('error','Client branch EDITED by {data}', ['data' => get_session_userid()]); @@ -721,12 +789,25 @@ class ClientController extends AdminController if($insert){ $branchData = $this->clientBranchModel->where('client_id', $client_id)->findAll(); - return $this->respond(['status' => true,'code' => 200,'data' => $branchData], 200); + return $this->respond([ + 'status' => true, + 'code' => 200, + 'data' => $branchData, + 'emp_unit_count' => $emp_unit_count, + 'rr_unit_count' => $rr_unit_count, + 'list_of_branch_units' => $list_of_branch_units, + 'total_count' => $total_count, + 'uncommonValues' => $uncommonValues, + 'message' => 'Client branch updated successfully' + + ], 200); }else{ - return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); + return $this->respond(['status' => false,'code' => 404, 'message' => 'Failed to update client branch'], 200); } } + + public function createClientPolicy() { @@ -1019,19 +1100,29 @@ class ClientController extends AdminController $client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first(); $client_id = $client_policy_data['client_id']; } + $branch_units = $this->getBranchUnitsByBranchId($record['client_branch_id']); $branch_units = json_decode($branch_units); - $policy_grid_id = $this->request->getPost('policy_grid_id'); $rack_rate_name = $this->request->getPost('rack_rate_name'); $relation_data = [ - 'self' => $this->request->getPost('self'), - 'spouse' => $this->request->getPost('spouse'), - 'childrens' => $this->request->getPost('childrens'), - 'parents' => $this->request->getPost('parents'), - 'parents-in-law'=> $this->request->getPost('parents-in-law'), + 'self' => $this->request->getPost('self') ?? 'NA', + 'spouse' => $this->request->getPost('spouse') ?? 'NA', + 'childrens' => $this->request->getPost('childrens') ?? 'NA', + 'parents' => $this->request->getPost('parents') ?? 'NA', + 'parents-in-law'=> $this->request->getPost('parents-in-law') ?? 'NA', + ]; + + $relation_data_for_form_submit_check = [ + $rack_rate_name => [ + 'self' => $this->request->getPost('self') ?? 'NA', + 'spouse' => $this->request->getPost('spouse') ?? 'NA', + 'childrens' => $this->request->getPost('childrens') ?? 'NA', + 'parents' => $this->request->getPost('parents') ?? 'NA', + 'parents-in-law'=> $this->request->getPost('parents-in-law') ?? 'NA', + ] ]; if ($policy_grid_id == 1 || $policy_grid_id == 2 ) { @@ -1046,7 +1137,7 @@ class ClientController extends AdminController // Convert to JSON $jsonDataForRelation = json_encode($relation_data); - + $json_data_relation_data_for_form_submit_check = json_encode($relation_data_for_form_submit_check); $si_or_bp = $this->request->getPost('si_or_bp'); $basic_multiplier = str_replace(',', '', $this->request->getPost('basic_multiplier')); @@ -1077,7 +1168,7 @@ class ClientController extends AdminController $premium = str_replace(',', '', $this->request->getPost('gpa_sum_premium[]')); $sum_insure = str_replace(',', '', $this->request->getPost('gpa_sum_si[]')); $multiplier = $this->request->getPost('gpa_sum_multiplier'); - $unit = $this->request->getPost('gpa_unit[]'); + $unit = $this->request->getPost('gpa_unit_1[]'); for ($i = 0; $i < count($premium); $i++) { $data['si'] = $sum_insure[$i]; @@ -1099,7 +1190,7 @@ class ClientController extends AdminController $sum_insure = str_replace(',', '', $this->request->getPost('gpa_sum_si2[]')); $multiplier = $this->request->getPost('gpa_sum_multiplier2'); $grade = $this->request->getPost('gpa_band[]'); - $unit = $this->request->getPost('gpa_unit[]'); + $unit = $this->request->getPost('gpa_unit_3[]'); for ($i = 0; $i < count($premium); $i++) { @@ -1156,20 +1247,27 @@ class ClientController extends AdminController $data = $this->request->getPost(); $insert = true; - } else if ($policy_grid_id == '2') { - $data['premium'] = str_replace(',', '', $this->request->getPost('gpa_premium')); - $data['si'] = str_replace(',', '', $this->request->getPost('gpa_si')); - $unit = $this->request->getPost('gpa_unit'); - if (empty($unit)) { - $data['unit'] = $branch_units[0]; - } else { - $data['unit'] = $unit; - } - $policyPremium = $this->policyPremium1Model->insert($data); + } else if ($policy_grid_id == '2') { + + $premium = $this->request->getPost('gpa_premium29[]'); + $sum_insure = $this->request->getPost('gpa_si29[]'); + $unit = $this->request->getPost('gpa_unit29[]'); + + for ($i = 0; $i < count($premium); $i++) { + $data['premium'] = str_replace(',', '', $premium[$i]); + $data['si'] = str_replace(',', '', $sum_insure[$i]); + if (empty($unit) || !isset($unit[$i]) || empty($unit[$i])) { + $data['unit'] = $branch_units[0]; + } else { + $data['unit'] = $unit[$i]; + } + $dataa = $this->policyPremium1Model->insert($data); + } $data = $this->request->getPost(); $insert = true; + } else if ($policy_grid_id == '3') { $premium = $this->request->getPost('3_premium[]'); @@ -1215,17 +1313,19 @@ class ClientController extends AdminController } else if ($policy_grid_id == '5') { + $premium = $this->request->getPost('5_premium[]'); $sum_insure = $this->request->getPost('5_si[]'); $age_from = $this->request->getPost('5_age_from[]'); $age_to = $this->request->getPost('5_age_to[]'); $unit = $this->request->getPost('5_unit[]'); + for ($i = 0; $i < count($premium); $i++) { $data['premium'] = str_replace(',', '', $premium[$i]); $data['si'] = str_replace(',', '', $sum_insure[$i]); $data['age_from'] = $age_from[$i]; $data['age_to'] = $age_to[$i]; - if (empty($unit) || !isset($unit[$i]) || empty($unit[$i])) { + if (empty($unit) || !isset($unit[$i]) || empty($unit[$i] || $unit[$i] == 'undefined')) { $data['unit'] = $branch_units[0]; } else { $data['unit'] = $unit[$i]; @@ -1233,8 +1333,10 @@ class ClientController extends AdminController $dataa = $this->policyPremium2Model->insert($data); } + $data = $this->request->getPost(); $insert = true; + } else if ($policy_grid_id == '6') { $premium = $this->request->getPost('6_premium[]'); @@ -1304,27 +1406,24 @@ class ClientController extends AdminController $insert = true; } else if ($policy_grid_id == '9') { - $data['premium'] = str_replace(',', '', $this->request->getPost('gpa_premium')); - $data['si'] = str_replace(',', '', $this->request->getPost('gpa_si')); - $unit = $this->request->getPost('gpa_unit'); - if (empty($unit)) { - $data['unit'] = $branch_units[0]; - } else { - $data['unit'] = $unit; + $premium = $this->request->getPost('gpa_premium29[]'); + $sum_insure = $this->request->getPost('gpa_si29[]'); + $unit = $this->request->getPost('gpa_unit29[]'); + + for ($i = 0; $i < count($premium); $i++) { + $data['premium'] = str_replace(',', '', $premium[$i]); + $data['si'] = str_replace(',', '', $sum_insure[$i]); + if (empty($unit) || !isset($unit[$i]) || empty($unit[$i])) { + $data['unit'] = $branch_units[0]; + } else { + $data['unit'] = $unit[$i]; + } + $dataa = $this->policyPremium2Model->insert($data); } - $policyPremium = $this->policyPremium2Model->insert($data); - // $premium = $this->request->getPost('9_premium[]'); - // $sum_insure = $this->request->getPost('9_si[]'); - // $grade = $this->request->getPost('9_grade[]'); - // for ($i = 0; $i < count($premium); $i++) { - // $data['premium'] = str_replace(',', '', $premium[$i]); - // $data['si'] = str_replace(',', '', $sum_insure[$i]); - // // $data['grade'] = $grade[$i]; - // $dataa = $this->policyPremium2Model->insert($data); - // } $data = $this->request->getPost(); $insert = true; + } else if ($policy_grid_id == '10') { $premium = $this->request->getPost('10_premium[]'); $sum_insure = $this->request->getPost('10_si[]'); @@ -1354,7 +1453,7 @@ class ClientController extends AdminController $sum_insure = $this->request->getPost('11_si[]'); $grade = $this->request->getPost('11_grade[]'); $max_sum_insure = $this->request->getPost('11_max_si[]'); - $unit = $this->request->getPost('11_max_si[]'); + $unit = $this->request->getPost('11_unit[]'); for ($i = 0; $i < count($premium); $i++) { $data['premium'] = str_replace(',', '', $premium[$i]); @@ -1420,7 +1519,7 @@ class ClientController extends AdminController } if ($insert) { - return $this->respond(['status' => true, 'code' => 200, 'data' => $data, 'rack_rate_json'=>$jsonDataForRelation,], 200); + return $this->respond(['status' => true, 'code' => 200, 'data' => $data, 'rack_rate_json'=>$json_data_relation_data_for_form_submit_check,], 200); } else { return $this->respond(['status' => false, 'code' => 404, 'data' => $data, 'message' => 'no data found'], 200); } @@ -1556,6 +1655,7 @@ class ClientController extends AdminController } $results = $this->policyGridModel->like('policy_type', $search_term)->findAll(); + $jsonArray = []; if ($search_term === 'GPA' || $policy_type_id == 6 || $policy_type_id == 7) { @@ -1563,6 +1663,19 @@ class ClientController extends AdminController } else if ($search_term === 'GMC') { $premiumData = $this->policyPremium2Model->where(['client_id' => $record['client_id'], 'client_policy_id' => $client_policy_id, 'is_active' => 1])->findAll(); + + $rackRateJson = $this->policyPremium2Model + ->where('client_policy_id', $client_policy_id) + ->where('is_active', 1) + ->groupBy('rack_rate_name') + ->orderBy('id') + ->findAll(); + + foreach ($rackRateJson as $value) { + $jsonArray[$value['rack_rate_name']] = json_decode($value['additional_relationship']); + } + + } else { $premiumData = ""; @@ -1649,7 +1762,8 @@ class ClientController extends AdminController 'self' => $self, 'client_policy_id' => $client_policy_id, 'terms_si_amount_array' => $terms_si_amount_array, - 'branch_units' => $branch_units + 'branch_units' => $branch_units, + 'jsonArray' => $jsonArray, ], 200); } else if ($search_term === 'GPA' || $policy_type_id == 6 || $policy_type_id == 7) { @@ -1664,7 +1778,8 @@ class ClientController extends AdminController 'self' => $self, 'client_policy_id' => $client_policy_id, 'terms_si_amount_array' => $terms_si_amount_array, - 'branch_units' => $branch_units + 'branch_units' => $branch_units, + 'jsonArray' => $jsonArray, ], 200); } else { @@ -1678,7 +1793,8 @@ class ClientController extends AdminController 'self' => $self, 'client_policy_id' => $client_policy_id, 'terms_si_amount_array' => $terms_si_amount_array, - 'branch_units' => $branch_units + 'branch_units' => $branch_units, + 'jsonArray' => $jsonArray, ], 200); } } @@ -2043,7 +2159,7 @@ class ClientController extends AdminController $message = 'Enrolment Closed Successfully'; } - $data = $this->policesModel->getPolicyPremium($record['policy_id']); + $data = $this->policesModel->getPolicyPremium($client_policy_id); $pattern = '/gmc/i'; $subject = $data[0]->policy_type; if (preg_match($pattern, $subject)) { @@ -2075,8 +2191,8 @@ class ClientController extends AdminController } // Check if 'family_floater' key exists and has a value - if (isset($termsData->family_floater) && $termsData->family_floater == null) { - return $this->respond(['status' => false, 'code' => 200, 'message' => 'The Policy terms Family Floater field is empty'], 200); + if (isset($termsData->family_floater) && $termsData->family_floater === null) { + return $this->respond(['status' => false, 'code' => 200, 'message' => 'The Policy terms Family Floater field is empty', 'termsData' => $termsData , 'family_floater' => $termsData->family_floater], 200); } // Check if 'family_floaters' key exists and has a value @@ -2665,9 +2781,8 @@ class ClientController extends AdminController public function getClientDetails($client_id) { - - $result = $this->clientModel->where('id', $client_id)->first(); - return $this->respond(['status' => true, 'data' => $result], 200); + $result = $this->clientModel->where('id', $client_id)->first(); + return $this->respond(['status' => true, 'data' => $result], 200); } public function getBranchUnitsByBranchId($branch_id) @@ -2827,7 +2942,6 @@ class ClientController extends AdminController } - public function removeRackRate($rack_rate_name = null, $client_policy_id = null) { $this->myLogger->logme('error', 'Rack Rate Remove function called'); @@ -2852,7 +2966,7 @@ class ClientController extends AdminController if ($update) { return $this->respond(['status' => true, 'code' => 200, 'message' => 'Rack Rate removed successfully', 'rr_count' => $rackRateData], 200); } else { - return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove policy', 'rr_count' => $rackRateData], 200); + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove Rack Rate', 'rr_count' => $rackRateData], 200); } }else{ @@ -2861,4 +2975,38 @@ class ClientController extends AdminController } + public function renameRackRateTab($rack_rate_name = null, $new_rack_rate_name = null, $client_policy_id = null) + { + $this->myLogger->logme('error', 'Rack Rate renameRackRateTab function called'); + + $data = [ + 'updated_by' => get_session_userid(), + 'rack_rate_name' => $new_rack_rate_name + ]; + + $rackRateData = $this->policyPremium2Model + ->where('rack_rate_name', $rack_rate_name) + ->where('client_policy_id', $client_policy_id) + ->where('is_active',1) + ->countAllResults(); + + if($rackRateData > 0){ + $update = $this->policyPremium2Model + ->where('rack_rate_name', $rack_rate_name) + ->where('client_policy_id', $client_policy_id) + ->set($data)->update(); + + $affectedRows = $this->policyPremium2Model->affectedRows(); + + if ($update) { + return $this->respond(['status' => true, 'code' => 200, 'message' => 'Rack Rate renamed successfully', 'rr_count' => $affectedRows], 200); + } else { + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to rename Rack Rate', 'rr_count' => $affectedRows], 200); + } + }else{ + + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Rack Rate not available', 'rr_count' => $rackRateData, 'rack_rate_name' => $rack_rate_name, 'client_policy_id' => $client_policy_id, 'new_rack_rate_name' => $new_rack_rate_name, ], 200); + } + } + } \ No newline at end of file diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 6e69647f..fbf60d4e 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -943,7 +943,7 @@ class EmpDataServiceController extends BaseController ->select('insurer_excel_export_template.jsoncolumns') ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id') ->where('client_policy.id', $export_data['client_policy_id']) - ->where('insurer_excel_export_template.event_name', 'inception') + ->where('insurer_excel_export_template.event_name', 'all') ->where('insurer_excel_export_template.type_name', $export_data['actions']) ->first(); diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index b0eb77de..bff8c812 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -103,6 +103,8 @@ class EmployeeController extends AdminController $data['getData'] = $filterData; } + // dd( $data['getData']); + // dd($this->request->getGet()); $this->myLogger->logme('error', 'list called'); $this->loadLayout('employee_list', $data); @@ -252,6 +254,7 @@ class EmployeeController extends AdminController return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => 'file upload success'], 200); } + $data['page_name'] = 'View Inception'; //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']; @@ -413,7 +416,6 @@ class EmployeeController extends AdminController $event_type = $this->request->getPost('event_type'); } - $this->myLogger->logme('error', 'Import Export -- Function called'); $empDataServiceController = new EmpDataServiceController(); @@ -532,7 +534,6 @@ class EmployeeController extends AdminController $batch_data['event_type'] = $array; $return = $empDataServiceController->generateExcelForAllEventType($batch_data); - if($return === 6){ session()->setFlashdata('error', "The Insurer does not have an Excel export template format."); @@ -547,6 +548,7 @@ class EmployeeController extends AdminController } } + } else if ($actions == 'import') { $batch_data['file'] = $this->request->getFile('import_file_data'); diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php index 0fa4f33b..7e0144fd 100644 --- a/app/Controllers/MasterController.php +++ b/app/Controllers/MasterController.php @@ -160,8 +160,56 @@ class MasterController extends AdminController $editData['policy_type'] = $this->policyTypeModel->whereIn('id', [1,2,6,7])->findAll(); $editData['events'] = ['inception' => 'Inception', 'addition' => 'Addition', 'dependent_addition' => 'Dependent Addition', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement', 'all' => 'All']; $editData['action'] = ['import' => 'Import', 'export' => 'Export']; - $editData['db_column_name'] = ['Employee Name' => 'emp_name', 'Employee ID' => 'emp_code']; + $editData['db_column_name'] = [ + 'Employee Name' => 'emp_name', + 'Employee ID' => 'emp_code', + 'Date of Birth' => 'emp_dob', + 'Gender' => 'emp_gender', + 'Change Event' => 'change_event', + 'Relationship' => 'emp_relationship', + 'Relationship Code' => 'emp_relationship_code', + 'Event Type' => 'event_type_data', + 'Date of Joining' => 'emp_doj', + 'Mobile' => 'emp_mobile', + 'Corporate Email' => 'emp_email_c', + 'Personal Email' => 'emp_email_p', + 'Grade' => 'emp_grade', + 'Designation' => 'emp_designation', + 'Basic Pay' => 'emp_basic_pay', + 'Age' => 'emp_age', + 'Employee Type' => 'emp_type', + 'Primary Key' => 'primaryKey', + 'TPA ID' => 'tpa_id', + 'UHID' => 'uhid', + 'Pre-existing Alignments' => 'pre_existing_alignments', + 'Basic Cover SI' => 'basic_cover_si', + 'Date of Coverage' => 'date_coverage', + 'Policy End Date' => 'policy_end_date', + 'Number of Days' => 'no_of_days', + 'Premium' => 'premium', + 'Pro Rata Premium' => 'pro_rata_premium', + 'GST' => 'gst', + 'Total' => 'total', + 'Policy ID' => 'emp_policy_id', + 'SEZ' => 'sez', + 'Endorsement ID' => 'endorsement_id', + 'Old Value' => 'old_value', + 'New Value' => 'new_value', + 'Field Name' => 'field_name', + 'Remarks' => 'remarks', + 'Actions' => 'actions', + 'Date of Exit' => 'dateofexit', + 'Reason for Exit' => 'reasonforexit', + 'Status' => 'status', + 'Old Basic Cover SI' => 'old_basic_cover_si', + 'Old SI Premium' => 'old_si_premium', + 'New Basic Cover SI' => 'new_basic_cover_si', + 'New SI Premium' => 'new_si_premium', + 'Date of Coverage' => 'date_of_coverage', + + ]; + @@ -356,6 +404,8 @@ class MasterController extends AdminController $insurer_data = $this->insurerModel ->select('insurers.name as insurer_name, insurers.id, insurers.is_multi_event') ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = insurers.id') + ->where('insurer_excel_export_template.is_active', 1) + ->where('insurers.is_active', 1) ->groupBy('insurers.id') ->findAll(); @@ -364,8 +414,8 @@ class MasterController extends AdminController public function copyInsurerTemplete($existing_insurer_id, $copy_insurer_id) { - $insurer_templete_data = $this->insurerTemplateModel->where('insurer_id', $existing_insurer_id)->findAll(); - $existing_insurer_templete_data = $this->insurerTemplateModel->where('insurer_id', $copy_insurer_id)->delete(); + $insurer_templete_data = $this->insurerTemplateModel->where('insurer_id', $existing_insurer_id)->where('is_active', 1)->findAll(); + $existing_insurer_templete_data = $this->insurerTemplateModel->where('insurer_id', $copy_insurer_id)->set('is_active', 0)->update(); $data_to_insert = []; foreach ($insurer_templete_data as $value) { @@ -381,12 +431,31 @@ class MasterController extends AdminController } $insert_result = $this->insurerTemplateModel->insertBatch($data_to_insert); + if($insert_result){ return $this->respond(['status' => true, 'message' => 'Template added successfully', $insurer_templete_data]); }else{ - return $this->respond(['status' => true, 'message' => 'Failed to add template', $insurer_templete_data]); + return $this->respond(['status' => false, 'message' => 'Failed to add template', $insurer_templete_data]); } } + + public function getSingleExcelTemplate($id = null) + { + $insurer_templete_data = $this->insurerTemplateModel + ->where('id', $id) + ->where('is_active', 1) + ->first(); + + if($insurer_templete_data){ + + return $this->respond(['status' => true, 'code' => 200, 'data' => $insurer_templete_data, 'message' => 'data found'], 200); + + }else{ + + return $this->respond(['status' => false, 'code' => 404, 'message' => 'no data found'], 200); + } + + } // Insurer Ends @@ -1113,7 +1182,8 @@ class MasterController extends AdminController //start CD Master list public function CDMasterList() - { + { + $data['page_name'] = 'CD Master List'; $data['CD_Master_Data'] = $this->CDMasterModel->getCDMasterList(); $data['insurers'] = $this->insurerModel->where('is_active', 1)->findAll(); $data['clients'] = $this->clientModel->where('is_active', 1)->findAll(); @@ -1265,23 +1335,99 @@ class MasterController extends AdminController + //excel export template public function createExcelTemplate() - { + { + // return $this->respond($this->request->getPost()); + $template_id = $this->request->getPost('template_id'); + $data = [ 'insurer_id' => $this->request->getPost('insurer_id'), 'policy_type_id' => $this->request->getPost('policy_type'), 'event_name' => $this->request->getPost('event'), - 'type_name' => $this->request->getPost('import_or_export'), + 'type_name' => 'export', 'jsoncolumns' => $this->request->getPost('json_data'), + 'is_active' => 1, + 'created_by' => get_session_userid(), ]; - $insert = $this->insurerTemplateModel->insert($data); + if($template_id){ + + $update = $this->insurerTemplateModel->where('id', $template_id)->set($data)->update(); + + if($update){ + return $this->respond(['status' => true, 'message' => 'Template updated successfully', $data]); + }else{ + return $this->respond(['status' => true, 'message' => 'Failed to update template', $data]); + } - if($insert){ - return $this->respond(['status' => true, 'message' => 'Template created successfully', $data]); }else{ - return $this->respond(['status' => true, 'message' => 'Failed to create template', $data]); + + $insert = $this->insurerTemplateModel->insert($data); + + if($insert){ + return $this->respond(['status' => true, 'message' => 'Template created successfully', $data]); + }else{ + return $this->respond(['status' => true, 'message' => 'Failed to create template', $data]); + } } + + } + + public function duplicateTemplate($template_id, $event_name) + { + // Fetch the template data based on the provided ID and ensure it is active + $insurer_template_data = $this->insurerTemplateModel->where('id', $template_id) + ->where('is_active', 1) + ->first(); + + + if ($insurer_template_data) { + + // Check if the event name matches the existing template's event name + if ($insurer_template_data['event_name'] == $event_name) { + return $this->respond([ + 'status' => false, + 'message' => 'Template with the same event already exists.', + 'data' => $insurer_template_data + ]); + } + + // Prepare data for insertion as a duplicate + $data_to_insert = [ + "insurer_id" => $insurer_template_data['insurer_id'], + "policy_type_id" => $insurer_template_data['policy_type_id'], + "event_name" => $event_name, + "type_name" => $insurer_template_data['type_name'], + "jsoncolumns" => $insurer_template_data['jsoncolumns'], + "created_by" => get_session_user(), + "is_active" => 1, + ]; + + // Insert the duplicate template data + $insert_result = $this->insurerTemplateModel->insert($data_to_insert); + + if ($insert_result) { + return $this->respond([ + 'status' => true, + 'message' => 'Template duplicated successfully.', + 'data' => $insurer_template_data + ]); + } else { + return $this->respond([ + 'status' => false, + 'message' => 'Failed to duplicate template.', + 'data' => $insurer_template_data + ]); + } + } else { + // No matching active template found + return $this->respond([ + 'status' => false, + 'message' => 'No active template data found.', + 'data' => null + ]); + } } } \ No newline at end of file diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php index f654dc40..d3bd04aa 100644 --- a/app/Controllers/UserController.php +++ b/app/Controllers/UserController.php @@ -118,6 +118,9 @@ class UserController extends AdminController }else{ $id = $this->request->getPost('PrimaryKey'); $userData = $this->request->getPost(); + unset($userData['csrf_test_name']); + unset($userData['PrimaryKey']); + // unset($userData['first_name']); // Update data in the 'users' table based on the $id $userData['updated_by'] = get_session_userid(); @@ -147,7 +150,7 @@ class UserController extends AdminController $db->table($tableName)->where('emp_code', $userData['emp_code']) ->where('email', $userData['email']) - ->set($userData) + ->set($hdz_staff) ->update(); } } diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 6a668532..f9e11a2b 100644 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -105,6 +105,8 @@ class EmployeePolicyModel extends Model 'emp.basic_pay', 'emp.band as grade', 'policy_type.policy_type', + 'client_branch.branch_name as client_branch_name', + 'client_branch.branch_code as client_branch_code', 'cp.policy_no', ]) ->join('employees emp', 'employee_polices.employee_id = emp.id') @@ -116,6 +118,7 @@ class EmployeePolicyModel extends Model ->join('tpa tpam', 'cp.tpa_id = tpam.id', 'left') //tpam - tpa master ->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id', 'left') //tpab - tpa branch ->join('clients cm', 'cp.client_id = cm.id') //cm - client master + ->join('client_branch', 'emp.client_branch_id = client_branch.id') //cm - client master ->orderBy('emp.emp_code', 'ASC') ->orderBy('employee_polices.employee_id', 'ASC'); @@ -202,10 +205,11 @@ class EmployeePolicyModel extends Model employees.emp_code AS emp_code, employees.dob AS emp_dob, employees.gender AS emp_gender, - employees.change_event AS change_event, employees.relationship AS emp_relationship, employees.relationship_code AS emp_relationship_code, '$datas' as event_type_data, + employees.change_event AS change_event, + employees.doj AS emp_doj, employees.mobile AS emp_mobile, @@ -294,10 +298,11 @@ class EmployeePolicyModel extends Model employees.dob AS emp_dob, employees.gender AS emp_gender, employees.client_id AS emp_client_id, - employees.emp_type as emp_temp_codeype, + employees.emp_type as emp_type, employee_polices.uhid, - employees.relationship_code, - employees.relationship, + employee_polices.tpa_id, + employees.relationship_code as emp_relationship_code, + employees.relationship as emp_relationship, 'C' as event_type_data, employees.doj AS emp_doj, @@ -385,7 +390,7 @@ class EmployeePolicyModel extends Model employees.designation AS emp_designation, employees.basic_pay AS emp_basic_pay, - employee_polices.uhid AS risk_id, + employee_polices.uhid AS uhid, employee_polices.pre_existing_alignments, employee_polices.policy_end_date, employee_polices.basic_cover_si as old_basic_cover_si, diff --git a/app/Models/InsurerModel.php b/app/Models/InsurerModel.php index 8d72bca7..e05b76a0 100644 --- a/app/Models/InsurerModel.php +++ b/app/Models/InsurerModel.php @@ -56,12 +56,14 @@ class InsurerModel extends Model public function getInsurerTemplateByInsurerID($insurer_id) { $insurer_data = $this->db->table('insurer_excel_export_template') - ->select('insurers.name as insurer_name, insurers.id, insurers.is_multi_event') - ->select('CASE WHEN insurers.is_multi_event = 1 THEN "multiple" ELSE insurer_excel_export_template.event_name END as event_name', false) + ->select('insurer_excel_export_template.*, insurers.name as insurer_name, insurers.is_multi_event') + ->select('CASE WHEN insurers.is_multi_event = 1 THEN "All" ELSE insurer_excel_export_template.event_name END as event_name', false) ->select('insurer_excel_export_template.type_name, insurer_excel_export_template.jsoncolumns, policy_type.policy_type') ->join('insurers', 'insurers.id = insurer_excel_export_template.insurer_id') ->join('policy_type', 'policy_type.id = insurer_excel_export_template.policy_type_id') ->where('insurers.id', $insurer_id) + ->where('insurers.is_active', 1) + ->where('insurer_excel_export_template.is_active', 1) ->get() ->getResultArray(); diff --git a/app/Models/PolicesModel.php b/app/Models/PolicesModel.php index ec010b82..bd8fe9d4 100644 --- a/app/Models/PolicesModel.php +++ b/app/Models/PolicesModel.php @@ -23,11 +23,10 @@ class PolicesModel extends Model public function getPolicyPremium($policy_id){ - return $this->db->table('policies') + return $this->db->table('client_policy') ->select('policy_type.*') - ->select('policies.name as policy_name') - ->join('policy_type', 'policy_type.id = policies.policy_type_id') - ->where('policies.id', $policy_id) + ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') + ->where('client_policy.id', $policy_id) ->get() ->getResult(); } diff --git a/app/Views/UserList.php b/app/Views/UserList.php index e53e341d..37ce4dd5 100644 --- a/app/Views/UserList.php +++ b/app/Views/UserList.php @@ -259,9 +259,16 @@ $(document).ready(function () { }, error: function (xhr, status, error) { - console.error(xhr.responseText); - console.error(status, error); - } + console.error("Error Details:"); + console.error("Status Code:", xhr.status); + console.error("Status Text:", xhr.statusText); + console.error("Response Text:", xhr.responseText); + console.error("Ready State:", xhr.readyState); + console.error("Response Headers:", xhr.getAllResponseHeaders()); + console.error("Error Thrown:", error); + console.error("Status:", status); + } + }); }); diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php index b5ee306d..2867a42c 100644 --- a/app/Views/client_branch.php +++ b/app/Views/client_branch.php @@ -371,6 +371,8 @@ $("#branch_form").submit(function(event) { contentType: false, success: function(res) { + console.log('client branch submit response', res) + if (res) { setTimeout(function() { @@ -380,11 +382,17 @@ $("#branch_form").submit(function(event) { $('#branch_table').show(); $('.btnBack').hide(); $('#btnBranchAdd').show(); - var message = (branch_PrimaryKey === '') ? - 'Client Branch Created successfully' : - 'Client Branch Updated successfully'; - toastr.success(message, 'Success'); - }, 1000); + + if(res.status == false){ + toastr.error(res.message, 'Error'); + }else{ + toastr.success(res.message, 'Success'); + } + // var message = (branch_PrimaryKey === '') ? + // 'Client Branch Created successfully' : + // 'Client Branch Updated successfully'; + // toastr.success(message, 'Success'); + }, 800); } $('#branch_list tr').remove(); @@ -395,7 +403,7 @@ $("#branch_form").submit(function(event) { console.log(role) $.each(res.data, function(index, item) { - console.log('client_branch_data', item) + // console.log('client_branch_data', item) if(role != 3 && role != 4){ @@ -433,8 +441,8 @@ $("#branch_form").submit(function(event) { setTimeout(function() { $('.loader').fadeOut(); $('.loader-mask').delay(350).fadeOut('slow'); - toastr.warning('Something Wrong!', 'warning'); - }, 1000); + console.log('Something Wrong!', 'warning'); + }, 300); } }); } @@ -696,10 +704,10 @@ function removeClientBranch(element) { // console.log(res.status == true); if (res) { if (res.status == true) { - toastr.success('Client branch removed successfully', 'success'); + toastr.success(res.message, 'success'); location.reload(); } else { - toastr.warning('Failed to remove client branch', 'warning'); + toastr.warning(res.message, 'warning'); } } }, diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php index 5e544eec..f57c5dea 100644 --- a/app/Views/client_policy.php +++ b/app/Views/client_policy.php @@ -675,72 +675,17 @@ $(document).ready(function() { /********* set the Policy_Type_id for Form Submit *******/ - $('#policy').change(function() { + $('#policy_type').change(function() { - var id = $(this).val(); - var dataId = $(this).children('option:selected').attr('data-id'); - var branch_id = $('#client_branch').val(); - var client_id = $('#client_id_policy').val(); + var policy_type_id = $(this).val(); - console.log('client_id', client_id) - console.log('branch_id', branch_id) - console.log('policy_type_id', dataId) - console.log('client_policy_id', $('#policy_PrimaryKey').val()) - - - - $('#policy_type_id').val(dataId); - - var url = '' + dataId + '/' + branch_id + '/' + client_id; - - - if (dataId == 1) { + if (policy_type_id == 1 || policy_type_id == 6 || policy_type_id == 7) { $('#tpa').prop('required', false); $('#tpa_danger').hide() } else { $('#tpa').prop('required', true); $('#tpa_danger').show() } - - var base_policy_dataId = $('#base_policy').children('option:selected').attr('data-id'); - - if ($('#policy_type').val() == 1) { - - // //console.log('step 1') - - if (dataId == 3) { - - // //console.log('step 2') - - var displayStatus = $('#base_policy_id').css('display'); - $('#base_policy_id').show(); - $('#base_danger').hide(); - // $('#base_policy').prop('required', true); - - if (displayStatus === 'none') { - // //console.log('step 2.1') - - $('#base_policy').val('').change(); - } - - // $('#base_policy').find('option[data-id="3"]').hide(); - - } else { - - // //console.log('step 3') - - var displayStatus = $('#base_policy_id').css('display'); - $('#base_policy_id').hide(); - $('#base_danger').show(); - // $('#base_policy').prop('required', false); - - if (displayStatus === 'none') { - // //console.log('step 3.1') - $('#base_policy').val('').change(); - } - } - } - }); }); @@ -804,6 +749,7 @@ $('#close_date').val(rearrangeDateFormat(res.data.close_date)); $('#reminder_date').val(rearrangeDateFormat(res.data.reminder_date)); $('#gst_no').val(gst); + $('#policy_status').val(checkDateStatus(res.data.policy_end_date)); $('#policy_status_field').show(); @@ -920,6 +866,15 @@ } + if (res.data.policy_type_id == '1' || res.data.policy_type_id == '6' || res.data.policy_type_id == '7') { + $('#tpa').prop('required', false); + $('#tpa_danger').hide() + } else { + $('#tpa').prop('required', true); + $('#tpa_danger').show() + } + + setTimeout(function(){ appendCDACNO(res.cd_data, res.data.cd_ac_no) // append and select the current CD Account Number appendBasePolicyList(res.client_policy_list, res.data.base_policy, res.data.client_branch_id); // append and select the Base palicy @@ -971,6 +926,8 @@ }, success: function(res) { + console.log('OpenEnrollment response', res); + if (res) { if (res.open_for_enrollment) { var json_decode = JSON.parse(res.open_for_enrollment); @@ -1171,13 +1128,23 @@ function convertCommaNumberToWords(input) { let number; - if (input instanceof HTMLElement) { + + console.log( 'input type step 1', typeof input); + + if (input instanceof HTMLElement && input.value) { + // Ensure input.value is defined and not null const inputValue = input.value; number = parseFloat(inputValue.replace(/,/g, ''), 10); - } else { + } else if (input) { + console.log( 'input type step 2', typeof input); + // Handle the case where input is a string number = parseFloat(input.replace(/,/g, ''), 10); + } else { + // Handle the case where input is undefined or null + number = NaN; // or handle as needed } + const [integerPart, decimalPart] = number.toFixed(2).split('.'); const integerWord = convertNumberToWords(parseInt(integerPart, 10)); let result = `${integerWord}`; @@ -1224,7 +1191,12 @@ maximumFractionDigits: 2 }); - //console.log('formetted value', value); + console.log('formatNumber function formetted value', value); + console.log('formatNumber function formetted value type',typeof value); + + if(value == 'NaN' || value == 'null' || value == 'undefined'){ + value = ''; + } input.value = (value); @@ -1232,6 +1204,7 @@ if (input.id == 'gpa_si') { gpaSumInsureMultiplier(); } + convertCommaNumberToWords(input); if (input.id == 'gpa_sum_si') { diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php index f5d04b65..322a5eea 100644 --- a/app/Views/employee_data_list.php +++ b/app/Views/employee_data_list.php @@ -50,7 +50,20 @@ SNO - + + + + Client/Branch + + + + + + Branch + + + + Employee code Name/code Policy name Insurer
name @@ -75,6 +88,19 @@ + + + + - + + + + + + + + + ( - ) - diff --git a/app/Views/insurer_export_templete.php b/app/Views/insurer_export_templete.php index 1c1f4ca0..40b757a7 100644 --- a/app/Views/insurer_export_templete.php +++ b/app/Views/insurer_export_templete.php @@ -1,6 +1,55 @@ + + + +
- + + +
@@ -14,10 +63,10 @@ Copy
- +
@@ -33,17 +82,27 @@ Event Type Import/Export Template + Action $value ){ ?> - - - - - + + + + + + + + @@ -54,19 +113,20 @@