diff --git a/app/Config/Routes.php b/app/Config/Routes.php index b77e8f5e..e116fcd1 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -404,6 +404,7 @@ $routes->group("rfq", ["filter" => "authMVC"], function ($routes) { $routes->post("create", "LeadsController::createRFQ"); $routes->post("createQCR", "LeadsController::createQCR"); $routes->get("list/(:any)", "LeadsController::viewRFQ/$1"); + $routes->get("nonEB","LeadsController::rfqNonEB"); }); diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 5b24dafe..94a28fb6 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -2534,26 +2534,34 @@ class EmployeeRestController extends AdminController - $terms = json_decode($ClientPolicyValue['policy_terms']); + if($ClientPolicyValue['policy_type_id'] == 1) { - $data['policy_terms'] = $this->policyTermsFiter($terms,'gpa'); + $policyGroup = 'gpa'; $data['ticket_type_id'] = 2; }else if($ClientPolicyValue['policy_type_id'] == 6) { - $data['policy_terms'] = $this->policyTermsFiter($terms,'gpa'); + $policyGroup = 'gpa'; $data['ticket_type_id'] = 3; }else if($ClientPolicyValue['policy_type_id'] == 7) { - $data['policy_terms'] = $this->policyTermsFiter($terms,'gpa'); + $policyGroup = 'gpa'; $data['ticket_type_id'] = 4; }else { - $data['policy_terms'] = $this->policyTermsFiter($terms,'gmc'); + $policyGroup = 'gmc'; $data['ticket_type_id'] = 1; } - + + $terms = json_decode($ClientPolicyValue['policy_terms'] , true); + $data['policy_terms'] = isset($terms['enrollment_display_key']) + && !empty($terms['enrollment_display_key']) + ? $terms['enrollment_display_key'] + : $this->policyTermsFiter($terms, $policyGroup); + $terms = json_decode($ClientPolicyValue['policy_terms']); + + $data['client_id'] = $ClientPolicyValue['client_id']; $data['client_policy_id'] = $ClientPolicyValue['id']; $data['policy_name'] = $ClientPolicyValue['policy_type']; diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index abbc6984..f0f1cc7b 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -2384,6 +2384,11 @@ class LeadsController extends BaseController return $financialYears; } + + public function rfqNonEB(){ + + $this->loadLayout('view_rfq_non_eb'); + } diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index 56c65ff8..752d116c 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -71,13 +71,20 @@ class RestAuthenticationController extends AdminController $mobile_number = $this->request->getJSON()->mobile_number; - $employeeData = $this->employeeModel->where('mobile', $mobile_number) - ->where('relationship', 'self') - ->where('emp_status !=', 'truncated') - ->where('is_active', 1) - ->first(); + $employeeData = $this->employeeModel->select('employees.relationship,EP.employee_id') + ->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner') + ->where('employees.is_active', 1) + ->where('employees.relationship', 'self') + ->where('employees.emp_status !=', 'truncated') + ->where('employees.mobile', $mobile_number) + ->where('EP.is_active', 1) + ->whereIn('EP.status', ['active']) + ->first(); + + - if ($employeeData) { + if (isset($employeeData['employee_id'])) + { $result = ['user_verification' => true ,'message' => "Verified Successfully"]; return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); @@ -97,11 +104,18 @@ class RestAuthenticationController extends AdminController $email = $this->request->getJSON()->email; - $employeeData = $this->employeeModel->where('email_corporate', $email)->where('relationship', 'self') - ->where('emp_status !=', 'truncated')->where('is_active', 1) + $employeeData = $this->employeeModel->select('employees.relationship,EP.employee_id') + ->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner') + ->where('employees.is_active', 1) + ->where('employees.relationship', 'self') + ->where('employees.emp_status !=', 'truncated') + ->where('employees.email_corporate', $email) + ->where('EP.is_active', 1) + ->whereIn('EP.status', ['active']) ->first(); - if ($employeeData) { + if (isset($employeeData['employee_id'])) + { $otp = random_int(100000, 999999); diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index 2c06d68b..5b7ebdd3 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -1748,18 +1748,46 @@ function checkAndDistributeTax(input) let sgst = parseFloat($('#sgst_' + input).val()); let igst = parseFloat($('#igst_' + input).val()); - if(((event.target.id).startsWith('cgst') || (event.target.id).startsWith('sgst') )) - { - if(cgst !== 0) { $('#sgst_' + input).val(cgst); } - else if(sgst !== 0) { $('#cgst_' + input).val(sgst); } + // if(((event.target.id).startsWith('cgst') || (event.target.id).startsWith('sgst') )) + // { + // if(cgst !== 0) { $('#sgst_' + input).val(cgst); } + // else if(sgst !== 0) { $('#cgst_' + input).val(sgst); } + // $('#igst_' + input).val(0); + // } + // else if((event.target.id).startsWith('igst')) + // { + // $('#cgst_' + input).val(0); + // $('#sgst_' + input).val(0); + // } + + if (((event.target.id).startsWith('cgst') || (event.target.id).startsWith('sgst'))) { + + if (!isFinite(cgst) || isNaN(cgst) || cgst === undefined) { + cgst = 0; + } + if (!isFinite(sgst) || isNaN(sgst) || sgst === undefined) { + sgst = 0; + } + + if (cgst !== 0) { + $('#sgst_' + input).val(cgst); + } else if (sgst !== 0) { + $('#cgst_' + input).val(sgst); + } + $('#igst_' + input).val(0); - } - else if((event.target.id).startsWith('igst')) - { + } + else if ((event.target.id).startsWith('igst')) { $('#cgst_' + input).val(0); $('#sgst_' + input).val(0); } + + // Ensure IGST, CGST, and SGST are never NaN, undefined, or Infinity + $('#igst_' + input).val(isFinite($('#igst_' + input).val()) ? $('#igst_' + input).val() : 0); + $('#cgst_' + input).val(isFinite($('#cgst_' + input).val()) ? $('#cgst_' + input).val() : 0); + $('#sgst_' + input).val(isFinite($('#sgst_' + input).val()) ? $('#sgst_' + input).val() : 0); + } function amountCalculation(input) { @@ -2293,11 +2321,21 @@ $(document).on('change', '[name="base_premium[]"], [name="co_share_per[]"]', fun let basePremium = $('input[name="base_premium[]"]').toArray() .map(input => parseFloat($(input).val()) || 0) .find(value => value > 0) || 0; + + let tpPremium = $('input[name="tp_premium[]"]').toArray() + .map(input => parseFloat($(input).val()) || 0) + .find(value => value > 0) || 0; + + let terPremium = $('input[name="tp_premium[]"]').toArray() + .map(input => parseFloat($(input).val()) || 0) + .find(value => value > 0) || 0; console.log('Base Premium:', basePremium); + console.log('TP Premium:', tpPremium); // Loop through all co_share_per[] fields $('input[name="co_share_per[]"]').each(function(index) { + const coSharePer = parseFloat($(this).val()) || 0; // Get co_share_per value const coPremium = (basePremium * coSharePer) / 100; // Calculate co_premium @@ -3536,6 +3574,9 @@ var insurerCount = 0; $('#setInsurerCount').on('click', function() { addInsurerColumn(); // Ensure this function is defined properly + setTimeout(() => { + getColumnIndexes(); + }, 2000); }); @@ -3840,6 +3881,9 @@ function addInsurerColumn() { const index = $(this).closest('th').index(); let count_index = $(this).data('count'); removeInsurerColumn(index, count_index); + setTimeout(() => { + getColumnIndexes(); + }, 2000); }); // hidePermiumDetailsBasedOnTheTeam() diff --git a/app/Views/ticket_form_gmc.php b/app/Views/ticket_form_gmc.php index 099cf7ad..b23212e9 100644 --- a/app/Views/ticket_form_gmc.php +++ b/app/Views/ticket_form_gmc.php @@ -32,32 +32,32 @@
- + name="emp_code" required>
- + + name="emp_name" required>
- + - +
- - + $value) { @@ -70,54 +70,54 @@
- +
- +
- + + name="emp_mobile" required>
- + + name="emp_mail" required>
- + - +
- + - +
- +
- - +

Claim Details

@@ -140,8 +141,8 @@
- -
- -
- -
- -
- + + name="hospital_name" required>
- + + name="doa" required>
- + + value="" name="dod" required>
- + + name="claim_amount" required>
- + @@ -239,6 +240,7 @@
+

Additional Details

@@ -246,7 +248,7 @@
@@ -563,7 +565,46 @@ } }); - $('.' + thirdClass).find('input, textarea').attr('required', true); + // $('.' + thirdClass).find('input, textarea').attr('required', true); + let extrafieldsArray = $('#extra_fields_array_for_validate').val(); + try { + extrafieldsArray = JSON.parse(extrafieldsArray); // Convert string to object + } catch (error) { + console.error("Invalid JSON format in extra_fields_array_for_validate:", error); + return; + } + + var selectedClaimStatus = $('#claim_status_id').val(); + var $thirdClass = $(`.${thirdClass}`); + var hasValue = $thirdClass.find('input, textarea, select').filter(function () { + return $(this).val().trim() !== ''; // Check if at least one field is not empty + }).length > 0; + + $thirdClass.each(function () { + var id = $(this).find('[id]').first().attr('id'); + var $label = $(this).find('label'); + var $thisDiv = $(this); + var $inputs = $thisDiv.find('input, textarea, select'); + + + // ✅ Condition 1: Check if this ID is in extraFieldsArray (required by status) + var shouldAddRequired = extrafieldsArray[selectedClaimStatus] && extrafieldsArray[selectedClaimStatus].includes(id); + + // ✅ Condition 2: If any field in the class has a value, make all required + if (shouldAddRequired || hasValue) { + if ($label.length && !$label.find('.text-danger').length) { + $label.append(' *'); + } + console.log("input from if ",$inputs); + // $inputs.attr('required', true); + $('.' + thirdClass).find('input, textarea,select').attr('required', true); + } else { + $label.find('.text-danger').remove(); + console.log("input ",$inputs); + // $inputs.prop('required', false); + $('.' + thirdClass).find('input, textarea,select').attr('required', false); + } + }); } @@ -585,7 +626,7 @@ if ($parentDiv.length) { let thirdClass = $parentDiv.attr("class").split(" ")[2] || ""; console.log('thirdClass', thirdClass); - addRequiredFieldSymbolByClass(thirdClass); + // addRequiredFieldSymbolByClass(thirdClass); // addRequiredFieldSymbol(targetId); if (thirdClass) { // console.log("fields",fields); @@ -606,64 +647,97 @@ } }); -function addRequiredFieldSymbol(field_name) { - // Find the field with the given name - var $field = $(`[name="${field_name}"]`); +// function addRequiredFieldSymbol(field_name) { +// // Find the field with the given name +// var $field = $(`[name="${field_name}"]`); - if ($field.length) { - // Find the parent div of this field - var $parentDiv = $field.closest('div'); +// if ($field.length) { +// // Find the parent div of this field +// var $parentDiv = $field.closest('div'); - if ($parentDiv.length) { - // Get the classes as an array - var classes = $parentDiv.attr('class') ? $parentDiv.attr('class').split(/\s+/) : []; +// if ($parentDiv.length) { +// // Get the classes as an array +// var classes = $parentDiv.attr('class') ? $parentDiv.attr('class').split(/\s+/) : []; - if (classes.length > 0) { - // Get the last class in the array - var lastClass = classes[classes.length - 1]; +// if (classes.length > 0) { +// // Get the last class in the array +// var lastClass = classes[classes.length - 1]; - // Find all divs with this last class - var $allDivsWithClass = $(`.${lastClass}`); +// // Find all divs with this last class +// var $allDivsWithClass = $(`.${lastClass}`); - // Add asterisk to all labels within these divs - $allDivsWithClass.each(function() { - var $label = $(this).find('label'); - if ($label.length && !$label.find('.text-danger').length) { - $label.append(' *'); - } - }); +// // Add asterisk to all labels within these divs +// $allDivsWithClass.each(function() { +// var $label = $(this).find('label'); +// if ($label.length && !$label.find('.text-danger').length) { +// $label.append(' *'); +// } +// }); - console.log(`Added required symbol to ${$allDivsWithClass.length} labels with class "${lastClass}"`); - } else { - console.warn(`Parent div for field "${field_name}" has no classes`); - } - } else { - console.warn(`No parent div found for field name="${field_name}"`); - } - } else { - console.warn(`No field found with name="${field_name}"`); - } -} +// console.log(`Added required symbol to ${$allDivsWithClass.length} labels with class "${lastClass}"`); +// } else { +// console.warn(`Parent div for field "${field_name}" has no classes`); +// } +// } else { +// console.warn(`No parent div found for field name="${field_name}"`); +// } +// } else { +// console.warn(`No field found with name="${field_name}"`); +// } +// } function addRequiredFieldSymbolByClass(className) { - // Find all divs with the specified class var $divsWithClass = $(`.${className}`); - + if ($divsWithClass.length) { - // Add asterisk to all labels within these divs - $divsWithClass.each(function() { - var $label = $(this).find('label'); - if ($label.length && !$label.find('.text-danger').length) { - $label.append(' *'); - } - }); - - console.log(`Added required symbol to ${$divsWithClass.length} labels with class "${className}"`); + let extrafieldsArray = $('#extra_fields_array_for_validate').val(); + try { + extrafieldsArray = JSON.parse(extrafieldsArray); // Convert string to object + } catch (error) { + console.error("Invalid JSON format in extra_fields_array_for_validate:", error); + return; + } + + var selectedClaimStatus = $('#claim_status_id').val(); + console.log("Selected claim status ID:", selectedClaimStatus); + console.log("Extra Field Array:", extrafieldsArray[selectedClaimStatus]); + + // ✅ Check if at least one field inside the class has a value + // var hasValue = $divsWithClass.find('input, textarea, select').filter(function () { + // return $(this).val().trim() !== ''; // Check if at least one field is not empty + // }).length > 0; + + // $divsWithClass.each(function () { + // var id = $(this).find('[id]').first().attr('id'); + // var $label = $(this).find('label'); + // var $thisDiv = $(this); + // var $inputs = $thisDiv.find('input, textarea, select'); + + + // // ✅ Condition 1: Check if this ID is in extraFieldsArray (required by status) + // var shouldAddRequired = extrafieldsArray[selectedClaimStatus] && extrafieldsArray[selectedClaimStatus].includes(id); + + // // ✅ Condition 2: If any field in the class has a value, make all required + // if (shouldAddRequired || hasValue) { + // if ($label.length && !$label.find('.text-danger').length) { + // $label.append(' *'); + // } + // console.log("input from if ",$inputs); + // $inputs.attr('required', true); + // } else { + // $label.find('.text-danger').remove(); + // console.log("input ",$inputs); + // $inputs.prop('required', false); + // } + // }); + + console.log(`Processed ${$divsWithClass.length} labels with class "${className}"`); } else { console.warn(`No divs found with class="${className}"`); } } + $('#mode_of_intimation').change(function(){ console.log("function called"); var mode_of_intimation = $('#mode_of_intimation').val(); diff --git a/app/Views/ticket_form_gpa.php b/app/Views/ticket_form_gpa.php index 798a625c..01e3f37d 100644 --- a/app/Views/ticket_form_gpa.php +++ b/app/Views/ticket_form_gpa.php @@ -39,57 +39,57 @@
- + name="emp_code" required>
- + + name="emp_name" required>
- + + name="emp_mobile" required>
- + + name="emp_mail" required>
- +
- + - +
- + - +
- - +

Claim Details

@@ -128,8 +129,8 @@
- -
- -
- + + value="" name="dob" required>
- +
- +
- + + name="date_of_intimat" required>
- + + name="si_amt" required>
+

Additional Details

diff --git a/app/Views/view_rfq.php b/app/Views/view_rfq.php index e3ca071d..9d619d2a 100644 --- a/app/Views/view_rfq.php +++ b/app/Views/view_rfq.php @@ -5666,7 +5666,7 @@ function autoCaluculationForPremiumChildTable(input) { .qcr === 0); if (actionData) first_json.table_data.data.splice(rowKey, 1); }); - + console.log("Modified JSON:", first_json); return first_json; } diff --git a/app/Views/view_rfq_non_eb.php b/app/Views/view_rfq_non_eb.php new file mode 100644 index 00000000..13ba40c8 --- /dev/null +++ b/app/Views/view_rfq_non_eb.php @@ -0,0 +1,1905 @@ + +
+
+
+ +
+
+

+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ + \ No newline at end of file