diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index b001edf1..41792dbf 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -2372,7 +2372,9 @@ class LeadsController extends BaseController $installment_data = json_decode($params['installments'], true); if(!empty($installment_data)){ foreach ($installment_data as $key => $value) { - $value['payment_date'] = date('Y/m/d', strtotime($value['payment_date'])) ?? null; + $value['payment_date'] = !empty($value['payment_date']) && strtotime($value['payment_date']) + ? date('Y/m/d', strtotime($value['payment_date'])) + : null; if(isset($value['id']) && !empty($value['id'])){ $this->leadInstallmentPaymentDetails->where('id', $value['id'])->set($value)->update(); }else{ diff --git a/app/Views/view_rfq.php b/app/Views/view_rfq.php index 7ddfa80a..1fcc9688 100644 --- a/app/Views/view_rfq.php +++ b/app/Views/view_rfq.php @@ -550,7 +550,7 @@
- +

@@ -5826,27 +5826,92 @@ function appendMultiFileData(data) { }) $("#is_installment_switch").change(function (){ - var switch_status = ($(this).is(":checked")? "on" : "off"); - console.log("Switch status",switch_status); - if (switch_status == "on"){ - $("#no_of_installment").show(); - $("#payment_date").hide(); - $("#utr_no").hide(); - $("#no_of_installment").closest('.form-group').show(); - $("#payment_date").closest('.form-group').hide(); - $("#utr_no").closest('.form-group').hide(); - addInstallmentHTML() - }else{ - $("#no_of_installment").hide(); - $("#payment_date").show(); - $("#utr_no").show(); - $("#no_of_installment").closest('.form-group').hide(); - $("#payment_date").closest('.form-group').show(); - $("#utr_no").closest('.form-group').show(); - $('#installment_form_row').empty(); - } + + var switch_status = ($(this).is(":checked")? "on" : "off"); + console.log("Switch status",switch_status); + if (switch_status == "on"){ + $("#no_of_installment").show(); + $("#payment_date").hide(); + $("#utr_no").hide(); + $("#no_of_installment").closest('.form-group').show(); + $("#payment_date").closest('.form-group').hide(); + $("#utr_no").closest('.form-group').hide(); + let $installmentContainer = $('#installment_form_row'); + let row_count = $installmentContainer.find('.form-row').length; + + if (row_count == 0 ) { addInstallmentHTML()} + // addInstallmentHTML() + }else{ + console.log("inside else") + + let $installmentContainer = $('#installment_form_row'); + let row_count = $installmentContainer.find('.form-row').length; + let remove_count = $("#no_of_installment").val(); + console.log("row count",row_count); + if (row_count > 0 ) { + let ids = $installmentContainer.find('.form-row').slice(-remove_count).find('input[name="installment_primary_key[]"]').map(function() { + return $(this).val(); + }).get(); + Swal.fire({ + title: "Do you want to remove all the entries?", + icon: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + confirmButtonText: "Yes, Proceed!" + }).then((result) => { + if (result.isConfirmed) { + let url = ''; + let requestData = { id: ids }; + + $('.loader').fadeIn(); + $('.loader-mask').fadeIn(); + + sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) { + console.log('Data fetched successfully:', response); + + if (response.status === true) { + toastr.success(response.message, 'SUCCESS'); + $("#no_of_installment").hide(); + $("#payment_date").show(); + $("#utr_no").show(); + $("#no_of_installment").closest('.form-group').hide(); + $("#payment_date").closest('.form-group').show(); + $("#utr_no").closest('.form-group').show(); + $('#installment_form_row').empty(); + $('#no_of_installment').val(""); + } else { + toastr.error(response.message, 'WARNING'); + } + + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + + }, function(xhr, status, error) { + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + console.error('Error fetching data:', error); + console.error(xhr.responseText); + toastr.error('An error occurred while removing the installment.', 'ERROR'); + }); + }else{ + // alert("Inside else"); + $('#no_of_installment').val(row_count); + // $("#is_installment_switch").bootstrapToggle('on'); + // $('#is_installment_switch').val('1').change(); + // $('#is_installment_switch').bootstrapToggle('on'); + // $('#is_installment_switch').prop('checked', true).trigger('change'); + $('#is_installment_switch').trigger('click'); // in some cases, this forces the CSS to update + + + } + }); + } + + } }) + $(document).on("input", "#cd_amount, #premium_amount", function() { // alert("Function called"); @@ -5989,8 +6054,8 @@ function appendMultiFileData(data) { console.log("Form row count:", row_count); if (row_count === 1) { - $installmentContainer.empty(); - for (let index = 0; index < no_of_installments; index++) { + // $installmentContainer.empty(); + for (let index = 0; index < no_of_installments - 1; index++) { addInstallmentHTML(); } } else if (no_of_installments === row_count) { @@ -6008,7 +6073,7 @@ function appendMultiFileData(data) { console.log('ids', ids); - if (ids != null) { + if (Object.keys(ids).length > 0) { Swal.fire({ title: "Do you want to remove the last " + (remove_count ?? "") + " entries?", icon: "warning", @@ -6067,6 +6132,7 @@ function appendMultiFileData(data) { } }); + $(document).ready(function(){ setTimeout(function(){ $('.payment_date').flatpickr({ diff --git a/app/Views/view_rfq_non_eb.php b/app/Views/view_rfq_non_eb.php index 977d1c82..183a1bb1 100644 --- a/app/Views/view_rfq_non_eb.php +++ b/app/Views/view_rfq_non_eb.php @@ -255,6 +255,12 @@ cursor: pointer; user-select: none; } + + .toggle.btn { + height: 38px !important; + line-height: 33px !important; + } + @@ -424,31 +430,66 @@
-
- - "> -
+
">
+
+ + > +
+
">
-
- - "> -
+ + +
+ + "> +
+ +
+ + "> +
+ +
- - "> + + >
+
+ + +
+ + + +
+ + "> +
+ +
+ + "> +
+ + + +
+
+
+

@@ -4790,6 +4831,7 @@ var lead_id = $('#lead_id').val(); let to = $('#placement_to').val(); let placement_date = $('#placement_date').val(); + let payment_date = $('#payment_date').val(); let utr_no = $('#utr_no').val(); let premium_amount = $('#premium_amount').val(); let total_amount = $('#total_amount').val(); @@ -4799,6 +4841,10 @@ let proposal_insurer = $('#proposals option:selected').data('id'); let insurer_and_branch = $('#proposals').val(); let cc = $('#placement_cc').val(); + let is_cd = $("#is_cd_switch").is(":checked") ? 1 : 0; + let no_of_installment = $('#no_of_installment').val(); + let is_installment = $("#is_installment_switch").is(":checked") ? 1 : 0; + // Process `to` field to = to.split(',').map(email => email.trim()); @@ -4810,6 +4856,33 @@ selectedFiles.push($(this).val()); }); + let data = []; + + $('#installment_form_row .form-row').each(function () { + var lead_id = $('#lead_id').val(); + let installment_amount = $(this).find('input[name="installment_amount[]"]').val(); + let payment_date = $(this).find('input[name="payment_date[]"]').val(); + let utr_no = $(this).find('input[name="utr_no[]"]').val(); + let id = $(this).find('input[name="installment_primary_key[]"]').val(); + + + + console.log('installment_primary_key', id); + + let obj = { + lead_id: lead_id, + installment_amount: installment_amount, + payment_date: payment_date, + utr_no: utr_no + }; + + if (id != undefined && id != null && id != '') { + obj.id = id; + } + + data.push(obj); + }); + // Prepare FormData var formData = new FormData(); @@ -4822,12 +4895,17 @@ formData.append('proposal_insurer', proposal_insurer); formData.append('insurer_and_branch', insurer_and_branch); formData.append('placement_date', placement_date); + formData.append('payment_date', payment_date); + formData.append("is_cd",is_cd); formData.append('utr_no', utr_no); formData.append('premium_amount', premium_amount); formData.append('total_amount', total_amount); formData.append('cd_amount', cd_amount); formData.append('mail_content', mail_content); formData.append('selected_attachment_files', JSON.stringify(selectedFiles)); + formData.append('installments', JSON.stringify(data)); + formData.append('no_of_installment', no_of_installment); + formData.append('is_installment', is_installment); ajaxRequest(formData); @@ -5203,6 +5281,316 @@ return false; } + $(document).on("input", "#cd_amount, #premium_amount", function() { + + // alert("Function called"); + + var cd_amount = parseInt($("#cd_amount").val()) || 0; + var premium_amount = parseInt($("#premium_amount").val()) || 0; + + var total_amount = (cd_amount + premium_amount); + $("#total_amount").val(total_amount); + + + }); + + $("#is_cd_switch").change(function (){ + var switch_status = ($("#is_cd_switch").is(":checked")? "on" : "off"); + console.log("Switch status",switch_status); + if (switch_status == "on"){ + + $("#cd_amount").show(); + $("#total_amount").show(); + $("#cd_amount").closest('.form-group').show(); + $("#total_amount").closest('.form-group').show(); + + }else{ + + $("#cd_amount").hide(); + $("#total_amount").hide(); + $("#cd_amount").closest('.form-group').hide(); + $("#total_amount").closest('.form-group').hide(); + + } + }) + + $("#is_installment_switch").change(function (){ + + var switch_status = ($(this).is(":checked")? "on" : "off"); + console.log("Switch status",switch_status); + if (switch_status == "on"){ + $("#no_of_installment").show(); + $("#payment_date").hide(); + $("#utr_no").hide(); + $("#no_of_installment").closest('.form-group').show(); + $("#payment_date").closest('.form-group').hide(); + $("#utr_no").closest('.form-group').hide(); + let $installmentContainer = $('#installment_form_row'); + let row_count = $installmentContainer.find('.form-row').length; + + if (row_count == 0 ) { addInstallmentHTML()} + // addInstallmentHTML() + }else{ + console.log("inside else") + + let $installmentContainer = $('#installment_form_row'); + let row_count = $installmentContainer.find('.form-row').length; + let remove_count = $("#no_of_installment").val(); + console.log("row count",row_count); + if (row_count > 0 ) { + let ids = $installmentContainer.find('.form-row').slice(-remove_count).find('input[name="installment_primary_key[]"]').map(function() { + return $(this).val(); + }).get(); + Swal.fire({ + title: "Do you want to remove all the entries?", + icon: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + confirmButtonText: "Yes, Proceed!" + }).then((result) => { + if (result.isConfirmed) { + let url = ''; + let requestData = { id: ids }; + + $('.loader').fadeIn(); + $('.loader-mask').fadeIn(); + + sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) { + console.log('Data fetched successfully:', response); + + if (response.status === true) { + toastr.success(response.message, 'SUCCESS'); + $("#no_of_installment").hide(); + $("#payment_date").show(); + $("#utr_no").show(); + $("#no_of_installment").closest('.form-group').hide(); + $("#payment_date").closest('.form-group').show(); + $("#utr_no").closest('.form-group').show(); + $('#installment_form_row').empty(); + $('#no_of_installment').val(""); + } else { + toastr.error(response.message, 'WARNING'); + } + + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + + }, function(xhr, status, error) { + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + console.error('Error fetching data:', error); + console.error(xhr.responseText); + toastr.error('An error occurred while removing the installment.', 'ERROR'); + }); + }else{ + // alert("Inside else"); + $('#no_of_installment').val(row_count); + // $("#is_installment_switch").bootstrapToggle('on'); + // $('#is_installment_switch').val('1').change(); + // $('#is_installment_switch').bootstrapToggle('on'); + // $('#is_installment_switch').prop('checked', true).trigger('change'); + $('#is_installment_switch').trigger('click'); // in some cases, this forces the CSS to update + + + } + }); + } + + } + }) + + $('#no_of_installment').on('change', function () { + let no_of_installments = parseInt($(this).val()); + let $installmentContainer = $('#installment_form_row'); + let row_count = $installmentContainer.find('.form-row').length; + + console.log("Form row count:", row_count); + + if (row_count === 1) { + // $installmentContainer.empty(); + for (let index = 0; index < no_of_installments - 1; index++) { + addInstallmentHTML(); + } + } else if (no_of_installments === row_count) { + console.log('Same row count, no change needed.'); + } else if (no_of_installments < row_count) { + + // Remove extra rows from the end + let remove_count = row_count - no_of_installments; + let ids = $installmentContainer.find('.form-row') + .slice(-remove_count) + .find('input[name="installment_primary_key[]"]') + .map(function() { + return $(this).val(); + }).get(); + + console.log('ids', ids); + + if (Object.keys(ids).length > 0) { + Swal.fire({ + title: "Do you want to remove the last " + (remove_count ?? "") + " entries?", + icon: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + confirmButtonText: "Yes, Proceed!" + }).then((result) => { + if (result.isConfirmed) { + let url = ''; + let requestData = { id: ids }; + + $('.loader').fadeIn(); + $('.loader-mask').fadeIn(); + + sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) { + console.log('Data fetched successfully:', response); + + if (response.status === true) { + toastr.success(response.message, 'SUCCESS'); + $installmentContainer.find('.form-row').slice(-remove_count).remove(); + } else { + toastr.error(response.message, 'WARNING'); + } + + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + + }, function(xhr, status, error) { + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + console.error('Error fetching data:', error); + console.error(xhr.responseText); + toastr.error('An error occurred while removing the installment.', 'ERROR'); + }); + }else{ + $('#no_of_installment').val(row_count); + } + }); + } else { + $installmentContainer.find('.form-row').slice(-remove_count).remove(); + } + + } else if (no_of_installments > row_count) { + // Add extra rows from the end + let add_count = no_of_installments - row_count; + for (let index = 0; index < add_count; index++) { + addInstallmentHTML(); + } + } else { + // Add missing rows + let add_count = no_of_installments - row_count; + for (let index = 0; index < add_count; index++) { + addInstallmentHTML(); + } + } + }); + + function addInstallmentHTML() { + let html = ` +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ `; + + $('#installment_form_row').append(html); + + $('.payment_date').flatpickr({ + dateFormat: 'd/m/Y', + }); + } + + $(document).ready(function(){ + setTimeout(function(){ + $('.payment_date').flatpickr({ + dateFormat: 'd/m/Y', + }); + }, 2000) + + // $('#is_installment_switch').bootstrapToggle(); + + }) + + $(document).on('click', '.remove-installment', function () { + let $this = $(this); // Store reference to the clicked element + let row_count = $('#installment_form_row .form-row').length; + console.log("row_count", row_count); + + let id = $this.closest('.form-row').find('input[name="installment_primary_key[]"]').val() ?? null; + console.log("id", id); + let ids = id ? [id] : []; + console.log("ids", ids); + + if (id != null && row_count > 1) { + Swal.fire({ + title: "Do you want to remove this?", + icon: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + confirmButtonText: "Yes, Proceed!" + }).then((result) => { + if (result.isConfirmed) { + let url = ''; + let requestData = { id: ids }; + + $('.loader').fadeIn(); + $('.loader-mask').fadeIn(); + + sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) { + console.log('Data fetched successfully:', response); + + if (response.status === true) { + toastr.success(response.message, 'SUCCESS'); + + $this.closest('.form-row').remove(); + let updated_row_count = $('#installment_form_row .form-row').length; + $('#no_of_installment').val(updated_row_count); + console.log("after remove row_count", updated_row_count); + } else { + toastr.error(response.message, 'WARNING'); + } + + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + + }, function(xhr, status, error) { + $('.loader').fadeOut(); + $('.loader-mask').delay(350).fadeOut('slow'); + console.error('Error fetching data:', error); + console.error(xhr.responseText); + toastr.error('An error occurred while removing the installment.', 'ERROR'); + }); + } + }); + } else { + if (row_count > 1) { + $this.closest('.form-row').remove(); + let updated_row_count = $('#installment_form_row .form-row').length; + $('#no_of_installment').val(updated_row_count); + console.log("after remove row_count", updated_row_count); + } else { + console.log("Only one row left. Not removing."); + } + } + });