From 9e661ad4c2d2fd5bf396b8d59e91cfa05582f81a Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 10 Oct 2025 15:13:38 +0530 Subject: [PATCH 1/4] FIX_LIVE_ISSUE_GTLI_TERMS : RV --- app/Controllers/EmployeeRestController.php | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 341bfcf2..1b7310b6 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -2868,14 +2868,14 @@ class EmployeeRestController extends AdminController }else if($ClientPolicyValue['policy_type_id'] == 6) { - $policyGroup = 'gpa'; + $policyGroup = 'other'; $data['ticket_type_id'] = 3; $data['claim_subject'] = "Claim EDLI"; $data['sum_insured_label'] = "Sum Assured"; }else if($ClientPolicyValue['policy_type_id'] == 7) { - $policyGroup = 'gpa'; + $policyGroup = 'other'; $data['ticket_type_id'] = 4; $data['claim_subject'] = "Claim GTLI"; $data['sum_insured_label'] = "Sum Assured"; @@ -2969,9 +2969,6 @@ class EmployeeRestController extends AdminController function policyTermsFiter($terms , $type) { - - - $gpa = [ "sumInsured2" => "Sum Insured", "totalSumInsured" => "Total Sum Assured", @@ -3021,8 +3018,6 @@ class EmployeeRestController extends AdminController "moderntreatmentsasperirdai" => "Modern Treatment " ]; - - $finalarray = []; if($type == 'gpa'){ foreach ($gpa as $key => $value) { @@ -3046,6 +3041,18 @@ class EmployeeRestController extends AdminController $finalarray[$terms->gpa_special_condition_label[$i]] = $terms->gpa_special_condition_input[$i]; } } + }else if($type == 'other'){ + foreach ($terms as $key => $value) { + if($key != "multiple_sum_insured" && $value != ""){ + $result = ucwords(str_replace('_', ' ', $key)); + $finalarray[$result] = $value; + } + } + if(isset(($terms->gpa_special_condition_label)) && is_array($terms->gpa_special_condition_label) && is_array($terms->gpa_special_condition_input)){ + for ($i=0; $i < count($terms->gpa_special_condition_label); $i++) { + $finalarray[$terms->gpa_special_condition_label[$i]] = $terms->gpa_special_condition_input[$i]; + } + } }else{ foreach ($gmc as $key => $value) { if(isset($terms->$key)) @@ -3070,9 +3077,7 @@ class EmployeeRestController extends AdminController } } - return $finalarray; - } From 2dc2447fb6232d83f47d3ac1202a2a81ab58b221 Mon Sep 17 00:00:00 2001 From: venba-Inspriron-3558 Date: Fri, 10 Oct 2025 18:58:15 +0530 Subject: [PATCH 2/4] FIX_75. The system should allow the same HR contact to be linked with different corporates, instead of restricting them to just one. --- app/Config/Routes.php | 1 + app/Controllers/ClientController.php | 9 +++++ app/Models/ClientModel.php | 13 +++++++ app/Views/client_branch.php | 53 +++++++++++++++++++++++++++- 4 files changed, 75 insertions(+), 1 deletion(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index d640d843..10fb373c 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -172,6 +172,7 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) { $routes->group("others", ["filter" => "authMVC"], function ($routes) { $routes->post("create", "ClientController::createOtherTabContent"); + $routes->post('check-duplicate', 'ClientController::validateDuplicateByClientBranch'); }); }); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 63ddac11..fb0c5d6f 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -132,6 +132,15 @@ class ClientController extends AdminController //-------------------------------------------------------------------------------------------------------- + public function validateDuplicateByClientBranch() + { + $request = service('request'); + $value = $request->getPost('value'); + $clientId = $request->getPost('client_id'); + $branchId = $request->getPost('branch_id'); + $isDuplicate = $this->clientModel->isDuplicateByClientBranch($value, $clientId, $branchId); + return $this->response->setJSON(['isDuplicate' => $isDuplicate]); + } public function checkDuplicateTableFieldValue() { $table = $this->request->getPost('table'); diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php index 9abe8929..09db986d 100755 --- a/app/Models/ClientModel.php +++ b/app/Models/ClientModel.php @@ -226,5 +226,18 @@ class ClientModel extends Model return $result; } + public function isDuplicateByClientBranch($email, $clientId, $branchId) + { + $builder = $this->db->table('level_contacts lc') + ->select('lc.id') + ->join('client_branch cb', 'lc.ref_id = cb.id', 'left') + ->where('lc.email', $email) + ->where('lc.contact_type', 'client') + ->where('cb.client_id', $clientId) + ->where('lc.ref_id', $branchId) + ->get(); + + return $builder->getNumRows() > 0 ? true : false; + } } diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php index f35d5f99..4db64b3b 100755 --- a/app/Views/client_branch.php +++ b/app/Views/client_branch.php @@ -649,7 +649,7 @@ function appendContactHtml(contact = false, reset = false) {
- +
@@ -972,6 +972,57 @@ function validateInput(input, table, field, submitButId){ } +function validateDuplicateByClientBranch(input, submitButId) { + let value = $(input).val().trim(); + let clientId = $('#client_id_branch').val(); + let branchId = $('#branch_id_primarykey').val(); + console.log(`Ln968 cId: ${clientId} | bId: ${branchId}`); + + // Don't forgot be careful + // 1 Local duplication check (User entered) + let isLocalDuplicate = false; + $('input[name="email[]"]').each(function() { + if (this !== input && $(this).val().trim() === value && value !== '') { + isLocalDuplicate = true; + return false; // break loop + } + }); + + if (isLocalDuplicate) { + console.log(`r u n Local`); + toastr.warning("Email is duplicate!", 'WARNING'); + $('#' + submitButId).prop('disabled', true); + return; // don’t call server if duplicate in UI + } + + // Don't forgot be careful + // 2 Server-side duplicate check (DB) + if (!isLocalDuplicate && value !== '') { + console.log(`r u n Server`); + $.ajax({ + url: '', + type: 'POST', + data: { + client_id: clientId, + branch_id: branchId, + value: value + }, + dataType: 'json', + success: function(response) { + if (response.isDuplicate) { + toastr.warning("Email already exists!", 'WARNING'); + $('#' + submitButId).prop('disabled', true); + } else { + $('#' + submitButId).prop('disabled', false); + } + }, + error: function(xhr, status, error) { + console.error('AJAX Error:', error); + } + }); + } +} + function getContactsData() { const contacts = []; From d0c7ea1143502251bbdb7e1ad5f05c201f4235bf Mon Sep 17 00:00:00 2001 From: venba-Inspriron-3558 Date: Sat, 11 Oct 2025 12:00:29 +0530 Subject: [PATCH 3/4] FIX_resolved - Email duplication based on ClientBrach vvj reported --- app/Views/client_branch.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php index 4db64b3b..024c3741 100755 --- a/app/Views/client_branch.php +++ b/app/Views/client_branch.php @@ -198,7 +198,7 @@
+ name="email[]" id="email" data-parsley-trigger="change" data-parsley-type="email" onkeyup="validateDuplicateByClientBranch(this, 'branchBtnSubmit')" required>
From 21310082a032c24a4b1ee5a216be878e4aabf01e Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Sat, 11 Oct 2025 15:32:27 +0530 Subject: [PATCH 4/4] CHANGE_EB_EXCEL_CHANGE : RV --- app/Controllers/LeadsController.php | 38 ++++-- app/Views/leads_form.php | 176 +++++++++++++++++++++++++--- app/Views/leads_form_handler.php | 1 - app/Views/rfq/gpa.php | 79 ++++++++++--- 4 files changed, 252 insertions(+), 42 deletions(-) diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index 40afde50..59608e7e 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -138,7 +138,10 @@ class LeadsController extends BaseController $this->cause_of_death = [ 'natural_death' => 'Natural Death', 'suicide' => 'Suicide', - 'accident' => 'Accident' + 'accident' => 'Accident', + 'cardiac_arrest' => 'Cardiac Arrest', + 'septic_shock' => 'Septic shock', + 'heart_attack' => 'Heart Attack', ]; $this->member_data_excel_columns = [ @@ -2408,8 +2411,11 @@ class LeadsController extends BaseController $row = 2; foreach ($claim_details['finyear'] as $record) { $col = 'A'; - foreach ($record as $value) { + foreach ($record as $array_key => $value) { $label = ucwords(str_replace('_', ' ', ($value ?? ""))); + if(in_array($array_key, ['sum_insured', 'claim_amount', 'settled'])){ + $label = formatIndianCurrency(intval($label)); + } $sheet->setCellValue($col . $row, $label); $col++; } @@ -2427,19 +2433,27 @@ class LeadsController extends BaseController } // Enable wrap text for all cells - $maxColLetter = chr(64 + count($headers)); // Last column letter - $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setWrapText(true); + // $maxColLetter = chr(64 + count($headers)); // Last column letter + // $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setWrapText(true); - // Optional: center vertically for neatness - $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); + // // Optional: center vertically for neatness + // $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); - // Optional: Make row height auto (helps when wrap text is on) - for ($i = 2; $i < $row; $i++) { - $sheet->getRowDimension($i)->setRowHeight(-1); - } + $maxColLetter = chr(64 + count($headers)); + $dataRange = "A1:{$maxColLetter}" . ($row - 1); - } - } + $sheet->getStyle($dataRange)->getAlignment() + ->setWrapText(true) + ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER) + ->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); + + // Optional: Make row height auto (helps when wrap text is on) + for ($i = 2; $i < $row; $i++) { + $sheet->getRowDimension($i)->setRowHeight(-1); + } + + } + } // Save to temporary location $uploadFilePath = WRITEPATH . 'tmp/' . $filename; diff --git a/app/Views/leads_form.php b/app/Views/leads_form.php index 12ef9a30..52902934 100644 --- a/app/Views/leads_form.php +++ b/app/Views/leads_form.php @@ -1862,6 +1862,7 @@ let claimData = []; $(".claim-row").each(function() { + let year = $(this).find("[name='first_year[]']").val(); let claimAmount = $(this).find("[name='first_claim_amount[]']").val(); let claimStatus = $(this).find("[name='first_claim_status[]']").val(); @@ -1869,13 +1870,22 @@ let causeOfDeath = $(this).find("[name='first_cause_of_death[]']").val(); let deathDate = $(this).find("[name='first_death_date[]']").val(); + let emp_id = $(this).find("[name='emp_id[]']").val(); + let emp_name = $(this).find("[name='emp_name[]']").val(); + let gender = $(this).find("[name='gender[]']").val(); + let designation = $(this).find("[name='designation[]']").val(); + let sum_insured = $(this).find("[name='sum_insured[]']").val(); + claimData.push({ "year": year, - "claim_amount": claimAmount, - "status": claimStatus, - "claim_type": claimType, + "emp_id": emp_id, + "emp_name": emp_name, + "gender": gender, + "designation": designation, + "sum_insured": sum_insured, + "death_date": deathDate, "cause_of_death": causeOfDeath, - "death_date": deathDate + "settled": claimAmount, }); }); @@ -1893,6 +1903,93 @@ //----------------------------------------------------------------------------------------------------------- + // do not remove this + // function appendThreeYearsClaims(count) { + + // // let count = $('#appendAreaForClaim').data('count'); + // console.log("count", count); + + // let policy_type_id = $('#policy_type_id_' + count).val() + // console.log('policy_type_id', policy_type_id); + + // console.log('claimIndex from parent', claimIndex); + // let increment = claimIndex; + + // let claimsFields = ` + //
+ + //
+ // + // + //
+ //
+ // + // + //
+ //
+ // + // + //
+ // + // + // + //
+ //
+ // x + // + + //
+ //
+ //
+ // `; + + // // Append new claim fields + // let referenceDiv = document.getElementById('appendAreaForClaim_' + count); + + // if (referenceDiv) { + // referenceDiv.insertAdjacentHTML('beforeend', claimsFields); + // } else { + // console.error('Element not found: appendAreaForClaim_' + count); + // } + + // // Increment claim index + // console.log("claim index " + claimIndex); + // claimIndex++; + // console.log("after claim index " + claimIndex); + + // if (policy_type_id == 1) { + // $('.gpaClaimFileds').show(); + // $('.lifeClaimFields').hide(); + // } else if (policy_type_id == 6 || policy_type_id == 7) { + // $('.gpaClaimFileds').hide(); + // $('.lifeClaimFields').show(); + // } + + // // Initialize Select2 for the newly added fields + // $("#first_year_" + increment).select2(); + // $("#claim_type_" + increment).select2(); + // $("#first_cause_of_death_" + increment).select2(); + + // toggleRequiredFields(); + // } + function appendThreeYearsClaims(count) { // let count = $('#appendAreaForClaim').data('count'); @@ -1916,15 +2013,46 @@ } ?>
+
- - + +
+ +
- - + +
-