From fa240a71e736b8bdd19af4d79e897d92bd08903e Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Sat, 1 Nov 2025 10:33:08 +0530 Subject: [PATCH 01/52] FIX_MUTIEVENT_AND_CHANGE_INSURER_FILTER --- app/Controllers/ClientController.php | 4 +- .../EmployeeMultiEventServiceController.php | 80 ++++++++++++++----- app/Views/client_policy.php | 13 ++- app/Views/layout/footer.php | 55 +++++++++++++ .../policy_transaction_inception_form.php | 39 +++++++-- 5 files changed, 160 insertions(+), 31 deletions(-) diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index ed26bc95..5b091387 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -5680,8 +5680,8 @@ class ClientController extends AdminController $EmployeeMultiEventServiceController = new EmployeeMultiEventServiceController(); // $res = $EmployeeMultiEventServiceController->constructMultiEventData(['file_id' => '1069']); - // $res = $EmployeeMultiEventServiceController->excelMultieventFileFormateValidation(['file_id' => '1084']); - // $res = $EmployeeMultiEventServiceController->excelMultieventFileDataValidation(['file_id' => '1069']); + // $res = $EmployeeMultiEventServiceController->excelMultieventFileFormateValidation(['file_id' => '2373']); + // $res = $EmployeeMultiEventServiceController->excelMultieventFileDataValidation(['file_id' => '2373']); // $res = $EmployeeMultiEventServiceController->excelMultieventFileOnBoard(['file_id' => '1069']); // dd($res); diff --git a/app/Controllers/EmployeeMultiEventServiceController.php b/app/Controllers/EmployeeMultiEventServiceController.php index 78216f37..782a189b 100644 --- a/app/Controllers/EmployeeMultiEventServiceController.php +++ b/app/Controllers/EmployeeMultiEventServiceController.php @@ -1015,6 +1015,7 @@ class EmployeeMultiEventServiceController extends BaseController public function excelMultieventFileFormateValidation($params) { + $this->myLogger->logme('error', 'Excel Multievent File Formate Validation function START: ' . json_encode(['params' => $params])); helper('excel_util_helper'); $file_id = $params['file_id']; $file = $this->fileModel->find($file_id); @@ -1092,51 +1093,59 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "inception"; $params["file_path"] = $file_paths['inception']; $error[] = $this->excelFileFormatValidation($params); + $this->myLogger->logme('error', 'Inception file formate validation result: ' . json_encode(['params' => $params])); if (isset($error['error_data']) && count($error['error_data']) == 0) { $error[] = $this->compareMemberDataAndInceptionData($params); + $this->myLogger->logme('error', 'compare Member Data And Inception Data file validation result: ' . json_encode(['params' => $params])); } } //addition if(isset($file_paths['addition']) && $file_paths['addition'] != "" && $file_paths['addition'] != null){ - $params["action"] = "addition"; - $params["file_path"] = $file_paths['addition']; - $error[] = $this->excelFileFormatValidation($params); + $params["action"] = "addition"; + $params["file_path"] = $file_paths['addition']; + $error[] = $this->excelFileFormatValidation($params); + $this->myLogger->logme('error', 'Addition file formate validation result: ' . json_encode(['params' => $params])); } //dependent_addition if(isset($file_paths['dependent_addition']) && $file_paths['dependent_addition'] != "" && $file_paths['dependent_addition'] != null){ - $params["action"] = "dependent_addition"; - $params["file_path"] = $file_paths['dependent_addition']; - $error[] = $this->excelFileFormatValidation($params); + $params["action"] = "dependent_addition"; + $params["file_path"] = $file_paths['dependent_addition']; + $error[] = $this->excelFileFormatValidation($params); + $this->myLogger->logme('error', 'Dependent Addition file formate validation result: ' . json_encode(['params' => $params])); } //deletion if(isset($file_paths['deletion']) && $file_paths['deletion'] != "" && $file_paths['deletion'] != null){ - $params["action"] = "deletion"; - $params["file_path"] = $file_paths['deletion']; - $error[] = $this->excelFileFormatValidation($params); + $params["action"] = "deletion"; + $params["file_path"] = $file_paths['deletion']; + $error[] = $this->excelFileFormatValidation($params); + $this->myLogger->logme('error', 'Deletion file formate validation result: ' . json_encode(['params' => $params])); } //correction if(isset($file_paths['correction']) && $file_paths['correction'] != "" && $file_paths['correction'] != null){ - $params["action"] = "correction"; - $params["file_path"] = $file_paths['correction']; - $error[] = $this->excelFileFormatValidation($params); + $params["action"] = "correction"; + $params["file_path"] = $file_paths['correction']; + $error[] = $this->excelFileFormatValidation($params); + $this->myLogger->logme('error', 'Correction file formate validation result: ' . json_encode(['params' => $params])); } //si_enhancement if(isset($file_paths['si_enhancement']) && $file_paths['si_enhancement'] != "" && $file_paths['si_enhancement'] != null){ - $params["action"] = "si_enhancement"; - $params["file_path"] = $file_paths['si_enhancement']; - $error[] = $this->excelFileFormatValidation($params); + $params["action"] = "si_enhancement"; + $params["file_path"] = $file_paths['si_enhancement']; + $error[] = $this->excelFileFormatValidation($params); + $this->myLogger->logme('error', 'SI Enhancement file formate validation result: ' . json_encode(['params' => $params])); } //missed_inception if(isset($file_paths['missed_inception']) && $file_paths['missed_inception'] != "" && $file_paths['missed_inception'] != null){ - $params["action"] = "missed_inception"; - $params["file_path"] = $file_paths['missed_inception']; - $error[] = $this->excelFileFormatValidation($params); + $params["action"] = "missed_inception"; + $params["file_path"] = $file_paths['missed_inception']; + $error[] = $this->excelFileFormatValidation($params); + $this->myLogger->logme('error', 'Missed Inception file formate validation result: ' . json_encode(['params' => $params])); } $error_type = 1; @@ -1145,6 +1154,7 @@ class EmployeeMultiEventServiceController extends BaseController if (isset($error['error_data']) && count($error['error_data']) == 0) { $r = Jobs::addJob(['job_name' => 'excelMultieventFileDataValidation', 'payload' => $params]); + $this->myLogger->logme('error', 'excelMultieventFileDataValidation job pushed'); } else { // $error['error_summary'] = array_count_values($error['error_summary']); @@ -1160,12 +1170,16 @@ class EmployeeMultiEventServiceController extends BaseController $this->unlinkFiles($file_paths); } + $this->myLogger->logme('error', 'Excel Multievent File Formate Validation function END'); + return ($error); } public function excelMultieventFileDataValidation($params) { + $this->myLogger->logme('error', 'Excel Multievent File Data Validation function START: ' . json_encode(['params' => $params])); + helper('excel_util_helper'); $file_id = $params['file_id']; $file = $this->fileModel->find($file_id); @@ -1195,6 +1209,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "inception"; $params["file_path"] = $file_paths['inception']; $error[] = $this->excelFileDataValidation($params); + $this->myLogger->logme('error', 'Inception file Data validation result: ' . json_encode(['params' => $params])); } //addition @@ -1202,6 +1217,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "addition"; $params["file_path"] = $file_paths['addition']; $error[] = $this->excelFileDataValidation($params); + $this->myLogger->logme('error', 'Addition file validation result: ' . json_encode(['params' => $params])); } //dependent_addition @@ -1209,6 +1225,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "dependent_addition"; $params["file_path"] = $file_paths['dependent_addition']; $error[] = $this->excelFileDataValidation($params); + $this->myLogger->logme('error', 'Dependent Addition file Data validation result: ' . json_encode(['params' => $params])); } //deletion @@ -1216,6 +1233,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "deletion"; $params["file_path"] = $file_paths['deletion']; $error[] = $this->excelFileDataValidation($params); + $this->myLogger->logme('error', 'Deletion file Data validation result: ' . json_encode(['params' => $params])); } //correction @@ -1223,6 +1241,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "correction"; $params["file_path"] = $file_paths['correction']; $error[] = $this->excelFileDataValidation($params); + $this->myLogger->logme('error', 'Correction file Data validation result: ' . json_encode(['params' => $params])); } //si_enhancement @@ -1230,6 +1249,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "si_enhancement"; $params["file_path"] = $file_paths['si_enhancement']; $error[] = $this->excelFileDataValidation($params); + $this->myLogger->logme('error', 'SI Enhancement file Data validation result: ' . json_encode(['params' => $params])); } //missed_inception @@ -1237,6 +1257,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "missed_inception"; $params["file_path"] = $file_paths['missed_inception']; $error[] = $this->excelFileDataValidation($params); + $this->myLogger->logme('error', 'Missed Inception file Data validation result: ' . json_encode(['params' => $params])); } $error_type = 2; @@ -1245,6 +1266,7 @@ class EmployeeMultiEventServiceController extends BaseController if (isset($error['error_data']) && count($error['error_data']) == 0) { $r = Jobs::addJob(['job_name' => 'excelMultieventFileOnBoard', 'payload' => $params]); + $this->myLogger->logme('error', 'excelMultieventFileOnBoard job pushed'); } else { // $error['error_summary'] = array_count_values($error['error_summary']); @@ -1257,11 +1279,15 @@ class EmployeeMultiEventServiceController extends BaseController $this->setPullNotification($this->getFileMetaDataByFileId($file_id, 'failure')); } + $this->myLogger->logme('error', 'Excel Multievent File Data Validation function END'); + return ($error); } public function excelMultieventFileOnBoard($params) { + $this->myLogger->logme('error', 'Excel Multievent File Onboard function START: ' . json_encode(['params' => $params])); + helper('excel_util_helper'); $file_id = $params['file_id']; @@ -1291,6 +1317,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "inception"; $params["file_path"] = $file_paths['inception']; $error['inception'] = $this->employeesOnboardPreprocess($params); + $this->myLogger->logme('error', 'Inception file Onboard Process result: ' . json_encode(['params' => $params])); } //addition @@ -1298,6 +1325,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "addition"; $params["file_path"] = $file_paths['addition']; $error['addition'] = $this->employeesOnboardPreprocess($params); + $this->myLogger->logme('error', 'Addition file Onboard Process result: ' . json_encode(['params' => $params])); } //dependent_addition @@ -1305,6 +1333,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "dependent_addition"; $params["file_path"] = $file_paths['dependent_addition']; $error['dependent_addition'] = $this->employeesOnboardPreprocess($params); + $this->myLogger->logme('error', 'Dependent Addition file Onboard Process result: ' . json_encode(['params' => $params])); } //missed_inception @@ -1312,6 +1341,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "missed_inception"; $params["file_path"] = $file_paths['missed_inception']; $error['missed_inception'] = $this->employeesOnboardPreprocess($params); + $this->myLogger->logme('error', 'Missed Inception file Onboard Process result: ' . json_encode(['params' => $params])); } //deletion @@ -1319,6 +1349,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "deletion"; $params["file_path"] = $file_paths['deletion']; $error['deletion'] = $this->employeeDisembark($params); + $this->myLogger->logme('error', 'Deletion file Onboard Process result: ' . json_encode(['params' => $params])); } //correction @@ -1326,6 +1357,7 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "correction"; $params["file_path"] = $file_paths['correction']; $error['correction'] = $this->employeesCorrectionProcess($params); + $this->myLogger->logme('error', 'Correction file Onboard Process result: ' . json_encode(['params' => $params])); } //si_enhancement @@ -1333,11 +1365,13 @@ class EmployeeMultiEventServiceController extends BaseController $params["action"] = "si_enhancement"; $params["file_path"] = $file_paths['si_enhancement']; $error['si_enhancement'] = $this->employeesSIEnhanceProcess($params); + $this->myLogger->logme('error', 'SI Enhancement file Onboard Process result: ' . json_encode(['params' => $params])); } $this->fileModel->where('id', $file_id)->set(['status' => 'success', 'reason' => ''])->update(); $this->myLogger->logme("error", $file['action'].': {file_id} uploaded success', ['file_id' => $file_id]); $this->setPullNotification($this->getFileMetaDataByFileId($file_id, 'success')); + $this->myLogger->logme('error', 'Excel Multievent File Onboard function END'); //After insert the success than remove the TEMP JSON files // $this->unlinkFiles($params['multi_event_file_paths']); @@ -2912,9 +2946,13 @@ class EmployeeMultiEventServiceController extends BaseController // Save JSON file in writable/tmp/ $savedFiles = []; foreach ($finalData as $key => $data) { - $filePath = WRITEPATH . 'tmp/' . $key . '_' . time() . '.json'; - file_put_contents($filePath, json_encode($data, JSON_PRETTY_PRINT)); - $savedFiles[$key] = $filePath; + if(!empty($data)){ + $filePath = WRITEPATH . 'tmp/' . $key . '_' . time() . '.json'; + file_put_contents($filePath, json_encode($data, JSON_PRETTY_PRINT)); + $savedFiles[$key] = $filePath; + }else{ + $savedFiles[$key] = ""; + } } return $savedFiles; diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php index 080c1e87..7d4c6f17 100755 --- a/app/Views/client_policy.php +++ b/app/Views/client_policy.php @@ -345,7 +345,8 @@ input:checked + .slider_blue::before { - + + diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index 75a0376d..41df9fe9 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -1339,6 +1339,7 @@ let isVehicleFormSubmitting = false; var insurer_count_array = []; var redirect_url = ''; + let insurer_data = ; $(document).ready(function(){ @@ -1668,6 +1669,19 @@ var value = $(this).val(); var selectedOption = $(this).find('option:selected'); + let category = insurer_category[value] ?? null; + console.log('insurer_category', category); + // console.log('insurer_data', insurer_data); + + // loop through all select fields + $('[name="follow_insurer_id[]"]').each(function () { + let select = $(this); + if(select){ + appendInsurerByCategory(insurer_data, select, category); + } + }); + + var ebp = selectedOption.data('ebp'); var etp = selectedOption.data('etp'); var etep = selectedOption.data('etep'); @@ -1924,17 +1938,19 @@ let insurer = $(this).val(); let unique_id = $(this).data('count'); let client_id = $('#client_id').val(); + let policy_type_id = $('#policy_type_id').val(); console.log('insurer', insurer); + console.log('policy_type_id', policy_type_id); console.log('follow_insurer_id client_id', client_id); console.log('follow_insurer_id unique_id', unique_id); $('#insurer_id').val(insurer) - if(!client_id){ - $(this).val('').select2(); - toastr.warning('Please select the Client', 'WARNING'); - } + if (!policy_type_id || !client_id) { + $(this).val('').select2(); + toastr.warning(!policy_type_id ? 'Please select the Policy Type' : 'Please select the Client', 'WARNING'); + } }); @@ -4379,7 +4395,7 @@ - @@ -4620,7 +4636,16 @@ $(this).append(newCell); - $('#follow_insurer_id_' + insurerCount).select2() + let select = $('#follow_insurer_id_' + insurerCount); + let add_insurer_policy_type_id = $('#policy_type_id').val(); + let category = insurer_category[add_insurer_policy_type_id] ?? null; + + if(select && category){ + appendInsurerByCategory(insurer_data, select, category); + } + + $('#follow_insurer_id_' + insurerCount).select2(); + var selectedOption = $('#policy_type_id').find('option:selected'); From 8dbed405446645835877fb892c854feecf178478 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Sat, 1 Nov 2025 11:21:49 +0530 Subject: [PATCH 02/52] CHANGE_bds_issue-final-fix-7 - VADIVEL J 2025-11-01 11:21 --- app/Models/PolicyTransactionModel.php | 2 ++ app/Views/report_bds_filter.php | 7 ++++++- app/Views/report_bds_new.php | 18 +++--------------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php index 4882bd8a..c62fa4cc 100644 --- a/app/Models/PolicyTransactionModel.php +++ b/app/Models/PolicyTransactionModel.php @@ -2191,6 +2191,8 @@ ->where('policy_transaction.is_active', 1) ->where('pt_co_share_details.is_active', 1) + ->where('co_share_stmt_details.is_active', 1) + ->where('insurer_statements_oq.is_active', 1) ->where('insurer_statements_oq.id IS NOT NULL') diff --git a/app/Views/report_bds_filter.php b/app/Views/report_bds_filter.php index fd8be988..6ee3280b 100644 --- a/app/Views/report_bds_filter.php +++ b/app/Views/report_bds_filter.php @@ -147,7 +147,12 @@
- + +
diff --git a/app/Views/report_bds_new.php b/app/Views/report_bds_new.php index 4f02d0e6..474f92f1 100644 --- a/app/Views/report_bds_new.php +++ b/app/Views/report_bds_new.php @@ -159,26 +159,14 @@ $uniqueAgreedAmountPerInsurer = "$policy_no-$policy_type-$client_name-$insurer_branch_name" ; - $pastMonth = explode("-",$uniqueRecord )[1] ; - $currentMonth = $policy_updated_month ; - - $pastStatementStatus = explode("-",$uniqueRecord )[5] ; - $currentStatementStatus = $statement_status; - - if( - isset($uniquePoliciesReport[$uniqueRecord]) - && $pastStatementStatus == $currentStatementStatus - ){ - continue ; - }else{ if(isset($uniqueAgreedAmountList[$uniqueAgreedAmountPerInsurer]) ){ $uniqueAgreedAmountList[$uniqueAgreedAmountPerInsurer] -= $row['billed_amt']; - $row['total_irda_amt'] = $pastMonth == $currentMonth ? $row['total_irda_amt'] : 0 ; + $row['total_irda_amt'] = 0 ; $row['outstanding_amt'] = $uniqueAgreedAmountList[$uniqueAgreedAmountPerInsurer]; - $row['multiple_months'] = $pastMonth == $currentMonth ? false : true ; + $row['multiple_months'] = true ; } else{ $row['outstanding_amt'] = $row['total_irda_amt'] - $row['billed_amt']; @@ -189,7 +177,7 @@ $uniquePoliciesReport[$uniqueRecord] = $row; - } + From 82e24fe24839aeab765821b442716daeb3820e3d Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Sat, 1 Nov 2025 11:28:08 +0530 Subject: [PATCH 03/52] FIX_CORRECT_ENDO_ID_UPDATE --- app/Controllers/EmpDataServiceController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index b57ad0f0..6541e195 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -2541,7 +2541,8 @@ class EmpDataServiceController extends BaseController // dd($value[8]); $emp_details[] = array('id' => $result['emp_id'], $result['field_name'] => $value[8]); - $endorsement_details[] = array('group_key' => $result['group_key'], 'id' => $result['id'], 'endorsement_id' => $value[10], 'status' => 'complete'); + // $endorsement_details[] = array('group_key' => $result['group_key'], 'id' => $result['id'], 'endorsement_id' => $value[10], 'status' => 'complete'); + $endorsement_details[] = array('group_key' => $result['group_key'], 'endorsement_id' => $value[10], 'status' => 'complete'); } } From 604bd494bffda67731f65872ecd02107cbbac5b9 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Sat, 1 Nov 2025 12:05:15 +0530 Subject: [PATCH 04/52] CHANGE_bds_issue-final-fix-8 - VADIVEL J 2025-11-01 12:04 --- app/Controllers/PolicyTransactionController.php | 2 ++ app/Views/report_bds_filter.php | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index 2719ae7f..6e721f81 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -3283,6 +3283,8 @@ $where ?? '' ); + $data['list_new'] = true; + // 🧩 Load View $this->loadLayout('report_bds_filter', $data); } diff --git a/app/Views/report_bds_filter.php b/app/Views/report_bds_filter.php index 6ee3280b..bc5db80b 100644 --- a/app/Views/report_bds_filter.php +++ b/app/Views/report_bds_filter.php @@ -148,10 +148,11 @@
-
From ba2ac3f4b987c70230c65f6508f42fa96653845d Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Sat, 1 Nov 2025 12:43:13 +0530 Subject: [PATCH 05/52] CHANGE_CLAIM_FILE_UPLOAD_GET_DOC_NAME --- app/Controllers/EmployeeRestController.php | 6 ++++-- app/Helpers/utility_helper.php | 13 ++++++++----- app/Models/ClaimFilesModel.php | 3 ++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 83015c20..9b3a3b53 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -3471,6 +3471,7 @@ class EmployeeRestController extends AdminController $received_data = $this->request->getPost(); $this->myLogger->logme('error', 'API claim initiate Recevied Params :' . json_encode($received_data ?? [])); $get_file_data = $this->request->getFiles('claim_docs'); + $get_docs_name = $this->request->getPost('claim_doc_names') ?? []; // print_r($get_file_data); die; $employee_id = $received_data['emp_id']; $client_policy_id = $received_data['client_policy_id']; @@ -3479,7 +3480,7 @@ class EmployeeRestController extends AdminController $file_data = []; if(isset($get_file_data) && !empty($get_file_data)){ $file_path = WRITEPATH . 'uploads/claim_files/'; - $file_data = multi_file_Upload($get_file_data, $file_path); + $file_data = multi_file_Upload($get_file_data, $file_path, $get_docs_name); } @@ -3629,7 +3630,8 @@ class EmployeeRestController extends AdminController $data = [ 'ticket_id' => $ticket_id, - 'doc_name' => $value['file_name'], + 'doc_name' => $value['doc_name'], + 'file_name' => $value['file_name'], 'url' => $value['file_path'], 'file_type' => 2, 'ticket_message_id' => $ticket_message_id, diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php index 034de8ce..e42801b3 100755 --- a/app/Helpers/utility_helper.php +++ b/app/Helpers/utility_helper.php @@ -112,8 +112,9 @@ if (!function_exists('file_Upload_for_lead')) { // } // } +// function for only using in the Flutter Claim File Upload if (!function_exists('multi_file_Upload')) { - function multi_file_Upload($fileToUpload, $filepath) + function multi_file_Upload($fileToUpload, $filepath, $docs_name = []) { $uploadedFiles = []; @@ -123,13 +124,15 @@ if (!function_exists('multi_file_Upload')) { foreach ($files as $file) { // If file is itself an array (multiple under same input name) if (is_array($file)) { - foreach ($file as $f) { + foreach ($file as $index => $f) { if ($f !== null && $f->isValid() && !$f->hasMoved()) { - $fileName = $f->getRandomName(); // safer unique name - $f->move($filepath, $fileName); + $fileRandomName = $f->getRandomName(); // safer unique name + $f->move($filepath, $fileRandomName); + $fileName = $f->getName(); $uploadedFiles[] = [ 'file_name' => $fileName, - 'file_path' => $filepath . $fileName + 'doc_name' => $docs_name[$index] ?? $fileName, + 'file_path' => $filepath . $fileRandomName ]; } } diff --git a/app/Models/ClaimFilesModel.php b/app/Models/ClaimFilesModel.php index 8e22ae01..2d747e3d 100644 --- a/app/Models/ClaimFilesModel.php +++ b/app/Models/ClaimFilesModel.php @@ -19,7 +19,8 @@ class ClaimFilesModel extends Model 'updated_by', 'created_at', 'updated_at', - 'is_active' + 'is_active', + 'file_name', ]; // Callbacks From 44403126160132a15f992786c642b16dad441397 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Sat, 1 Nov 2025 15:08:34 +0530 Subject: [PATCH 06/52] CHANGE_CLAIM_FILE_UPLOAD --- app/Controllers/EmployeeRestController.php | 8 ++++++++ app/Controllers/TicketController.php | 6 +++++- app/Helpers/utility_helper.php | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 9b3a3b53..3e44328e 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -3472,6 +3472,14 @@ class EmployeeRestController extends AdminController $this->myLogger->logme('error', 'API claim initiate Recevied Params :' . json_encode($received_data ?? [])); $get_file_data = $this->request->getFiles('claim_docs'); $get_docs_name = $this->request->getPost('claim_doc_names') ?? []; + + if (is_string($get_docs_name)) { + $decoded = json_decode($get_docs_name, true); + $get_docs_name = json_last_error() === JSON_ERROR_NONE ? $decoded : []; + } elseif (!is_array($get_docs_name)) { + $get_docs_name = []; + } + // print_r($get_file_data); die; $employee_id = $received_data['emp_id']; $client_policy_id = $received_data['client_policy_id']; diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php index eb7e894b..f6a924c2 100644 --- a/app/Controllers/TicketController.php +++ b/app/Controllers/TicketController.php @@ -1281,8 +1281,12 @@ class TicketController extends BaseController // $actionType = $this->request->getGet(); $claimFiles = new ClaimFilesModel(); $file_data = $claimFiles->where('id', $claim_file_id)->first(); - $fileName = $file_data['doc_name']; + // $fileName = $file_data['doc_name']; + $url = $file_data['url']; + $parts = explode('/', $url); + $fileName = end($parts); + $filePath = WRITEPATH . '/uploads/claim_files/' . $fileName; try { diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php index e42801b3..8f976243 100755 --- a/app/Helpers/utility_helper.php +++ b/app/Helpers/utility_helper.php @@ -127,8 +127,8 @@ if (!function_exists('multi_file_Upload')) { foreach ($file as $index => $f) { if ($f !== null && $f->isValid() && !$f->hasMoved()) { $fileRandomName = $f->getRandomName(); // safer unique name - $f->move($filepath, $fileRandomName); $fileName = $f->getName(); + $f->move($filepath, $fileRandomName); $uploadedFiles[] = [ 'file_name' => $fileName, 'doc_name' => $docs_name[$index] ?? $fileName, From a5ee2c8d2bc15aba0bc3bc4ac834fdbf68625a53 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Sat, 1 Nov 2025 18:01:50 +0530 Subject: [PATCH 07/52] FIX_BDS_REPORT_CSV_ADD_BUSINESS_TYPE --- app/Views/report_bds.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/Views/report_bds.php b/app/Views/report_bds.php index 5a1786f4..198d203a 100644 --- a/app/Views/report_bds.php +++ b/app/Views/report_bds.php @@ -81,7 +81,7 @@ table.dataTable tbody td { S. No User Month - + Business Type Client Type Insured Name Policy/
Endorsement @@ -125,7 +125,7 @@ table.dataTable tbody td { ?>" class="mdi mdi-pencil" > - + @@ -279,9 +279,22 @@ $(document).ready(function() { text: ' CSV ', title: 'Policy-Tranction-BDS-List', exportOptions: { - columns: ':visible', // or specify exact columns [0,1,2,...] + columns: function (idx, data, node) { + return true; // ✅ include all columns (even hidden) + }, format: { body: function (data, row, column, node) { + + data = data.replace(/ /g, '').replace(/\s+/g, ' ').trim(); + + // If it's the first column (index 0), remove link and special chars + if (column === 0 || column === 20 || column === 11 ) { + // Remove all tags and their contents + data = data.replace(/]*>(.*?)<\/a>/gi, ''); + // Also remove other HTML tags and   + data = $('
').html(data).text().replace(/\u00a0/g, ' ').trim(); + } + // Force K and L columns to string if (column === 10 || column === 11) { // Option 1: prepend single quote From 0eb55b372c88721a21f11e8f0b6a1a0540bb7bd3 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Mon, 3 Nov 2025 10:56:01 +0530 Subject: [PATCH 08/52] CHANGE_mail_template_issue_fix - VADIVEL J 2025-11-01 10:55 --- app/Config/Routes.php | 3 +- app/Controllers/ClientController.php | 36 +++- app/Controllers/NotificationController.php | 59 +++++- app/Controllers/TestingController.php | 63 +++++- app/Helpers/sendMailNotification.php | 112 ++++++++++- app/Models/CommonEMailModel.php | 42 ++++ app/Views/notification.php | 223 +++++++++++++++++++-- 7 files changed, 511 insertions(+), 27 deletions(-) create mode 100644 app/Models/CommonEMailModel.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 54b05f32..0bc4cbf5 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -719,7 +719,8 @@ $routes->group('test', function($routes) { $routes->get('membervalidation', 'TestingController::membervalidation'); $routes->get('generateExcel', 'TestingController::generateExcel'); $routes->get('logo_renaming','TestingController::logo_renaming'); - // $routes->get('createDefaultMailTempalteInDB','TestingController::createDefaultMailTempalteInDB'); + // $routes->get('createDefaultMailTempalteInDB','TestingController::createDefaultMailTempalteInCrossDB'); + // $routes->get('createDefaultMailTempalteInSameDB','TestingController::createDefaultMailTempalteInSameDB'); }); $routes->cli('cli/testcli', 'TestingController::testcli'); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 5b091387..908a1ede 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -7745,6 +7745,10 @@ class ClientController extends AdminController $member_review_and_summary_mail_template = $this->notificationModel->where('client_id',NULL)->where('template_name','member_review_and_summary_mail')->get()->getResultArray()[0]??[]; + $member_ecard_mail_template = $this->notificationModel->where('client_id',NULL)->where('template_name','member_ecard_mail')->get()->getResultArray()[0]??[]; + + $member_common_mail_template = $this->notificationModel->where('client_id',NULL)->where('template_name','member_common_mail')->get()->getResultArray()[0]??[]; + $default_member_welcome_mail_template = [ 'client_id' => $client_id, 'template_name' => 'member_welcome_mail', @@ -7787,6 +7791,34 @@ class ClientController extends AdminController 'mail_content_copy'=> null ]; + $default_member_ecard_mail_template = [ + 'client_id' => $client_id, + 'template_name' => 'member_ecard_mail', + 'subject' => $member_ecard_mail_template['subject']??'', + 'mail_content' => $member_ecard_mail_template['mail_content']??'', + 'mail_content_json'=> $member_ecard_mail_template['mail_content_json']??'', + + 'created_by' => get_session_userid(), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_by' => null, + 'updated_at' => date('Y-m-d H:i:s'), + 'mail_content_copy'=> null + ]; + + $default_member_common_mail_template = [ + 'client_id' => $client_id, + 'template_name' => 'member_common_mail', + 'subject' => $member_common_mail_template['subject']??'', + 'mail_content' => $member_common_mail_template['mail_content']??'', + 'mail_content_json'=> $member_common_mail_template['mail_content_json']??'', + + 'created_by' => get_session_userid(), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_by' => null, + 'updated_at' => date('Y-m-d H:i:s'), + 'mail_content_copy'=> null + ]; + $this->myLogger->logme('error', 'Default Mail Template Data ' . json_encode([ $default_member_welcome_mail_template, $default_member_remainder_mail_template, @@ -7798,7 +7830,9 @@ class ClientController extends AdminController $default_templates_inserted = $this->notificationModel->insertBatch([ $default_member_welcome_mail_template, $default_member_remainder_mail_template, - $default_member_review_and_summary_mail_template + $default_member_review_and_summary_mail_template, + $default_member_ecard_mail_template, + $default_member_common_mail_template ]); diff --git a/app/Controllers/NotificationController.php b/app/Controllers/NotificationController.php index b497e958..64988466 100755 --- a/app/Controllers/NotificationController.php +++ b/app/Controllers/NotificationController.php @@ -3,6 +3,7 @@ // declare(strict_types=1); namespace App\Controllers; +use App\Models\CommonEMailModel; use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RequestInterface; @@ -28,13 +29,16 @@ class NotificationController extends AdminController protected $notificationModel; protected $clientModel; protected $MailAttachmentModel; + + protected $CommonEMailModel; public function __construct() { $this->myLogger = \Config\Services::mylogger(); $this->notificationModel = new NotificationModel(); $this->clientModel = new ClientModel(); - $this->MailAttachmentModel = new MailAttachmentModel(); + $this->MailAttachmentModel = new MailAttachmentModel(); + $this->CommonEMailModel = new CommonEMailModel(); } // This is for Template Name Camel Case to Snake Case for store in DB @@ -53,33 +57,80 @@ class NotificationController extends AdminController $form_data['mail_content'] = $this->request->getPost('mailContent'); $form_data['client_id'] = $this->request->getPost('client_id'); $form_data['mail_content_json'] = $this->request->getPost('mailJson'); + $form_data['email_list'] = $this->request->getPost('email_list'); $notificationModel = new NotificationModel(); $find_notification = $notificationModel->where('client_id',$form_data['client_id'])->where('template_name',$form_data['template_name'])->first(); if ($find_notification) { - $id = $find_notification['id']; + $id = $find_notification['id'] ?? ''; $form_data['updated_by'] = get_session_userid(); $notificationModel->update($id,$form_data); + $this->save_common_mail($id , $form_data); $complete = "Update"; }else{ $form_data['created_by'] = get_session_userid(); - $notificationModel->insert($form_data); + $id = $notificationModel->insert($form_data); + $this->save_common_mail($id , $form_data); $complete = "Inserted"; } return json_encode($complete); - + } + private function save_common_mail($id, $form_data) + { + + $this->logger->debug("step 1 - inside save common mail"); + + if (empty($form_data['email_list'])) { + return; + } + + + $this->logger->debug("step 2 - id and form_data are present"); + + $emails = array_map('trim', explode(',', $form_data['email_list'])); + + + $this->logger->debug("step 3 common emails were present"); + + $common_mail_data = []; + + foreach ($emails as $email) { + $common_mail_data[] = ['notification_id' => $id , 'email' => $email , 'is_active' => 1]; + } + + $this->logger->debug("step 4 common email data \n" . json_encode($common_mail_data)); + + + // Deactivate existing emails + $this->CommonEMailModel + ->where('notification_id', $id) + ->set(['is_active' => 0]) + ->update(); + + $this->logger->debug("step 5 deleted old common email data"); + + + + // Insert all at once + $this->CommonEMailModel->insertBatch($common_mail_data); + + $this->logger->debug("step 6 common mail data insertion done ..!!"); + + } + // This is for the Enabls in Notification area and Update the Recipient and HR Mail Id in( Enables -> Notification table and Mail id's -> Client table) public function update_enable() { $checkboxNames = [ 'member_welcome_mail_btn', + 'common_mail_btn', 'member_reminder_mail_btn', 'member_ecard_mail_btn', 'member_review_and_summary_mail_btn', diff --git a/app/Controllers/TestingController.php b/app/Controllers/TestingController.php index 98257f4e..75d4d578 100644 --- a/app/Controllers/TestingController.php +++ b/app/Controllers/TestingController.php @@ -869,7 +869,7 @@ class TestingController extends BaseController } - public function createDefaultMailTempalteInDB() + public function createDefaultMailTempalteInCrossDB() { $postDB = \Config\Database::connect(); // target DB $preDB = \Config\Database::connect('preDB'); // source DB @@ -920,7 +920,66 @@ class TestingController extends BaseController } - return $this->response->setJSON(['message'=>"Created Default Mail Tempalte In DB "])->setStatusCode(200); + return $this->response->setJSON(['message'=>"Created Default Mail Tempalte In Cross DB "])->setStatusCode(200); + } + + public function createDefaultMailTempalteInSameDB() + { + $postDB = \Config\Database::connect(); + + // Templates to copy + $templateNames = [ + 'member_welcome_mail', + 'member_reminder_mail', + 'member_review_and_summary_mail', + 'member_common_mail', + 'member_ecard_mail' + ]; + + + + + foreach ($templateNames as $template) { + + $exists = $postDB->table('notifications') + ->where('client_id', NULL) + ->where('template_name', $template) + ->countAllResults(); + + if ($exists > 0 ) { + continue; // Skip if already inserted + } + + // Fetch template from preDB + $templateData = $postDB->table('notifications') + + // this is where we want to replace 0 with the client id we want to replace + ->where('client_id', 0) + + // template_name from which you want to create a common template from templateNames array. + ->where('template_name', $template) + ->get() + ->getRowArray(); + + if (!empty($templateData)) { + + // Remove ID to avoid duplicate primary key issues + unset($templateData['id']); + + // Set created_by and timestamps if needed + $templateData['client_id'] = NULL; + $templateData['created_by'] = 1; + $templateData['cretaed_at'] = date('Y-m-d H:i:s'); + $templateData['updated_by'] = NULL; + $templateData['updated_at'] = NULL; + + // Insert into postDB + $postDB->table('notifications')->insert($templateData); + } + } + + + return $this->response->setJSON(['message'=>"Created Default Mail Tempalte In Same DB "])->setStatusCode(200); } diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php index a726fe16..4ac2580e 100755 --- a/app/Helpers/sendMailNotification.php +++ b/app/Helpers/sendMailNotification.php @@ -163,7 +163,62 @@ class sendMailNotification return $wholeData; - } else if($action == 'member_review_and_summary_mail'){ + } else if($action == 'member_common_mail'){ + + $notification = $params['notification']; + $get_emp_email_and_other_details = $params['get_emp_email_and_other_details']; + $rand_string = $params['rand_string']; + $client_data = $params['client_data']; + $tpa_id = $params['tpa_id']; + $common = $params['common']; + + + $mail_content = $notification['mail_content']; + $mail = $get_emp_email_and_other_details['email_corporate']; + $subject = $notification['subject']; + + $cleanedText = mb_convert_encoding($subject, 'UTF-8', 'UTF-8'); // Normalize encoding + $cleanedText = preg_replace('/[^\x20-\x7E]/', '', $cleanedText); + + $subject = $cleanedText; + + $link = generate_download_link($rand_string).'/1'; + + $app_link = $_ENV['App_Url']; + $name = $get_emp_email_and_other_details['name']; + $employee_mobile_no = $get_emp_email_and_other_details['mobile']; + $mail_content = $notification['mail_content']; + + $nhance_logo = $_ENV['NHANCE_LOGO']; + + $post_enrollment_app_link = $_ENV['POST_ENROLLMENT_APP_LINK']; + + $client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo']; + // $client_logo = $nhance_logo; + + $mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "Nhance Logo", $mail_content); + $mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "Client Logo", $mail_content); + + $mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name, $mail_content); + $mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $employee_mobile_no, $mail_content); + $mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content); + $mail_content = str_replace(["[[post_enrollment_app_link]]", "{{post_enrollment_app_link}}"], "Review Details", $mail_content); + // $mail_content = str_replace("[[tpa_id]]", $tpa_id, $mail_content); + $mail_content = str_replace(["[[ecard_download_link]]", "{{ecard_download_link}}"], "Download Insurance Card", $mail_content); + $mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content); + + $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); + + $data['params'] = $params;$data['client_logo'] = $client_logo; + $data['mail_content'] = $mail_content; + $mail_content = view('mail_template', $data); + + + $wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to'], 'common' => $common]; + + return $wholeData; + + }else if($action == 'member_review_and_summary_mail'){ $array_list = $params['array_list'];//employeee lst $client_policy_id = $params['client_policy_id']; @@ -1331,6 +1386,61 @@ class sendMailNotification return $wholeData; + }else if($action == 'member_common_mail'){ + + $notification = $params['notification_data']; + $client_data = $params['client_data']; + $mail = $params['test_mail']; + $mailAttachmentModel = new MailAttachmentModel(); + $attachment_data = $mailAttachmentModel + ->select('file_path, file_name') + ->where('notification_id', $notification['id']) + ->where('is_active', 1) + ->findAll(); + + $attachments = []; + foreach ($attachment_data as $data) { + $attachments[] = [ + "filePath" => WRITEPATH . $data['file_path'], + "fileName" => $data['file_name'] + ]; + } + + $mail_content = $notification['mail_content']; + $subject = $notification['subject']; + + $rand_string = 'HX3kUh'; + $link = generate_download_link($rand_string).'/1'; + + $name = 'John Doe'; + $mobile = 9080706050; + + $nhance_logo = $_ENV['NHANCE_LOGO']; + $app_link = $_ENV['App_Url']; + $post_enrollment_app_link = $_ENV['POST_ENROLLMENT_APP_LINK']; + + $client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo']; + + $mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "Nhance Logo", $mail_content); + $mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "Client Logo", $mail_content); + + $mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name, $mail_content); + $mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $mobile, $mail_content); + $mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content); + $mail_content = str_replace(["[[post_enrollment_app_link]]", "{{post_enrollment_app_link}}"], "Review Details", $mail_content); + $mail_content = str_replace(["[[ecard_download_link]]", "{{ecard_download_link}}"], "Download Insurance Card", $mail_content); + $mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content); + + $mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content); + + $data['params'] = $params;$data['client_logo'] = $client_logo; + $data['mail_content'] = $mail_content; + $mail_content = view('mail_template', $data); + + $wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails'],'attachments' => $attachments, 'reply_to' => $client_data['reply_to']]; + + return $wholeData; + } else if($action == 'member_review_and_summary_mail'){ $array_list = [ diff --git a/app/Models/CommonEMailModel.php b/app/Models/CommonEMailModel.php new file mode 100644 index 00000000..4b96f7ee --- /dev/null +++ b/app/Models/CommonEMailModel.php @@ -0,0 +1,42 @@ + -
- -
+ -
+
- +
+
@@ -246,7 +248,25 @@
+
+
+
+ + Common Mail +
+
+ + + +
+
+
+ +
- +
-
+ + + +
@@ -320,6 +342,107 @@ + + +