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 a5c6ebf0..5439e64e 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,22 +1100,32 @@ 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', ]; - if ($policy_grid_id == 1 || $policy_grid_id == 2 || $policy_grid_id == 6 || $policy_grid_id == 7) { + $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 ) { $relation_data = [ 'self' => 1, 'spouse' => 'NA', @@ -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,6 +1313,7 @@ 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[]'); @@ -1226,7 +1325,7 @@ class ClientController extends AdminController $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]; @@ -1234,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[]'); @@ -1305,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[]'); @@ -1355,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]); @@ -1421,13 +1519,13 @@ 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); } } catch (\Exception $e) { - echo 'Error: ' . $e->getMessage(); + echo 'Error: ' . $e->getMessage(). ' at line no ' . $e->getLine(); } } @@ -1557,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) { @@ -1564,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 = ""; @@ -1650,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) { @@ -1665,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 { @@ -1679,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); } } @@ -2044,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)) { @@ -2076,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 @@ -2666,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) @@ -2828,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'); @@ -2853,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{ @@ -2862,4 +2975,40 @@ 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) + ->where('is_active',1) + ->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 c59195a3..fbf60d4e 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -331,7 +331,7 @@ class EmpDataServiceController extends BaseController [ 'column_index' => 0, 'column_name' => 'S.No', - 'header_name' => 'index' + 'db_column_name' => 'index' ], [ 'column_index' => 1, @@ -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(); @@ -1549,7 +1549,6 @@ class EmpDataServiceController extends BaseController } } - $batch_list_id[] = $emp_value['emp_policy_id']; } @@ -1696,7 +1695,7 @@ class EmpDataServiceController extends BaseController $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name']; $excel_data = $this->readExcelFileToArray($file_name_with_path); unset($excel_data[0]); // Remove header row - array_pop($excel_data); // Remove footer row + // array_pop($excel_data); $totals = 0; $emp_policy_ids = []; @@ -1707,7 +1706,6 @@ class EmpDataServiceController extends BaseController $emp_count = count($excel_data); $db = \Config\Database::connect(); - foreach ($excel_data as $key => $value) { $name = $value[1]; @@ -1716,33 +1714,37 @@ class EmpDataServiceController extends BaseController $uhid[] = $value[16]; $amount = $value[20]; - $totals = $totals + $amount; + if(!empty($name) && !empty($emp_code)){ - $query = $db->table('employee_polices'); - $query->select('employee_polices.id'); - $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); - $query->where('employees.client_branch_id', $client_branch_id); - $query->where('employees.name', $name); - $query->where('employees.emp_code', $emp_code); - if ($file['insurer_or_tpa'] == 'tpa') { + $totals = $totals + $amount; - $query->where('(employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = "")'); - } else if ($file['insurer_or_tpa'] == 'insurer') { + $query = $db->table('employee_polices'); + $query->select('employee_polices.id'); + $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); + $query->where('employees.client_branch_id', $client_branch_id); + $query->where('employees.name', $name); + $query->where('employees.emp_code', $emp_code); + if ($file['insurer_or_tpa'] == 'tpa') { - $query->where('(employee_polices.uhid IS NULL OR employee_polices.uhid = "")'); - } - $query->where('employee_polices.is_active', 1); - $query->where('employee_polices.status', 'active'); - $query->where('employees.is_active', 1); - $query->where('employees.emp_status', 'active'); - $query->limit(1); + $query->where('(employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = "")'); + } else if ($file['insurer_or_tpa'] == 'insurer') { + + $query->where('(employee_polices.uhid IS NULL OR employee_polices.uhid = "")'); + } + $query->where('employee_polices.is_active', 1); + $query->where('employee_polices.status', 'active'); + $query->where('employees.is_active', 1); + $query->where('employees.emp_status', 'active'); + $query->limit(1); + + $result = $query->get()->getRowArray(); + if (isset($result['id']) && $result['id'] !== null) { + $emp_policy_ids[] = $result['id']; //for cash deposite + $emp_details[] = array('id' => $result['id'], 'tpa_id' => $value[15], 'uhid' => $value[16]); + } - $result = $query->get()->getRowArray(); - if (isset($result['id']) && $result['id'] !== null) { - $emp_policy_ids[] = $result['id']; //for cash deposite - $emp_details[] = array('id' => $result['id'], 'tpa_id' => $value[15], 'uhid' => $value[16]); } } @@ -1766,18 +1768,17 @@ class EmpDataServiceController extends BaseController $this->myLogger->logme('error', 'Inception Update TPA and UHID -- set cashDepositCalculationForInception and sendMailForDownloadingECard in JOB QUEUE'); $policy_name = $this->getPolicyNameUsingClientPolicyId($client_policy_id); - $depositeData = [ - 'employeeIds' => $emp_policy_ids, - 'client_id' => $client_id, - 'client_policy_id' => $client_policy_id, - 'client_branch_id' => $client_branch_id, - 'count' => $emp_count, - 'event' => $file['event_type'], - 'policy_name' => $policy_name['policy_name'], - 'user_id' => $user_id, - ]; - + // $depositeData = [ + // 'employeeIds' => $emp_policy_ids, + // 'client_id' => $client_id, + // 'client_policy_id' => $client_policy_id, + // 'client_branch_id' => $client_branch_id, + // 'count' => $emp_count, + // 'event' => $file['event_type'], + // 'policy_name' => $policy_name['policy_name'], + // 'user_id' => $user_id, + // ]; $job_details = new Jobs(); $r = Jobs::addJob(['job_name' => 'cashDepositCalculationForInception', 'payload' => [ @@ -1813,8 +1814,6 @@ class EmpDataServiceController extends BaseController - - //Endorsement Correction public function importCorrectionValidation($params) { @@ -2229,7 +2228,6 @@ class EmpDataServiceController extends BaseController - //Endorsement SIEnhancement public function importSIEnhancementValidation($params) { @@ -2866,7 +2864,7 @@ class EmpDataServiceController extends BaseController $excel_data = $this->readExcelFileToArray($file_name_with_path); $excel_header = $excel_data[0]; unset($excel_data[0]); - array_pop($excel_data); + // array_pop($excel_data); $headers = ['S.No','EMP ID','EMP NAME','DOB','GENDER','RELATIONSHIP','SUM INSURED','Date of Leaving','Policy End Date','No Of Days','Premium','Pro Rata Premium','GST','Total','Claim Status','ENDORSEMENT_ID']; @@ -3276,24 +3274,25 @@ class EmpDataServiceController extends BaseController $totals = $totals + $value[13]; $endorsement_id = $value[15]; + if(!empty($emp_code) && !empty($emp_name)){ - $fetch_data = [ - 'client_policy_id' => $client_policy_id, - 'client_branch_id' => $client_branch_id, - 'client_id' => $client_id, - 'emp_name' => $emp_name, - 'emp_code' => $emp_code - ]; - $result = $this->employeePolicyModel->fetchEmpEndorsementData($fetch_data); + $fetch_data = [ + 'client_policy_id' => $client_policy_id, + 'client_branch_id' => $client_branch_id, + 'client_id' => $client_id, + 'emp_name' => $emp_name, + 'emp_code' => $emp_code + ]; + $result = $this->employeePolicyModel->fetchEmpEndorsementData($fetch_data); - // dd($result['emp_endorsement_primarykey']); + if (isset($result['emp_endorsement_primarykey']) && $result['emp_endorsement_primarykey'] !== null) { - if (isset($result['emp_endorsement_primarykey']) && $result['emp_endorsement_primarykey'] !== null) { + $employee_policy_table_primaryKey[] = $result['emp_policy_primarykey']; //for cash deposite + $employee_policy_table_data[] = array('id' => $result['emp_policy_primarykey'], 'date_of_exit' => $result['date_of_exit'], 'reason_for_exit' => $result['reason_for_exit'], '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'); + } - $employee_policy_table_primaryKey[] = $result['emp_policy_primarykey']; //for cash deposite - $employee_policy_table_data[] = array('id' => $result['emp_policy_primarykey'], 'date_of_exit' => $result['date_of_exit'], 'reason_for_exit' => $result['reason_for_exit'], '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'); } } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 10ad95c4..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(); @@ -463,10 +465,10 @@ class EmployeeController extends AdminController if (!$return) { if ($insurer_or_tpa == 'tpa') { - session()->setFlashdata('error', "No data was found for this action. The TPA ID has already been updated."); + session()->setFlashdata('error', "No data was found for this action."); return redirect()->to(base_url('employee/upload')); } else if ($insurer_or_tpa == 'insurer') { - session()->setFlashdata('error', "No data was found for this action. The UHID has already been updated."); + session()->setFlashdata('error', "No data was found for this action."); return redirect()->to(base_url('employee/upload')); } } else { @@ -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'); @@ -1511,8 +1513,11 @@ class EmployeeController extends AdminController $client_id = $json->client_id; $policy_id = $json->policy_id; $branch_id = $json->branch_id; + $unit_id = $json->unit_id; + $action = $json->action; + $family_code = $json->emp_code; $tabledata = $json->data; - + $existing_famility_details = []; if(count($tabledata)) { $family_details = []; @@ -1523,7 +1528,7 @@ class EmployeeController extends AdminController { $temp[0] = $row['column1'];//sno - $temp[1] = $row['column2'];//emp code + $temp[1] = $family_code != "" ? $family_code : $row['column2'];//emp code $temp[2] = $row['column3'];//name $temp[3] = $row['column4'];//DOB $temp[4] = strtoupper($row['column5']);//Gender @@ -1540,14 +1545,29 @@ class EmployeeController extends AdminController $temp[15] = '';//RFE $temp[16] = '';//DOE $temp[17] = '';//Unit - $temp[18] = $row['column11'];//unit + $temp[18] = $unit_id;//unit $family_details[] = $temp; } } } - // print_r($family_details); - // return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $family_details], 200); + if($action == 'dependent_addition') + { + $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $family_code,client_id: $client_id,client_policy_id: $policy_id,emp_status: ['active'],policy_status:['active'],client_branch_id: [ $branch_id ]); + // ~dd($this->employeeModel->getLastQuery()); + + if(!count($existing_famility_details)) + { + return $this->respond(['dataStatus' => false, 'code' => 404, 'data' => [],'messgae' => "No Data found for emp code $family_code"], 200); + } + //transsform familiy details from db columns to exxcel row with column indexs for checking remaining functionalitites + $existing_famility_details = transform_db_data_to_excel($existing_famility_details,[]); + // Kint::dump($existing_famility_details); + $family_details = array_merge($family_details,$existing_famility_details); + $family_details = data_group_by_family($family_details)[ $family_code ];// reason to call this again is bring self to first index of the array + // dd($family); + } + //get policy details $policy_details = $this->clientPolicyModel->getPolicyDetails($client_id,$policy_id); $policy_details = (array)$policy_details[0]; @@ -1570,7 +1590,7 @@ class EmployeeController extends AdminController } } - return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $data], 200); + return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => ['new' => $data,'old' => $existing_famility_details], 200]); } } diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php index f31460b2..826c7e29 100644 --- a/app/Controllers/EmployeeServiceController.php +++ b/app/Controllers/EmployeeServiceController.php @@ -18,6 +18,7 @@ use App\Models\EmpEndorsementModel; use App\Models\MessageModel; use App\Models\ClientBranchModel; use App\Models\NotificationModel; +use App\Models\InsurerModel; use App\Helpers\sendMailNotification; @@ -41,6 +42,7 @@ class EmployeeServiceController extends AdminController protected $messageModel; protected $clientBranchModel; protected $notificationModel; + protected $insurerModel; protected $general_relationships = [ 'self' => [ @@ -649,6 +651,7 @@ class EmployeeServiceController extends AdminController $this->messageModel = new MessageModel(); $this->clientBranchModel = new ClientBranchModel(); $this->notificationModel = new NotificationModel(); + $this->insurerModel = new InsurerModel(); } public function excelFileFormatValidation($params) @@ -1295,21 +1298,31 @@ class EmployeeServiceController extends AdminController // $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); unset($excel_data[0]); - // dd($excel_data); + // kint::dump($excel_data); $endorsement_data = []; - - + $policy_terms = $this->clientPolicyModel->getPolicyDetails($file['client_id'],$file['policy_id']); + $insurer = new InsurerModel(); + $insurer = ($insurer->find($policy_terms[0]->insurer_id)); + // kint::dump($insurer); //make closure funciton which is going to use only by this method - $endorsement = function($data,$file,$row){ + $endorsement = function($data,$file,$row) use ($insurer){ $group_key = rand(100000, 999999); + $row[4] = change_date_format($row[4],'d-M-Y','Y-m-d');// date of exit from excel + // Kint::dump($row[4]); + // check if insurer configured with add one day for deletion + if($insurer['deletion_add_day'] == true) + { + $row[4] = (new \DateTime($row[4]))->modify('+1 day')->format('Y-m-d'); + } + // dd($row[4]); //for emp table $this->empEndorsementModel->save(['pk' => (int)$data['emp_id'],'emp_code' => $data['emp_code'],'table_name' => 'employees','actions' => 'd','name' => $data['name'],'field_name' => 'emp_status','old_value' => $data['emp_status'],'new_value' => 'deactivate','created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']); // dd( $this->empEndorsementModel->getLastQuery()); // $this->empEndorsementModel->save(['pk' => (int)$data['emp_id'],'emp_code' => $data['emp_code'],'table_name' => 'employees','actions' => 'd','name' => $data['name'],'field_name' => 'change_event','old_value' => $data['change_event'],'new_value' => 'deletion','created_by' => $file['created_by'],'remarks' => 'general deletion']); // for employee policy table - $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'date_of_exit','old_value' => $data['date_of_exit'],'new_value' => change_date_format($row[4],'d-M-Y','Y-m-d'),'created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']); + $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'date_of_exit','old_value' => $data['date_of_exit'],'new_value' => $row[4],'created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']); $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'reason_for_exit','old_value' => $data['reason_for_exit'],'new_value' => $row[5],'created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']); $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'status','old_value' => $data['status'],'new_value' => 'inactive','created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']); }; @@ -1326,6 +1339,7 @@ class EmployeeServiceController extends AdminController // dd($employee); if(is_array($employee) && count($employee)) { + // dd($employee); $existing_endorsements = $this->empEndorsementModel->where('actions','d') ->where('table_name','employees') ->where('endorsement_id is null') @@ -1334,9 +1348,10 @@ class EmployeeServiceController extends AdminController ->where('field_name','emp_status') ->findAll(); - + // dd($existing_endorsements); if(!count($existing_endorsements)) { + // dd($employee); if(strtolower($employee['relationship']) != 'self') { @@ -1654,6 +1669,10 @@ class EmployeeServiceController extends AdminController }// if end }// is array check end + else + { + $this->myLogger->logme('error','######Incoming value is not an array'); + } }// for end }//function end diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php index 969f01c6..842dd047 100644 --- a/app/Controllers/MasterController.php +++ b/app/Controllers/MasterController.php @@ -152,8 +152,65 @@ class MasterController extends AdminController $editData['insurer'] = $this->insurerModel->where(['id' => $id, 'is_active' => 1])->first(); - $editData['insuer_branch'] = $this->insurerBranchModel->where(['insurer_id' => $id, 'is_active' => 1])->findAll(); + $editData['insuer_branch'] = $this->insurerBranchModel->where(['insurer_id' => $id, 'is_active' => 1])->findAll(); $editData['insurer_templete_count'] = $this->insurerTemplateModel->where(['insurer_id' => $id, 'is_active' => 1])->countAllResults(); + $editData['insurer_templete_list'] = $this->insurerModel->getInsurerTemplateByInsurerID($id); + + + $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', + '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', + + ]; + + // echo "
";
@@ -207,6 +264,10 @@ class MasterController extends AdminController
$data['addition_add_day'] = 1;
}
+ if($this->request->getPost('deletion_add_day')){
+ $data['deletion_add_day'] = 1;
+ }
+
$data['created_by'] = get_session_userid();
$data['insurer_logo'] = $file_name;
@@ -285,6 +346,12 @@ class MasterController extends AdminController
$data['addition_add_day'] = 0;
}
+ if($this->request->getPost('deletion_add_day')){
+ $data['deletion_add_day'] = 1;
+ }else{
+ $data['deletion_add_day'] = 0;
+ }
+
$update = $this->insurerModel->update($id,$data);
if($update){
echo json_encode(array("status" => true , 'data' => $data));
@@ -347,6 +414,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();
@@ -355,8 +424,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) {
@@ -372,12 +441,29 @@ 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
@@ -386,7 +472,6 @@ class MasterController extends AdminController
// TPA Start
-
public function tpaList()
{
$this->myLogger->logme('error','TPA list function called');
@@ -709,10 +794,11 @@ class MasterController extends AdminController
echo json_encode($editData);
exit();
}
-
//Ends TPA Models
+
+
//Start KYC
public function kycList()
@@ -901,8 +987,9 @@ class MasterController extends AdminController
- //Start Policy
+
+ //Start Policy
public function policyTypeList()
{
$this->myLogger->logme('error','Policy Type list function called');
@@ -1098,13 +1185,15 @@ class MasterController extends AdminController
echo json_encode(array("status" => false));
}
}
-
//end policies
+
+
//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();
@@ -1254,4 +1343,101 @@ 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' => 'export',
+ 'jsoncolumns' => $this->request->getPost('json_data'),
+ 'is_active' => 1,
+ 'created_by' => get_session_userid(),
+ ];
+
+ 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]);
+ }
+
+ }else{
+
+ $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..53d35bf1 100644
--- a/app/Controllers/UserController.php
+++ b/app/Controllers/UserController.php
@@ -35,7 +35,7 @@ class UserController extends AdminController
public function list()
{
- $data['headerData'] = 'User List';
+ $data['page_name'] = 'User';
$this->myLogger->logme('error','User list function called');
$data['UserList'] = $this->userModel->getUserList();
// echo '';
@@ -47,54 +47,60 @@ class UserController extends AdminController
public function create()
- {
- $this->myLogger->logme('error','User create function called');
- $teams = $this->request->getPost('team');
-
+ {
+ $this->myLogger->logme('error', 'User create function called');
+ $teams = $this->request->getPost('team');
+
//if this is get method return to user creation page
- if(!$this->request->getPost()){
+ if (!$this->request->getPost()) {
return redirect()->to(base_url('/user/list'));
- }else{
-
+ } else {
+
$userData = $this->request->getPost();
$userData['created_by'] = get_session_userid();
$temp_team = $userData['team'];
unset($userData['team']);
$insert = $this->userModel->insert($userData);
- if($insert){
- $db = \Config\Database::connect();
- $tableName = 'hdz_staff';
- if($userData['role'] == 1){
+ if ($insert) {
+
+ if ($userData['role'] == 3) {
+
+ $db = \Config\Database::connect();
+ $tableName = 'hdz_staff';
$admin = 1;
- }else{
- $admin = 0;
- }
- foreach ($temp_team as $key => $value) {
- $team = $this->teamModel->where('id' , $value)->first();
- if($team['name'] == 'Claims'){
- $hdz_staff = [
- 'emp_code' => $userData['emp_code'],
- 'fullname' => $userData['first_name'],
- 'username' => strtolower($userData['first_name']),
- 'email' => $userData['email'],
- 'admin' => $admin,
- 'registration' => time(),
- ];
-
- $db->table($tableName)->insert($hdz_staff);
- }
- }
- $teamData['user_id'] = $insert ;
- foreach ($teams as $value) {
- $teamData['team_id'] = $value;
- $teamData['created_by'] = get_session_userid();
- $this->userTeamsModel->insert($teamData);
+ $password = '12345678'; //Default password
+ $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
+
+ foreach ($temp_team as $key => $value) {
+ $team = $this->teamModel->where('id', $value)->first();
+ if ($team['name'] == 'Claims') {
+ $hdz_staff = [
+ 'emp_code' => $userData['emp_code'],
+ 'fullname' => $userData['first_name'],
+ 'username' => strtolower($userData['first_name']),
+ 'email' => $userData['email'],
+ 'admin' => $admin,
+ 'registration' => time(),
+ 'password' => $hashedPassword,
+ 'active' => 1,
+ ];
+
+ $db->table($tableName)->insert($hdz_staff);
+ }
+ }
+
+ $teamData['user_id'] = $insert;
+ foreach ($teams as $value) {
+ $teamData['team_id'] = $value;
+ $teamData['created_by'] = get_session_userid();
+ $this->userTeamsModel->insert($teamData);
+ }
}
}
}
- $this->myLogger->logme('error','User create Successfully created by id {data}', ['data' => get_session_userid()]);
+ $this->myLogger->logme('error', 'User create Successfully created by id {data}', ['data' => get_session_userid()]);
return redirect()->to(base_url('/user/list'));
}
@@ -110,62 +116,65 @@ class UserController extends AdminController
}
public function edit()
- {
- $teams = $this->request->getPost('team');
+ {
+ $teams = $this->request->getPost('team');
- if(!$this->request->getPost()){
+ if (!$this->request->getPost()) {
return redirect()->to(base_url('/user/list'));
- }else{
+ } else {
$id = $this->request->getPost('PrimaryKey');
$userData = $this->request->getPost();
+ unset($userData['csrf_test_name']);
+ unset($userData['PrimaryKey']);
// Update data in the 'users' table based on the $id
$userData['updated_by'] = get_session_userid();
- $update = $this->userModel->where('id', $id )->set($userData)->update();
+ $update = $this->userModel->where('id', $id)->set($userData)->update();
- if($update){
+ if ($update) {
- $db = \Config\Database::connect();
- $tableName = 'hdz_staff';
+ if ($userData['role'] == 3) {
- if($userData['role'] == 1){
+ $db = \Config\Database::connect();
+ $tableName = 'hdz_staff';
$admin = 1;
- }else{
- $admin = 0;
- }
- foreach ($userData['team'] as $key => $value) {
- if($value == 2){
- $hdz_staff = [
- 'emp_code' => $userData['emp_code'],
- 'fullname' => $userData['first_name'],
- 'username' => strtolower($userData['first_name']),
- 'email' => $userData['email'],
- 'admin' => $admin,
- ];
-
+ foreach ($userData['team'] as $key => $value) {
+ if ($value == 2) {
- $db->table($tableName)->where('emp_code', $userData['emp_code'])
- ->where('email', $userData['email'])
- ->set($userData)
- ->update();
+ $hdz_staff = [
+ 'emp_code' => $userData['emp_code'],
+ 'fullname' => $userData['first_name'],
+ 'username' => strtolower($userData['first_name']),
+ 'email' => $userData['email'],
+ 'admin' => $admin,
+ 'registration' => time(),
+ 'active' => 1,
+ ];
+
+
+ $db->table($tableName)->where('emp_code', $userData['emp_code'])
+ ->where('email', $userData['email'])
+ ->set($hdz_staff)
+ ->update();
+ }
}
- }
+ $this->userTeamsModel->where('user_id', $id)->delete();
- $this->userTeamsModel->where('user_id', $id)->delete();
- if($teams){
- $teamData['user_id'] = $id ;
- foreach ($teams as $value) {
- $teamData['team_id'] = $value;
- $teamData['created_by'] = get_session_userid();
- $this->userTeamsModel->insert($teamData);
- }
+ if ($teams) {
+ $teamData['user_id'] = $id;
+ foreach ($teams as $value) {
+ $teamData['team_id'] = $value;
+ $teamData['created_by'] = get_session_userid();
+ $this->userTeamsModel->insert($teamData);
+ }
+ }
}
- }
+ }
+
return redirect()->to(base_url('/user/list'));
}
-
}
public function deactive($id = null)
diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php
index 0f3fd7d0..3f07ed82 100644
--- a/app/Helpers/excel_util_helper.php
+++ b/app/Helpers/excel_util_helper.php
@@ -241,6 +241,13 @@ if(!function_exists('check_si'))
$return_array = array('status' => true,'error' => '');
}
+ if($policy_details['policy_type_id'] == 3 && strtolower($row['5']) == 'self') // if GMC parent and current relation is self then skip this . so set all true;
+ {
+ $is_si_found = true;
+ $is_age_slab_found = true;
+ $return_array = array('status' => true,'error' => '');
+ }
+
if($row['current_action'] != null && in_array(strtoupper($row['current_action']), ['I','A','DA','SI','MI']))// check rule only of action column data available
{
$received_si = $row['current_action'] == 'SI' ? $row[3] : $row[6];
diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php
index b6101356..718e67a8 100644
--- a/app/Models/ClientModel.php
+++ b/app/Models/ClientModel.php
@@ -45,14 +45,14 @@ class ClientModel extends Model
->where('is_active',1)
->findAll();
- // if($role_id == 2 || $role_id == 3){
+ if($role_id == 2 || $role_id == 3){
- // $clients = $this->select($columns)
- // ->join('client_rm', 'client_rm.client_id = clients.id')
- // ->where('client_rm.user_id', $user_id)
- // ->where('clients.is_active',1)
- // ->findAll();
- // }
+ $clients = $this->select($columns)
+ ->join('client_rm', 'client_rm.client_id = clients.id')
+ ->where('client_rm.user_id', $user_id)
+ ->where('clients.is_active',1)
+ ->findAll();
+ }
@@ -84,6 +84,7 @@ class ClientModel extends Model
$clientBranchModel = new ClientBranchModel();
$clientBranchs = $clientBranchModel->select(['client_branch.id','client_branch.branch_name','client_branch.branch_code', 'client_branch.client_id','client_branch.units'])
->where('client_branch.client_id',$client['id'])
+ ->where('client_branch.is_active',1)
->findAll();
$client['branchs'] = $clientBranchs;
diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php
index 506b6605..e66bfc88 100644
--- a/app/Models/ClientPolicyModel.php
+++ b/app/Models/ClientPolicyModel.php
@@ -22,7 +22,6 @@ class ClientPolicyModel extends Model
"reminder_date",
"open_date",
"close_date",
- "close_date",
"insured",
"no_of_employees",
"no_of_lives",
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 a731c858..e05b76a0 100644
--- a/app/Models/InsurerModel.php
+++ b/app/Models/InsurerModel.php
@@ -20,6 +20,7 @@ class InsurerModel extends Model
"is_active",
"addition_add_day",
"is_multi_event",
+ "deletion_add_day",
];
@@ -35,6 +36,7 @@ class InsurerModel extends Model
->get()
->getResult();
}
+
public function getInsurerName($insurerId)
{
// Fetch the insurer name based on the insurer ID
@@ -50,6 +52,23 @@ class InsurerModel extends Model
return null; // or handle accordingly if the insurer is not found
}
+
+ public function getInsurerTemplateByInsurerID($insurer_id)
+ {
+ $insurer_data = $this->db->table('insurer_excel_export_template')
+ ->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();
+
+ return $insurer_data;
+ }
}
\ No newline at end of file
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/cd_master_list.php b/app/Views/cd_master_list.php
index 04a52784..cf0f19e8 100644
--- a/app/Views/cd_master_list.php
+++ b/app/Views/cd_master_list.php
@@ -241,6 +241,10 @@ table.dataTable thead th {
$('#opening_bal').val('');
$('#CDMasterForm')[0].reset();
$('#CDMasterForm').parsley().reset();
+ $('#client_id').prop("disabled", false);
+ $('#insurer_id').prop("disabled", false);
+ $('#cd_ac_no').prop("disabled", false);
+
})
@@ -261,9 +265,12 @@ table.dataTable thead th {
$('#CDMasterForm').attr('action', '');
$('#CD_Master_ID').val(res.data.id);
$('#client_id').val(res.data.client_id).change();
+ $('#client_id').prop("disabled", true);
$('#insurer_id').val(res.data.insurer_id).change();
+ $('#insurer_id').prop("disabled", true);
$('#opening_date').val(res.data.opening_date);
$('#cd_ac_no').val(res.data.cd_ac_no);
+ $('#cd_ac_no').prop("disabled", true);
$('#opening_bal').val(res.data.opening_bal);
$('#btnSubmit').html('Update');
@@ -279,6 +286,10 @@ table.dataTable thead th {
$('#cd_ac_no').change(function(){
var cd_ac_no = $(this).val();
+ console.log(cd_ac_no +'-'+cd_ac_no.length);
+ cd_ac_no = cd_ac_no.trim();
+ console.log(cd_ac_no +'-'+cd_ac_no.length);
+
$.ajax({
url: ''+cd_ac_no,
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 90bc3763..347ce14a 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -145,15 +145,15 @@
-
+
-
+
-
+