From c41b2f06d9f494538269ed1e6586c61944474716 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 7 Mar 2025 15:00:12 +0530 Subject: [PATCH] CHANGE_BDS_CALC : RV --- .../PolicyTransactionController.php | 25 ++- .../policy_transaction_inception_form.php | 167 ++++++++++++++---- 2 files changed, 151 insertions(+), 41 deletions(-) diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index dc8517c9..a9d3b8ee 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -414,9 +414,13 @@ class PolicyTransactionController extends BaseController // Prepare data for insertion and updating $coShareDetails = []; - // print_r($data); + // print_r($data); die; // die; + if(isset($data['co_share_id']) && !empty($data['co_share_id'])){ + $this->removePtCoShareRecords($data['co_share_id']); + } + if(isset($data['follow_insurer_id'])){ foreach ($data['follow_insurer_id'] as $index => $insurer) { @@ -501,7 +505,7 @@ class PolicyTransactionController extends BaseController return true; } - + // print_r($data); // die; } @@ -951,6 +955,23 @@ class PolicyTransactionController extends BaseController } } + //function for soft delete for pt_co_share_details records + public function removePtCoShareRecords($primaryKeys) + { + // print_r($primaryKeys); die; + if (empty($primaryKeys)) { + return false; + } + + // Convert array to a comma-separated string for query binding + $placeholders = implode(',', array_fill(0, count($primaryKeys), '?')); + + $sql = "UPDATE pt_co_share_details SET is_active = 0 WHERE id NOT IN ($placeholders)"; + + return db_connect()->query($sql, $primaryKeys); + } + + //------------------------------------------------------------------------------------------------ // Policy Transaction Endorsement diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index ca90346c..a2d0ee4c 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -153,6 +153,7 @@ + @@ -1453,6 +1454,8 @@ $(document).ready(function() { //edit function function getPolicyTransactionDataForEdit(input) { + console.log('############################# Get Policy Transaction Data For Edit #############################'); + $('.loader').fadeIn(); $('.loader-mask').fadeIn(); @@ -1751,7 +1754,11 @@ function getPolicyTransactionDataForEdit(input) { } }); + //To check the invoice statement if statament is upload aginst this policy than change readonly the table fileds checkInvoiceStatusToHideSubmitBtn(id) + + console.log('############################# END Get Policy Transaction Data For Edit #############################'); + } //-------- CALCULATION PART ------------------------------------------------------------------------------------------------- @@ -1798,6 +1805,7 @@ function checkAndDistributeTax(input) function amountCalculation(input) { + console.log('############################## AMOUNT CALCULATION ############################################') console.log('amountCalculation : ' + input); let selectedOption = $('#policy_type_id').find('option:selected'); let bap = selectedOption.data('bap'); @@ -1853,17 +1861,13 @@ function amountCalculation(input) { let gst_amount = parseFloat($('#gst_amount_' + input).val()) || 0; // console.log(standard_bp_per, standard_tp_per, standard_tep_per); + // console.log(agreed_bp_per, agreed_tp_per, agreed_tep_per); - // let co_premium_amt = ((bp + tp + tep) * co_share_per) / 100; - - // $('#co_premium_' + input).val(!isNaN(co_premium_amt) && isFinite(co_premium_amt) ? co_premium_amt.toFixed(2) : '0.00'); - // Calculate GST percentage let gst_per = igst; if (igst === 0) { gst_per = parseFloat(cgst) + parseFloat(sgst); - // gst_per = (cgst) + (sgst); } // console.log('gst_per', gst_per); @@ -1872,9 +1876,20 @@ function amountCalculation(input) { // console.log('sgst', sgst); // Calculate the total premium + + let base_premium = cop; + let third_part_premium = cotp; + let terrisom_premium = cotep; + let tpTotal = cop + cotp + cotep; if($('#bro_payable_by').is(':checked')){ + tpTotal = bp + tp + tep; + + base_premium = bp; + third_part_premium = tp; + terrisom_premium = tep; + } if (!$('#cop_yes').is(':checked')) { @@ -1884,7 +1899,6 @@ function amountCalculation(input) { $('#co_share_per_' + input).val(100); } - console.log('tpTotal', tpTotal); ncpaTotal = tpTotal + ncpa; let ncpa_gst_per_amt = (ncpaTotal * gst_per) / 100; @@ -1907,11 +1921,12 @@ function amountCalculation(input) { } let finalTotal = tpTotal + gst_per_amt + stamp_duty_amt; - console.log('Summed Amount:', finalTotal); - // $('#total_amt_' + input).val(finalTotal.toFixed(2)); + + //Total Amount $('#total_amt_' + input).val(!isNaN(finalTotal) && isFinite(finalTotal) ? finalTotal.toFixed(2) : '0.00'); + //--------------------------------------------------------------------------------------------------- let sum_of_agreed_premium = agreed_bp_per + agreed_tp_per + agreed_tep_per; // console.log('sum_of_agreed_precentage : ', sum_of_agreed_premium); @@ -1922,24 +1937,32 @@ function amountCalculation(input) { expectedAmount = agreed_amount; // console.log('Formula 1 AGREED AMOUNT'); }else if(sum_of_agreed_premium > 0){ - //expectedAmount = ((bp + cop) * agreed_bp_per)+ ((tp + tep)*(agreed_tp_per + agreed_tep_per)); + let sumOfTheAggreedPer = agreed_bp_per + agreed_tp_per + agreed_tep_per; - expectedAmount = (tpTotal * sumOfTheAggreedPer); - expectedAmount = expectedAmount / 100; + + let sum_of_bp_amt = (base_premium * agreed_bp_per) /100 + let sum_of_tp_amt = (third_part_premium * agreed_tp_per) / 100 + let sum_of_tep_amt = (terrisom_premium * agreed_tep_per) / 100 + + expectedAmount = (sum_of_bp_amt + sum_of_tp_amt + sum_of_tep_amt) ?? 0; + // console.log('Formula 2 AGREED BP TP/TEP %'); }else{ - // expectedAmount = ((bp + cop) * standard_bp_per)+ ((tp + tep)*(standard_tp_per + standard_tep_per)); + let sumOfTheStandardPer = standard_bp_per + standard_tp_per + standard_tep_per; - expectedAmount = (tpTotal * sumOfTheStandardPer); - console.log(expectedAmount) - expectedAmount = expectedAmount / 100; + + let sum_of_bp_amt = (base_premium * standard_bp_per) /100 + let sum_of_tp_amt = (third_part_premium * standard_tp_per) / 100 + let sum_of_tep_amt = (terrisom_premium * standard_tep_per) / 100 + + expectedAmount = (sum_of_bp_amt + sum_of_tp_amt + sum_of_tep_amt) ?? 0; + // console.log('Formula 3 STANDARD BP TP/TEP %'); } - // console.log('expectedAmount', expectedAmount); + console.log('expectedAmount', expectedAmount); //Expected Amount - // $('#exp_amt_' + input).val(expectedAmount.toFixed(2)); $('#exp_amt_' + input).val(!isNaN(expectedAmount) && isFinite(expectedAmount) ? expectedAmount.toFixed(2) : '0.00'); @@ -1956,12 +1979,12 @@ function amountCalculation(input) { let variance = (actual_bp_brokerage_amount + actual_tp_brokerage_amount + actual_tep_brokerage_amount) - expectedAmount; // console.log('variance', variance); - - // $('#variance_' + input).val(variance.toFixed(2)); - $('#variance_' + input).val(!isNaN(variance) && isFinite(variance) ? variance.toFixed(2) : '0.00'); - // console.log('variance', variance); + // $('#variance_' + input).val(!isNaN(variance) && isFinite(variance) ? variance.toFixed(2) : '0.00'); setCoPremiums(input); + + console.log('############################## END AMOUNT CALCULATION ############################################') + } function actualAmountCalculation(input, field = null){ @@ -2482,6 +2505,45 @@ function select_leader_disable_premium_amt(input, value) { } } +function select_leader_disable_premium_amt_in_edit() { + + $('#insurerTable thead th').each(function(value) { + + if (value === 0) { + console.log("Premium Table columnIndexes is", value); + } else { + + if ($('#co_share_type_' + value).is(':checked')) { + // Disable and add readonly-select class to all premiums except the one with the given value + $('input[name="base_premium[]"]').addClass('readonly-select'); + $('#base_premium_' + value).removeClass('readonly-select'); + + $('input[name="tp_premium[]"]').addClass('readonly-select'); + $('#tp_premium_' + value).removeClass('readonly-select'); + + $('input[name="ter_premium[]"]').addClass('readonly-select'); + $('#ter_premium_' + value).removeClass('readonly-select'); + + $('input[name="stamp_duty[]"]').addClass('readonly-select'); + $('#stamp_duty_' + value).removeClass('readonly-select'); + + $('input[name="co_premium[]"]').addClass('readonly-select'); + $('#co_premium_' + value).removeClass('readonly-select'); + + $('input[name="co_tp_premium[]"]').addClass('readonly-select'); + $('#co_tp_premium_' + value).removeClass('readonly-select'); + + $('input[name="co_ter_premium[]"]').addClass('readonly-select'); + $('#co_ter_premium_' + value).removeClass('readonly-select'); + + $('input[name="cd_ac_no_for_child[]"]').addClass('readonly-select'); + $('#cd_ac_no_' + value).removeClass('readonly-select'); + + } + } + }); +} + function validateRange(input) { // if (input.value < 1) input.value = 1; if (input.value > 100) input.value = 100; @@ -2589,7 +2651,6 @@ function appendOwner(data) { }) ); - $.each(data, function(index, item) { let client_show_name = item.client_name; @@ -2658,7 +2719,6 @@ function checkInvoiceStatusToHideSubmitBtn(id){ $('#submitButton').show() } }else{ - console.log(res.message, 'warning'); } }, @@ -3354,7 +3414,7 @@ $('#client_type').change(function() { } - var selectedOption = $(this).find('option:selected'); + var selectedOption = $('#policy_type_id').find('option:selected'); var ebp = selectedOption.data('ebp'); var etp = selectedOption.data('etp'); @@ -3689,7 +3749,7 @@ $('#setInsurerCount').on('click', function() { }); function addInsurerColumn() { - + insurerCount = insurerCount + 1; // Update header @@ -4024,14 +4084,6 @@ function addInsurerColumn() { // console.log('std_tp', std_tp); // console.log('std_tep', std_tep); - // console.log('ebp', ebp); - // console.log('etp', etp); - // console.log('etep', etep); - // console.log('iep', iep); - // console.log('itp', itp); - // console.log('itep', itep); - - $('[name="standard_bp[]"]').val(std_bp); $('[name="standard_tp[]"]').val(std_tp); $('[name="standard_ter[]"]').val(std_tep); @@ -4060,24 +4112,47 @@ function addInsurerColumn() { } function removeInsurerColumn(index, count_index) { + + console.log('#################################### Remove Insurer Column ####################################'); + // Remove the header $('#insurerTable thead tr th').eq(index).remove(); // Remove the corresponding data cells in each row + let removedCoShareIds = []; + $('#insurerTable tbody tr').each(function() { $(this).find('td').eq(index).remove(); + let coShareId = $(this).find('td').eq(index).find('[name="co_share_id[]"]').val(); + + if (coShareId) { + removedCoShareIds.push(coShareId); + } }); + console.log('removedCoShareIds array', removedCoShareIds); + + // Set the array as a comma-separated string in the hidden input + $('#remove_pt_co_id').val(removedCoShareIds.join(',')); + console.log('remove_pt_co_id value', $('#remove_pt_co_id').val()); + insurer_count_array = insurer_count_array.filter(item => item !== count_index); co_share_percentage_calculation(null, "remove"); insurerCount--; + + console.log('#################################### END Remove Insurer Column ####################################'); + } function populateTable(dataArray, cd_ac_pk) { + console.log('#################################### Populate Table ####################################'); + + console.log('populateTable data', dataArray) dataArray.forEach((data, index) => { + // Add a new insurer column for each entry in the data array addInsurerColumn(); // This will add a new column dynamically @@ -4324,11 +4399,18 @@ function populateTable(dataArray, cd_ac_pk) { } }); - + if(index != 0){ + if(data.co_share_type != 0 && data.co_share_type != 1){ + let co_share_index = index + 1; + select_leader_disable_premium_amt_in_edit(co_share_index); + } + } }); // $('input:disabled, select:disabled, textarea:disabled').addClass('readonly-color'); + console.log('#################################### END Populate Table ####################################'); + } $(document).on('click', '.delete-insurer', function() { @@ -4423,6 +4505,8 @@ function setFormDataFromLocalStorage(formSelector, storageKey) { function checkCDAmountForBasePremium(input) { + console.log('#################################### Check CD Amount For Base Premium ####################################'); + console.log(input) let client_type = $('#client_type').val(); console.log('client type', client_type); @@ -4477,10 +4561,15 @@ function checkCDAmountForBasePremium(input) { }); } + + console.log('#################################### END Check CD Amount For Base Premium ####################################'); + } function getCdAmount(cd_ac_pk, increment){ + console.log('#################################### Get CD Amount ####################################'); + // increment = increment + 1 console.log('cd_ac_pk', cd_ac_pk); console.log('increment', increment); @@ -4513,6 +4602,8 @@ function getCdAmount(cd_ac_pk, increment){ toastr.error('An error occurred while checking the CD amount.', 'ERROR'); }); + console.log('#################################### END Get CD Amount ####################################'); + } $('#bro_payable_by').on('change', function(){ @@ -4520,25 +4611,23 @@ $('#bro_payable_by').on('change', function(){ var columnIndexes = []; $('#insurerTable thead th').each(function(index) { if(index == 0){ - console.log("columnIndexes is ", index); + console.log("Premium Table columnIndexes is ", index); }else{ amountCalculation(index); } columnIndexes.push(index); }); - console.log("columnIndexes", columnIndexes); - }); $(document).on('change', '#insurerTable input, #insurerTable select, #insurerTable textarea', function() { - console.log('Changed in table:', $(this).attr('name'), 'Value:', $(this).val()); + // console.log('Changed in table:', $(this).attr('name'), 'Value:', $(this).val()); getColumnIndexes() }); function getColumnIndexes(count = 0) { $('#insurerTable thead th').each(function(index) { if (index === 0) { - console.log("columnIndexes is", index); + console.log("Premium Table columnIndexes is", index); } else { amountCalculation(index); if(count == 1){