Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
velz 2024-08-14 11:30:35 +05:30
commit 9ba1eee48c
17 changed files with 2050 additions and 475 deletions

View File

@ -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');

View File

@ -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);
}
}
}

View File

@ -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();

View File

@ -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');

View File

@ -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
]);
}
}
}

View File

@ -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();
}
}

View File

@ -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,

View File

@ -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();

View File

@ -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();
}

View File

@ -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);
}
});
});

View File

@ -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');
}
}
},

View File

@ -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 = '<?php echo base_url('util/check_policy_type/') ?>' + 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') {

View File

@ -50,7 +50,20 @@
<thead class="bg-light">
<tr>
<th class="font-weight-medium">SNO</th>
<!-- <th class="font-weight-medium">Employee code</th> -->
<?php if(isset($getData)) { ?>
<?php if($getData['client_id'] == '0' && $getData['policy_id'] == '0' && $getData['branch_id'] == '0' && ($getData['emp_code'] != "" || $getData['emp_name'] != "" || $getData['status'] != "")) { ?>
<th class="font-weight-medium">Client/Branch</th>
<?php } ?>
<?php } ?>
<?php if(isset($getData)) { ?>
<?php if($getData['client_id'] != '0' && $getData['branch_id'] == '0') { ?>
<th class="font-weight-medium">Branch</th>
<?php } ?>
<?php } ?>
<th class="font-weight-medium">Employee code</th>
<th class="font-weight-medium">Name/code</th>
<th class="font-weight-medium">Policy name</th>
<th class="font-weight-medium">Insurer <br> name</th>
@ -75,6 +88,19 @@
<tr>
<td><b><?php echo ($key + 1)?></b></td>
<?php if(isset($getData)) { ?>
<?php if($getData['client_id'] == '0' && $getData['policy_id'] == '0' && $getData['branch_id'] == '0' && ($getData['emp_code'] != "" || $getData['emp_name'] != "" || $getData['status'] != "")) { ?>
<td><?php echo $employee['client_short_name']?> - <?php echo $employee['client_branch_name']?> </td>
<?php } ?>
<?php } ?>
<?php if(isset($getData)) { ?>
<?php if($getData['client_id'] != '0' && $getData['branch_id'] == '0') { ?>
<td><?php echo $employee['client_branch_name']?></td>
<?php } ?>
<?php } ?>
<td><?php echo $employee['name']?>( <?php echo $employee['emp_code']?> - <?php echo $employee['relationship']?> )</td>
<!-- <td><?php echo isset($employee['policy_name']) ? $employee['policy_name'] : '' ?> - <?php echo isset($employee['policy_no']) ? $employee['policy_no'] : '' ?> - <?php echo isset($employee['policy_type']) ? $employee['policy_type'] : '' ?></td> -->
<td><?php echo isset($employee['policy_type']) ? $employee['policy_type'] : '' ?> - <?php echo isset($employee['policy_no']) ? $employee['policy_no'] : '' ?></td>

View File

