From 239c55a7e552500b989eea1041716aa1eee88725 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Tue, 13 May 2025 18:49:03 +0530 Subject: [PATCH] FEAT_GPA_AUTO_TSA_FIX_DEMOGRAPHY : RV --- app/Controllers/ClientController.php | 4 +- app/Controllers/EmployeeController.php | 2 + app/Controllers/LeadsController.php | 75 +++++++++++++++++++- app/Views/leads_form_handler.php | 9 ++- app/Views/view_rfq.php | 41 ++++++++++- public/sample_excel/Sample_Member_Data.xlsx | Bin 0 -> 19847 bytes public/sample_excel/enrollment.xlsx | Bin 7754 -> 89706 bytes 7 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 public/sample_excel/Sample_Member_Data.xlsx diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index a490bddc..9bf373ce 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -4685,7 +4685,7 @@ class ClientController extends AdminController // ------------- LEADS CONTROLLER ---------------------------------------------------------- - // $LeadsController = new LeadsController(); + $LeadsController = new LeadsController(); // $RFQModel = new RFQModel(); // $data = $RFQModel->where('is_active', 1)->where('lead_id', 40)->first(); @@ -4699,6 +4699,8 @@ class ClientController extends AdminController // $returndata = $LeadsController->convertQCRJsonToPolicyTerms($jsonArray, $policy_type, $proposel_name, $insurer_name); // dd($returndata); + $LeadsController->handleMemberDataGPATotalSumInsurerFromExcel(['lead_id' => 169]); + // -----------BDS REPORT CONTROLLER--------------------------------------------------------------------------------- // $BDSReportController = new BDSReportController(); diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index a11921fb..0bcc03c5 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -444,6 +444,8 @@ class EmployeeController extends AdminController $filePath = ROOTPATH . 'public/sample_excel/enrollment.xlsx'; }else if ($actionType == 'missed_inception') { $filePath = ROOTPATH . 'public/sample_excel/sample_inception.xls'; + }else if ($actionType == 'member_data') { + $filePath = ROOTPATH . 'public/sample_excel/Sample_Member_Data.xlsx'; } // Check if the file exists diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index b001edf1..199c8d3b 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -712,6 +712,12 @@ class LeadsController extends BaseController $subject = "{{CLIENT_NAME}} _ {{POLICY_TYPE}} _ {{RFQ_OR_QCR}} _ {{POLICY_YEAR}}"; } + if($lead_data['policy_type_id'] == 1){ + $data['totalSumAssured'] = $this->handleMemberDataGPATotalSumInsurerFromExcel(['lead_id' => $id]); + }else{ + $data['totalSumAssured'] = []; + } + $data['mail_content'] = $this->transformMailContent($lead_data, $mail_content, $data['page_name']); $data['subject'] = $this->transformMailContent($lead_data, $subject, $data['page_name']); @@ -1762,7 +1768,7 @@ class LeadsController extends BaseController ['file_path' => WRITEPATH . 'uploads/lead_files/' . $lead_data['file_name'], 'sheets' => [0, 1]], ['file_path' => WRITEPATH . '/uploads/lead_files/' . $result['filename'], 'sheets' => []], ]; - $outputPath = WRITEPATH . 'uploads/lead_files/Member_Data.xlsx'; + $outputPath = WRITEPATH . 'uploads/lead_files/' .$lead_data['file_name']; $result_merge = ExcelMergeHelper::mergeExcelFiles($filePaths, $outputPath); if ($result_merge) { // Call the delete function after the file is successfully created @@ -4077,4 +4083,71 @@ class LeadsController extends BaseController return $attachments; } + + public function handleMemberDataGPATotalSumInsurerFromExcel($params) + { + $lead_id = $params['lead_id']; + $lead_data = $this->leadsModel->find($lead_id); + // dd($lead_data); + $file_name_with_path = WRITEPATH . "/uploads/lead_files/" . $lead_data['file_name']; + // dd($file_name_with_path); + + if (!$lead_data) { + return ['status' => 'failed', 'message' => 'Lead data not found']; + } + + if ($lead_data['file_name']) { + + //check physical file + if (!file_exists($file_name_with_path)) { + + $message = "Lead Physcial file not found"; + $this->myLogger->logme('error', ($message . ' for file ' . $file_name_with_path)); + return ['status' => 'failed', 'message' => 'no physical file']; + } + + $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path); + + //get members data + $members_sheet = $spreadsheet->getSheet(0); + $highestRowAndColumn = $members_sheet->getHighestRowAndColumn(); + // dd($highestRowAndColumn); + + $uncleaned_members = $members_sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); + // dd($uncleaned_members); + + $members = ExcelSanitizeHelper::sanitizeArrayData($uncleaned_members); + // dd($members); + + + // Check column headings + $members_heading = $members[0]; + $available_col = []; + + $lower_headers = array_map('strtolower', $members_heading); + foreach ($lower_headers as $index => $header) { + if (preg_match('/^sa\s*-\s*option\s*\d*$/i', $header)) { + $column_name = $members_heading[$index]; + $sum = 0; + + for ($i = 1; $i < count($members); $i++) { + $cell_raw = $members[$i][$index] ?? ''; + $cell_clean = preg_replace('/[^0-9.\-]/', '', $cell_raw); // remove non-numeric chars + + if ($cell_clean !== '' && is_numeric($cell_clean)) { + $sum += (float) $cell_clean; + } + } + + $available_col[] = $sum; + } + } + + + // dd($available_col); + return $available_col; + } + + return []; + } } diff --git a/app/Views/leads_form_handler.php b/app/Views/leads_form_handler.php index c6f463df..363baef6 100644 --- a/app/Views/leads_form_handler.php +++ b/app/Views/leads_form_handler.php @@ -346,14 +346,21 @@ if (isset($selected_lead_type)) { let placeholder = isFirstField ? 'First file must be Demography.' : ''; let accept = isFirstField ? '.xls,.xlsx' : ''; + if(selected_lead_form_type != 1){ placeholder = ''; accept = ''; } + + let sample_dwn_link = ""; + if(selected_lead_form_type == 1 && isFirstField == 1){ + sample_dwn_link = ' [ " id="excel_download" data-toggle="tooltip" data-placement="top" title="Download Sample Excel">Sample Excel ]'; + } + div.innerHTML = `
- +
diff --git a/app/Views/view_rfq.php b/app/Views/view_rfq.php index 7ddfa80a..86deabef 100644 --- a/app/Views/view_rfq.php +++ b/app/Views/view_rfq.php @@ -635,6 +635,7 @@ var user_role_id = ; var jsonDataForHide = null; var multi_file_data = []; + var totalSumAssuredData = []; const editorConfig = { buttons: [ @@ -708,6 +709,9 @@ let qcr_count = ; let question_json = ; let policy_terms_json = ; + totalSumAssuredData = ; + console.log('totalSumAssuredData', totalSumAssuredData); + console.log('totalSumAssuredData.type', typeof totalSumAssuredData); // console.log('policy_terms_json', policy_terms_json); data = JSON.parse(data); @@ -1236,7 +1240,7 @@ function addSuggestionsToTable() { particularsCell.innerText = details.display_values; const columnCount = $("#rfqTable thead tr th").length; - console.log('columnCount' + columnCount); + // console.log('columnCount' + columnCount); for (let i = 3; i < columnCount - 6; i++) { @@ -1333,8 +1337,43 @@ function addSuggestionsToTable() { moveAddRowButton(); hideQCR(); isFormDataModified = false; + processTotalSumInsured(totalSumAssuredData) + } +function processTotalSumInsured(data) { + let values = []; + + if (Array.isArray(data)) { + data.forEach((value, index) => { + console.log('total - value', value); + if (index !== 0) { + $('#addQuote').click(); + } + }); + values = data + } else if (typeof data === 'object' && data !== null) { + $.each(data, function(key, value) { + console.log('total - value', value); + if (key != 0) { + $('#addQuote').click(); + } + }); + values = Object.values(data) + } else { + console.log("Data is not iterable."); + return; + } + + // Set values in td.editablecolumns in order + $('#totalSumInsured .editablecolumns').each(function(index) { + if (values[index] !== undefined) { + $(this).text(values[index]); + } + }); +} + + // Function to move add row button to last row function moveAddRowButton() { diff --git a/public/sample_excel/Sample_Member_Data.xlsx b/public/sample_excel/Sample_Member_Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3adbcef7c4d8e3b514cb8f93838aa63ea727e2e2 GIT binary patch literal 19847 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 literal 0 HcmV?d00001 diff --git a/public/sample_excel/enrollment.xlsx b/public/sample_excel/enrollment.xlsx index 0666a6c87688e2c80785c4969af5d8cce4abf933..97cd3191d28915a6893bc17bd6223f18780690e6 100755 GIT binary patch literal 89706 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 adl7e8O&7kQh{$Z=AuG&~@j>A=i2N^gnQi<4 delta 5115 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 d(6NdC=KJrdIa0#Li9rYhOCTWz6ZJ2X{{zzt