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 @@
- = isset($lead_data['installment_data']) && !empty($lead_data['installment_data']) ? $lead_data['installment_data'] : '' ?>
+ = isset($lead_data['is_installment']) && $lead_data['is_installment'] == 1 && isset($lead_data['installment_data']) && !empty($lead_data['installment_data']) ? $lead_data['installment_data'] : '' ?>
+ = isset($lead_data['is_installment']) && $lead_data['is_installment'] == 1 && isset($lead_data['installment_data']) && !empty($lead_data['installment_data']) ? $lead_data['installment_data'] : '' ?>
@@ -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 = '= base_url('util/removeInstallments') ?>';
+ 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 = '= base_url('util/removeInstallments') ?>';
+ 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 = '= base_url('util/removeInstallments') ?>';
+ 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.");
+ }
+ }
+ });