@ -1,6 +1,55 @@
<style>
.table-responsive {
overflow-x: auto;
}
.truncate {
max-width: 80px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.select2-hidden-accessible + .select2-container .select2-dropdown {
display: none !important;
}
.select2-container .select2-selection--multiple .select2-selection__choice {
color: #000000;
}
</style>
<style>
#dynamic-form-container {
overflow-y: auto;
overflow-x: hidden;
max-height: 300px;
}
/* Custom scrollbar styles */
#dynamic-form-container::-webkit-scrollbar {
width: 8px; /* Set the width of the scrollbar */
}
#dynamic-form-container::-webkit-scrollbar-thumb {
background-color: #888; /* Color of the scrollbar thumb */
border-radius: 4px; /* Rounded corners of the scrollbar thumb */
}
#dynamic-form-container::-webkit-scrollbar-thumb:hover {
background-color: #555; /* Color of the scrollbar thumb on hover */
}
#dynamic-form-container::-webkit-scrollbar-track {
background-color: #f1f1f1; /* Background color of the scrollbar track */
}
</style>
<div class="tab-pane fade" id="template-tab">
<input type="hidden" id="insurer_templete_count" value="<?= isset($insurer_templete_count) ? $insurer_templete_count : ''?>">
<input type="hidden" id="insurer_templete_count" value="<?= isset($insurer_templete_count) ? $insurer_templete_count : ''?>">
<input type="hidden" id="insurer_id" value="<?= $insurer['id'] ?>">
<div class="row">
<div class="form-group col-md-4">
<label for="email">Existing Insurer Export<span class="text-danger">*</span></label>
@ -14,10 +63,10 @@
<a href="#" class="btn btn-primary waves-effect waves-light" onclick="checkInsurerTemplete(this)">Copy</a>
</div>
<!-- <div class="form-group col-md-2" style="position: relative;top: 28px;left: 80px;">
<div class="form-group col-md-2" style="position: relative;top: 28px;left: 80px;">
<label for="email"><span class="text-danger"></span></label>
<a href="#" class="btn btn-primary waves-effect waves-light" onclick="addNewJsonExportTemplate(this)">Add New</a>
</div> -->
</div>
</div>
@ -33,17 +82,27 @@
<th>Event Type</th>
<th>Import/Export</th>
<th>Template</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php if(isset($insurer_templete_list)){ ?>
<?php foreach($insurer_templete_list as $key => $value ){ ?>
<tr>
<th><?= $key+1; ?></th>
<th><?= $value['policy_type']; ?></th>
<th><?= $value['event_name']; ?></th>
<th><?= $value['type_name']; ?></th>
<th><?= $value['jsoncolumns']; ?></th>
<td><?= $key+1; ?></td>
<td><?= $value['policy_type']; ?></td>
<td><?= $value['event_name']; ?></td>
<td><?= $value['type_name']; ?></td>
<td style="overflow: hidden;" class="truncate" ><?= $value['jsoncolumns']; ?></td>
<td>
<div class="btn-group dropdown">
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#" onclick="editJSONExportTemplate(this, '<?= $value['id']; ?>')"><i class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<a class="dropdown-item" id="template_id_for_duplicate" data-id="<?= $value['id']; ?>" data-toggle="modal" data-target="#centermodal"><i class="mdi mdi-content-duplicate mr-2 text-muted font-18 vertical-middle"></i>Duplicate</a>
</div>
</div>
</td>
</tr>
<?php } ?>
<?php } ?>
@ -54,19 +113,20 @@
<!-- Center modal content -->
<div class="modal fade" id="template_modal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"
aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right: 15px">
aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right: 15px">
<div class="modal-dialog modal-full-width">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myCenterModalLabel">New Template</h4>
<h4 class="modal-title" id="myCenterModalLabel">Create Template</h4>
<button type="button" id="close_btn" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="parsley-examples" method="post" id="templateForm" enctype="multipart/form-data">
<input type="hidden" name="insurer_id" value="<?= $insurer['id'] ?>">
<input type="hidden" name="template_id" id="template_id">
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<div class="form-group col-md-5">
<label for="policy_type">Policy Type<span class="text-danger">*</span></label>
<select name="policy_type" class="form-control" id="policy_type" required>
<option value="">Select</option>
@ -77,7 +137,7 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
<?php } ?>
</select>
</div>
<div class="form-group col-md-4">
<div class="form-group col-md-5">
<label for="event_name">Event<span class="text-danger">*</span></label>
<select name="event" class="form-control" id="event" required>
<option value="">Select</option>
@ -88,7 +148,8 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
<?php } ?>
</select>
</div>
<div class="form-group col-md-4">
<!-- <div class="form-group col-md-4">
<label for="action">Action<span class="text-danger">*</span></label>
<select name="import_or_export" class="form-control" id="import_or_export" required>
<option value="">Select</option>
@ -98,32 +159,36 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
<?php } ?>
<?php } ?>
</select>
</div>
</div> -->
</div>
<div id="dynamic-form-container">
<div class="form-row dynamic-form-row">
<div class="form-group col-md-5">
<label for="header_name">Header Name<span class="text-danger">*</span></label>
<input class="form-control" type="text" name="header_name[]">
</div>
<div class="form-group col-md-5">
<label for="policy_id">DataBase Column Name<span class="text-danger">*</span></label>
<select class="form-control" name="policy_id[]" required>
<option selected>Select Client Policy</option>
<?php if (!empty($db_column_name)){ ?>
<?php foreach ($db_column_name as $key => $value) { ?>
<option value="<?= $value ?>"><?= $key ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
<div class="form-group col-md-2" style="position: relative;top: 28px;">
<a class="btn btn-primary waves-effect waves-light mr-1" onclick="addHTMLInput(this)">+</a>
</div>
<hr>
<!-- <div class="form-row dynamic-form-row">
<div class="form-group col-md-5">
<label for="excel_column_name">Header Name<span class="text-danger">*</span></label>
<input class="form-control" type="text" name="excel_column_name[]">
</div>
<div class="form-group col-md-5">
<label for="db_column_name">DataBase Column Name<span class="text-danger">*</span></label>
<select class="form-control" name="db_column_name[]" required>
<option selected>Select DB Column</option>
<?php if (!empty($db_column_name)){ ?>
<?php foreach ($db_column_name as $key => $value) { ?>
<option value="<?= $value ?>"><?= $key ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
<div class="form-group col-md-2" style="position: relative;top: 28px;">
<a class="btn btn-primary waves-effect waves-light mr-1" onclick="addHTMLInput(this)">+</a>
</div>
</div> -->
<div id="dynamic-form-container"></div>
</div>
</div>
<div class="form-group text-right m-b-0" id="hide_smbt_btn">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1">Submit</button>
</div>
@ -133,50 +198,117 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Center modal content -->
<div class="modal fade" id="centermodal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myCenterModalLabel">Duplicate Template</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col-md-12">
<label for="event_name">Event<span class="text-danger">*</span></label>
<select class="form-control" name="event_name_for_duplicate" id="event_name_for_duplicate">
<option value="">Select</option>
<option value="inception">Inception</option>
<option value="addition">Addition</option>
<option value="dependent_addition">Dependent Addition</option>
<option value="deletion">Deletion</option>
<option value="correction">Correction</option>
<option value="si_enhancement">SI Enhancement</option>
<option value="si_enhancement">All</option>
</select>
</div>
</div>
<div class="form-group text-right m-b-0" id="hide_smbt_btn">
<a class="btn btn-primary waves-effect waves-light mr-1" onclick="dublicateTemplate(this)">Duplicate</a>
</div>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script>
$(document).ready(function(){
$('#insurer').select2();
// $('#event').select2();
featchInsurerList()
})
$('#templateForm').submit(function(){
$('#templateForm').submit(function(event) {
event.preventDefault();
$.ajax({
url: $(this).attr("action"),
type: 'POST',
data: formData,
processData: false,
contentType: false,
headers: {
"X-Requested-With": "XMLHttpRequest"
},
beforeSend: function() {
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
},
success: function(response) {
var jsonString = createFormArray();; // Convert the array to a JSON string
console.log(jsonString);
console.log('Expoer template list:', response);
var formData = new FormData($('#templateForm')[0]);
var url = '<?= base_url("util/create_excel_template") ?>';
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
formData.append('json_data', jsonString);
},
error: function(xhr, status, error) {
// Request failed, handle error
console.error("Request failed:", status, error);
console.error('Response:', xhr.responseText);
},
complete: function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false,
headers: {
"X-Requested-With": "XMLHttpRequest"
},
beforeSend: function() {
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
},
success: function(response) {
console.log('Export template list:', response);
if(response.status == false){
toastr.error(response.message,'Error');
}else{
toastr.success(response.message,'Success');
}
});
window.location.reload();
},
error: function(xhr, status, error) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
// Detailed error handling
console.error("Request failed with status: " + status + ", error: " + error);
// Log detailed response information
console.error('Response status code:', xhr.status);
console.error('Response status text:', xhr.statusText);
console.error('Response readyState:', xhr.readyState);
console.error('Response text:', xhr.responseText);
// Optionally log additional details
console.error('Response headers:', xhr.getAllResponseHeaders());
console.error('Response URL:', xhr.responseURL);
// Example of throwing a detailed error for further handling
throw new Error(`AJAX Request failed:
Status: ${status},
Error: ${error},
Status Code: ${xhr.status},
Status Text: ${xhr.statusText},
Response: ${xhr.responseText}
`);
},
complete: function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}
});
});
function featchInsurerList()
@ -208,7 +340,8 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
function appendInsurer(data)
{
var insurer_id = $('#insurer_id').val();
console.log('insurer_id', insurer_id);
$('#insurer').empty();
$('#insurer').append($('<option>', {
value: '',
@ -217,11 +350,13 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
}));
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.insurer_name
});
$('#insurer').append(option);
if(insurer_id != item.id){
var option = $('<option>', {
value: item.id,
text: item.insurer_name
});
$('#insurer').append(option);
}
});
}
@ -305,25 +440,28 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
}
function addNewJsonExportTemplate(input)
{
{
$('#myCenterModalLabel').text('Create Template');
$('#dynamic-form-container').empty();
addHTMLInput();
var myModal = new bootstrap.Modal(document.getElementById('template_modal'));
myModal.show();
}
function addHTMLInput(element)
function addHTMLInput(element = null, data = null)
{
const container = document.getElementById('dynamic-form-container');
const newRow = document.createElement('div');
newRow.className = 'form-row dynamic-form-row';
newRow.innerHTML = `
<div class="form-group col-md-5">
<label for="header_name">Header Name<span class="text-danger">*</span></label>
<input class="form-control" type="text" name="header_name[]">
<label for="excel_column_name">Header Name<span class="text-danger">*</span></label>
<input id="excel_column_name" value="${data !== null && data !== undefined && data !== '' ? data.column_name : ''}" class="form-control" type="text" name="excel_column_name[]" placeholder="Excel Header Column Name">
</div>
<div class="form-group col-md-5">
<label for="policy_id">DataBase Column Name<span class="text-danger">*</span></label>
<select class="form-control" name="db_column_name[]" required>
<option selected>Select Client Policy</option>
<label for="db_column_name">DataBase Column Name<span class="text-danger"></span></label>
<select class="form-control db-column-name-select" name="db_column_name[]" onchange="checkForDuplicates(this)">
<option value="" selected >Select</option>
<?php if (!empty($db_column_name)){ ?>
<?php foreach ($db_column_name as $key => $value) { ?>
<option value="<?= $value ?>"><?= $key ?></option>
@ -337,12 +475,205 @@ aria-hidden="true" aria-modal="true" data-backdrop="static" style="padding-right
</div>
`;
container.appendChild(newRow);
if (data !== null && data.db_column_name !== undefined) {
const selectElement = newRow.querySelector('.db-column-name-select');
selectElement.value = data.db_column_name;
}
}
// function removeHTMLInput(element)
// {
// const row = element.closest('.dynamic-form-row');
// row.remove();
// }
function removeHTMLInput(element)
{
const row = element.closest('.dynamic-form-row');
row.remove();
const container = document.getElementById('dynamic-form-container');
const rows = container.querySelectorAll('.dynamic-form-row');
if (rows.length > 1) {
const row = element.closest('.dynamic-form-row');
row.remove();
}
}
function createFormArray()
{
var formArray = [];
try {
var columnNames = $('input[name="excel_column_name[]"]');
var dbColumnNames = $('select[name="db_column_name[]"]');
// Check if both arrays are of the same length
if (columnNames.length !== dbColumnNames.length) {
throw new Error('Mismatch between the number of column names and database column names.');
}
// Iterate over the column names and build the formArray
columnNames.each(function(index) {
var columnName = $(this).val();
var dbColumnName = dbColumnNames.eq(index).val() ?? null;
// if (!columnName) {
// throw new Error(`Column name at index ${index} is empty.`);
// }
// if (!dbColumnName) {
// throw new Error(`Database column name at index ${index} is empty.`);
// }
var columnObj = {
'column_index': index,
'column_name': columnName,
'db_column_name': dbColumnName
};
formArray.push(columnObj);
});
console.log('Form array successfully created:', formArray);
var jsonString = JSON.stringify(formArray);
console.log('Form array successfully created: jsonString', jsonString);
return jsonString;
} catch (error) {
console.error('Error creating form array:', error.message);
// Optionally, display an error message to the user
alert('An error occurred while processing the form: ' + error.message);
return null; // Return null to indicate that an error occurred
}
}
function editJSONExportTemplate(input, id)
{
console.log(id);
$('#template_id').val(id);
$('#myCenterModalLabel').text('Edit Template');
var url = '<?php echo base_url('util/get_single_excel_template/'); ?>' + id;
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$.ajax({
url: url,
type: "GET",
dataType: 'json',
success: function(res) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log('editJSONExportTemplate response', res)
$('#policy_type').val(res.data.policy_type_id);
$('#event').val(res.data.event_name);
// console.log(res.data.jsoncolumns);
var data = JSON.parse(res.data.jsoncolumns)
// console.log(JSON.parse(res.data.jsoncolumns));
$('#dynamic-form-container').empty();
$.each(data, function(index, item) {
addHTMLInput(null, item)
});
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}
});
var myModal = new bootstrap.Modal(document.getElementById('template_modal'));
myModal.show();
}
function checkForDuplicates(selectElement)
{
const selectedValue = selectElement.value;
const selects = document.querySelectorAll('#dynamic-form-container .db-column-name-select');
let isDuplicate = false;
selects.forEach(select => {
if (select !== selectElement && select.value === selectedValue) {
isDuplicate = true;
}
});
if (isDuplicate) {
toastr.warning('This value is already selected in another dropdown.', 'Warning');
selectElement.value = '';
}
}
$('.close').click(function()
{
$('#dynamic-form-container').empty();
$('#policy_type').val('');
$('#event').val('').change();
$('#excel_column_name').val('');
$('#template_id').val('')
});
function dublicateTemplate()
{
var template_id = $('#template_id_for_duplicate').attr('data-id');
var event_name = $('#event_name_for_duplicate').val();
console.log('template_id_for_duplicate', template_id)
console.log('event_name_for_duplicate', event_name)
if(event_name == ""){
Swal.fire({
title: "warning!",
text: 'Please select the Event',
icon: "warning"
});
return false
}
var url = '<?= base_url('util/dublicate_template/') ?>' + template_id + '/' + event_name
$.ajax({
url: url,
type: "GET",
dataType: 'json',
success: function(res) {
console.log('dublicateTemplate response', res)
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
if(res.status == false){
toastr.error(res.message, 'ERROR');
}else{
toastr.success(res.message, 'SUCCESS');
}
window.location.reload(true);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}
});
}
</script>

