FEAT_PLACEMENT_INSTALLMENTS
This commit is contained in:
parent
abc16e74e4
commit
f1e66204bf
@ -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{
|
||||
|
||||
@ -550,7 +550,7 @@
|
||||
|
||||
<hr>
|
||||
<div id="installment_form_row">
|
||||
<?= 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'] : '' ?>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
@ -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 = '<?= 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
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
$(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({
|
||||
|
||||
@ -255,6 +255,12 @@
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.toggle.btn {
|
||||
height: 38px !important;
|
||||
line-height: 33px !important;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
@ -424,31 +430,66 @@
|
||||
|
||||
<div class="form-row">
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="utr_no">UTR No.</label>
|
||||
<input type="text" class="form-control" id="utr_no" name="utr_no" placeholder="Enter UTR No." value="<?= isset($lead_data['utr_no']) ? $lead_data['utr_no'] : "" ?>">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="placement_date">Placement Date</label>
|
||||
<input type="text" class="form-control" id="placement_date" name="placement_date" placeholder="DD/MM/YYY" value="<?= isset($lead_data['placement_date']) ? date('d/m/Y', strtotime($lead_data['placement_date'])) : "" ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="is_cd_switch">CD Entry</label>
|
||||
<input id="is_cd_switch" type="checkbox" name = "is_cd" value = "1" data-toggle="toggle" data-on="With CD" data-off="Without CD" data-onstyle="info" data-offstyle="dark" data-style="border" data-width="218" <?= isset($lead_data['is_cd']) && $lead_data['is_cd'] != 1 ? '' : 'checked' ?>>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="premium_amount">Premium Amount</label>
|
||||
<input type="text" class="form-control" id="premium_amount" name="premium_amount" placeholder="Enter Premium Amount" value="<?= isset($lead_data['premium_amount']) ? $lead_data['premium_amount'] : "" ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="total_amount">Total Amount</label>
|
||||
<input type="text" class="form-control" id="total_amount" name="total_amount" placeholder="Enter Total Amount" value="<?= isset($lead_data['total_amount']) ? $lead_data['total_amount'] : "" ?>">
|
||||
</div>
|
||||
<?php if (isset($lead_data['is_cd']) && $lead_data['is_cd'] == 1 || !isset($lead_data['is_cd'])) { ?>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="cd_amount">CD Amount</label>
|
||||
<input type="text" class="form-control" id="cd_amount" name="cd_amount" placeholder="Enter CD Amount" value="<?= isset($lead_data['cd_amount']) ? $lead_data['cd_amount'] : "" ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="total_amount">Total Amount</label>
|
||||
<input type="text" class="form-control" id="total_amount" name="total_amount" placeholder="Enter Total Amount" value="<?= isset($lead_data['cd_amount']) ? $lead_data['cd_amount'] : "" ?>">
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="cd_amount">CD Amount</label>
|
||||
<input type="text" class="form-control" id="cd_amount" name="cd_amount" placeholder="Enter CD Amount" value="<?= isset($lead_data['cd_amount']) ? $lead_data['cd_amount'] : "" ?>">
|
||||
<label for="is_installment_switch">Installemnt </label>
|
||||
<input id="is_installment_switch" type="checkbox" name = "is_installment" value = "1" data-toggle="toggle" data-on="With Installments" data-off="Without Installments" data-onstyle="info" data-offstyle="dark" data-style="border" data-width="218" style="height: 37.53px;" <?= isset($lead_data['is_installment']) && $lead_data['is_installment'] == 1 ? 'checked' : '' ?>>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3" style="<?= (!empty($lead_data['is_installment']) && $lead_data['is_installment'] == 1) ? 'display: block;' : 'display: none;' ?>">
|
||||
<label for="no_of_installment">No of Installments</label>
|
||||
<input type="text" class="form-control" id="no_of_installment" name="no_of_installment"
|
||||
value="<?= isset($lead_data['no_of_installment']) ? $lead_data['no_of_installment'] : 1 ?>">
|
||||
</div>
|
||||
|
||||
<?php if (isset($lead_data['is_installment']) && $lead_data['is_installment'] == 0 || !isset($lead_data['is_installment'])) { ?>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="payment_date">Payment Date</label>
|
||||
<input type="text" class="form-control" id="payment_date" name="payment_date" placeholder="DD/MM/YYY" value="<?= isset($lead_data['payment_date']) ? date('d/m/Y', strtotime($lead_data['payment_date'])) : "" ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="utr_no">UTR No.</label>
|
||||
<input type="text" class="form-control" id="utr_no" name="utr_no" placeholder="Enter UTR No." value="<?= isset($lead_data['utr_no']) ? $lead_data['utr_no'] : "" ?>">
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
<hr>
|
||||
<div id="installment_form_row">
|
||||
<?= isset($lead_data['is_installment']) && $lead_data['is_installment'] == 1 && isset($lead_data['installment_data']) && !empty($lead_data['installment_data']) ? $lead_data['installment_data'] : '' ?>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-row">
|
||||
@ -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 = `
|
||||
<div class="form-row align-items-end">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="installment_amount">Installment Amount</label>
|
||||
<input type="text" class="form-control" name="installment_amount[]" placeholder="Enter Amount">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="payment_date">Payment Date</label>
|
||||
<input type="text" class="form-control payment_date" name="payment_date[]" placeholder="DD/MM/YYYY">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="utr_no">UTR No.</label>
|
||||
<input type="text" class="form-control" name="utr_no[]" placeholder="Enter UTR No.">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-2">
|
||||
<button type="button" class="btn btn-danger remove-installment">X</button>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
$('#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.");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user