View File

@ -509,7 +509,6 @@
$('#gpa_client_policy_id').val(client_policy_id);
var gpa_policy_type_id = $(this).attr('id');
// console.log('gpa_policy_type_id', gpa_policy_type_id)
@ -589,8 +588,9 @@
});
let jsonObject = JSON.parse(res.data);
$("#numberToWordSumInsured").text(convertCommaNumberToWords(jsonObject.sumInsured2));
$("#numberToWordTotalSumInsured").text(convertCommaNumberToWords(jsonObject.totalSumInsured));
$("#numberToWordSumInsured").text(convertCommaNumberToWords(jsonObject.sumInsured2) ?? '' );
$("#numberToWordTotalSumInsured").text(convertCommaNumberToWords(jsonObject.totalSumInsured) ?? '');
if (jsonObject.compassionateVisitExpenses == '1') {
var element = $('input[name="compassionateVisitExpenses"]').parent().parent().next()[0];
$(element).css("display", "");
@ -615,6 +615,10 @@
Object.keys(jsonObject).forEach(function(key) {
console.log('jsonObject key', key)
console.log('jsonObject value', jsonObject[key])
console.log('jsonObject value type',typeof jsonObject[key])
let elements = document.getElementsByName(key);
if (elements && elements.length > 0) {
let element = elements[0];
@ -625,15 +629,14 @@
element.checked = jsonObject[key] === '1';
} else if (element.type === 'radio') {
element.checked = element.value === jsonObject[key];
}
} else {
if(jsonObject[key] == undefined){
if(jsonObject[key] == undefined || jsonObject[key] == ''){
element.value = " ";
}else{
element.value = jsonObject[key];
element.value = jsonObject[key] ?? '';
}
}
}
@ -788,9 +791,11 @@
});
function appendGPASIAddMore(data = null){
function appendGPASIAddMore(data = null)
{
console.log('function called')
console.log('appendGPASIAddMore function called')
console.log('appendGPASIAddMore function data', data)
var html = `
<div class="row" style="margin-bottom: 10px;">

File diff suppressed because it is too large Load Diff

View File

@ -140,6 +140,10 @@ function copyHeaders(unique_id) {
var client_units = localStorage.getItem('client_units');
client_units = JSON.parse(client_units);
console.log('copyHeaders function client_units', client_units);
console.log('copyHeaders function client_units.length', client_units.length)
let formatType = $('#grid').val();
var secondKey = $('#si_or_bp').val();
var obj = $('#grid');
@ -183,14 +187,21 @@ function copyHeaders(unique_id) {
}
var headerString = Object.values(excel_headers[formatType]).join("\t"); // Using specified format type for copying headers
console.log('copyHeaders function default headerString', headerString)
if (formatType == 1) {
if(client_units.length = 1){
console.log('copyHeaders function formatType 1', formatType)
if(client_units.length == 1){
console.log('copyHeaders function client_units.length', client_units.length)
delete excel_headers[formatType][secondKey].unit;
}
var headerString = Object.values(excel_headers[formatType][secondKey]).join("\t"); // Using specified format type for copying headers
}
console.log('headerString', headerString);
console.log('copyHeaders function converted headerString', headerString);
//console.log('headerString', headerString);
@ -209,7 +220,7 @@ function generateTable(unique_id) {
var data = $('#copied_excel_data').val();
let formatType = $('#grid').val();
var obj = $('#grid');
var secondKey = $('#si_or_bp').val();
var secondKey = $('#si_or_bp').val() ?? '';
if (unique_id != 'na') {
data = $('#copied_excel_data_'+unique_id).val();
@ -217,10 +228,12 @@ function generateTable(unique_id) {
obj = $('#grid_'+unique_id);
}
// console.log('generateTable obj', obj);
// console.log('generateTable formatType', formatType);
// console.log('generateTable data', data);
// console.log('generateTable secondKey', secondKey);
console.log('generateTable obj', obj);
console.log('generateTable formatType', formatType);
console.log('generateTable data');
console.log(data)
console.log('generateTable secondKey', secondKey);
console.log('generateTable client_units', client_units);
if (!formatType || formatType == "") {
$('.excel_table_class').empty();
@ -251,7 +264,6 @@ function generateTable(unique_id) {
var header = rows[0].split("\t");
console
// Determine the columns to keep (non-empty columns)
var columnsToKeep = [];
@ -276,14 +288,20 @@ function generateTable(unique_id) {
if (formatType == 1) {
//console.log('si_or_bp secondKey', secondKey)
console.log('si_or_bp secondKey', secondKey)
expectedHeader = Object.keys(excel_headers[formatType][secondKey]);
}
// console.log('expectedHeader', expectedHeader);
// console.log('HEADERS' , JSON.stringify(header))
// console.log('Excepted HEADERS' , JSON.stringify(expectedHeader))
// remove unit key from the array, if the client unit is one
if (client_units.length === 1) {
expectedHeader = expectedHeader.filter(key => key !== 'unit');
}
console.log('expectedHeader', expectedHeader);
console.log('HEADERS' , JSON.stringify(header));
console.log('Excepted HEADERS' , JSON.stringify(expectedHeader));
console.log('secondKey' , secondKey);
if (secondKey != 2 && secondKey != undefined) {
@ -291,9 +309,19 @@ function generateTable(unique_id) {
console.log(expectedHeader);
console.log(excel_headers[formatType]);
if (JSON.stringify(header) !== JSON.stringify(expectedHeader)) {
const expectedHeaders = JSON.stringify(Object.values(excel_headers[formatType][secondKey]));
var expectedHeaders;
if (formatType == 1 ) {
expectedHeaders = JSON.stringify(Object.values(excel_headers[formatType][secondKey]));
} else {
expectedHeaders = JSON.stringify(Object.values(excel_headers[formatType]));
}
const receivedHeaders = JSON.stringify(columnsToKeep.map(i => rows[0].split("\t")[i]));
console.log('receivedHeaders', receivedHeaders);
Swal.fire({
title: "Header Mismatch",
html: `
@ -459,7 +487,7 @@ function generateTable(unique_id) {
}
if(secondKey != 2){
if(secondKey != 2 && secondKey != undefined){
console.log(secondKey)
if ($('.duplicate').length > 0) {
//console.log('test');
@ -475,12 +503,15 @@ function generateTable(unique_id) {
$('.excel_table_class').empty();
$('.excel_textarea').val('');
}
submitData(unique_id);
submitData(unique_id, client_units);
$('.excel_textarea').val('');
}
function submitData(unique_id)
function submitData(unique_id, client_units)
{
console.log('submitData function unique id', unique_id);
console.log('submitData function client_units', client_units);
console.log('submitData function client_units first index', client_units[0]);
let formatType = $('#grid').val();
var table = $('#excel_table table');
@ -494,7 +525,6 @@ function submitData(unique_id)
var gpa_sum_multiplier = $('#gpa_sum_multiplier').val();
if (unique_id != 'na') {
formatType = $('#grid_'+unique_id).val();
table = $('#excel_table_'+unique_id+' table');
@ -552,12 +582,24 @@ function submitData(unique_id)
delete obj.band_or_grade;
}
if (client_units.length == 1) {
if (!('unit' in obj)) {
obj.unit = client_units[0];
}
}
if (formatType == 1) {
if (si_or_bp == 1) {
obj.si_or_bp = si_or_bp;
obj.multiplier = gpa_sum_multiplier ? gpa_sum_multiplier : 0;
if( obj.multiplier == 0){
obj.premium = 0;
}else{
obj.premium = obj.si * obj.multiplier / 1000
}
} else if (si_or_bp == 2) {
@ -571,6 +613,11 @@ function submitData(unique_id)
obj.si_or_bp = si_or_bp;
obj.multiplier = gpa_sum_multiplier2 ? gpa_sum_multiplier2 : 0;
if( obj.multiplier == 0){
obj.premium = 0;
}else{
obj.premium = obj.si * obj.multiplier / 1000
}
}
}
});
@ -580,7 +627,7 @@ function submitData(unique_id)
if (unique_id != 'na') {
$('#grid_content_input_'+unique_id).empty()
$('#grid_content_input_for_additional_'+unique_id).empty()
if ($('#copyfromexcel_'+unique_id).text() == "Manual entry") {
$('#copyfromexcel_'+unique_id).text("Copy from excel")
@ -588,7 +635,7 @@ function submitData(unique_id)
$('#copyfromexcel_'+unique_id).text("Copy from excel");
}
$('#grid_content_input_'+unique_id).toggle();
$('#grid_content_input_for_additional_'+unique_id).toggle();
$('#grid_content_from_excel_'+unique_id).toggle();
} else {
@ -610,14 +657,14 @@ function submitData(unique_id)
unique_id = null;
}
if (formatType == 1 || formatType == 2 || formatType == 4 || formatType == 6) {
if (formatType == 1 || formatType == 2 || formatType == 4 || formatType == 6 || formatType == 9) {
var FirstIndex = jsonData[0]
addGridHTML(false, FirstIndex, formatType, si_or_bp, unique_id)
addGridHTML(false, FirstIndex, formatType, si_or_bp, unique_id);
jsonData.shift();
}
$.each(jsonData, function(index, item) {
appendGridtHtml(formatType, unique_id, item)
appendGridtHtml(formatType, unique_id, item);
});
$('input[name="11_max_si[]"]').each(function() {
@ -654,6 +701,42 @@ function submitData(unique_id)
$(this).trigger('change').keyup();
});
$(`input[name="gpa_sum_si2[]"]`).each(function() {
// //console.log($(this));
$(this).trigger('keyup');
$(this).trigger('change').keyup();
});
$(`input[name="gpa_sum_si[]"]`).each(function() {
// //console.log($(this));
$(this).trigger('keyup');
$(this).trigger('change').keyup();
});
$(`input[name="gpa_premium"]`).each(function() {
// //console.log($(this));
$(this).trigger('keyup');
$(this).trigger('change').keyup();
});
$(`input[name="gpa_si"]`).each(function() {
// //console.log($(this));
$(this).trigger('keyup');
$(this).trigger('change').keyup();
});
$(`input[name="gpa_premium29[]"]`).each(function() {
// //console.log($(this));
$(this).trigger('keyup');
$(this).trigger('change').keyup();
});
$(`input[name="gpa_si29[]"]`).each(function() {
// //console.log($(this));
$(this).trigger('keyup');
$(this).trigger('change').keyup();
});
}