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);
|
$installment_data = json_decode($params['installments'], true);
|
||||||
if(!empty($installment_data)){
|
if(!empty($installment_data)){
|
||||||
foreach ($installment_data as $key => $value) {
|
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'])){
|
if(isset($value['id']) && !empty($value['id'])){
|
||||||
$this->leadInstallmentPaymentDetails->where('id', $value['id'])->set($value)->update();
|
$this->leadInstallmentPaymentDetails->where('id', $value['id'])->set($value)->update();
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@ -550,7 +550,7 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<div id="installment_form_row">
|
<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>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
@ -5826,6 +5826,7 @@ function appendMultiFileData(data) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
$("#is_installment_switch").change(function (){
|
$("#is_installment_switch").change(function (){
|
||||||
|
|
||||||
var switch_status = ($(this).is(":checked")? "on" : "off");
|
var switch_status = ($(this).is(":checked")? "on" : "off");
|
||||||
console.log("Switch status",switch_status);
|
console.log("Switch status",switch_status);
|
||||||
if (switch_status == "on"){
|
if (switch_status == "on"){
|
||||||
@ -5835,8 +5836,42 @@ function appendMultiFileData(data) {
|
|||||||
$("#no_of_installment").closest('.form-group').show();
|
$("#no_of_installment").closest('.form-group').show();
|
||||||
$("#payment_date").closest('.form-group').hide();
|
$("#payment_date").closest('.form-group').hide();
|
||||||
$("#utr_no").closest('.form-group').hide();
|
$("#utr_no").closest('.form-group').hide();
|
||||||
addInstallmentHTML()
|
let $installmentContainer = $('#installment_form_row');
|
||||||
|
let row_count = $installmentContainer.find('.form-row').length;
|
||||||
|
|
||||||
|
if (row_count == 0 ) { addInstallmentHTML()}
|
||||||
|
// addInstallmentHTML()
|
||||||
}else{
|
}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();
|
$("#no_of_installment").hide();
|
||||||
$("#payment_date").show();
|
$("#payment_date").show();
|
||||||
$("#utr_no").show();
|
$("#utr_no").show();
|
||||||
@ -5844,9 +5879,39 @@ function appendMultiFileData(data) {
|
|||||||
$("#payment_date").closest('.form-group').show();
|
$("#payment_date").closest('.form-group').show();
|
||||||
$("#utr_no").closest('.form-group').show();
|
$("#utr_no").closest('.form-group').show();
|
||||||
$('#installment_form_row').empty();
|
$('#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() {
|
$(document).on("input", "#cd_amount, #premium_amount", function() {
|
||||||
|
|
||||||
// alert("Function called");
|
// alert("Function called");
|
||||||
@ -5989,8 +6054,8 @@ function appendMultiFileData(data) {
|
|||||||
console.log("Form row count:", row_count);
|
console.log("Form row count:", row_count);
|
||||||
|
|
||||||
if (row_count === 1) {
|
if (row_count === 1) {
|
||||||
$installmentContainer.empty();
|
// $installmentContainer.empty();
|
||||||
for (let index = 0; index < no_of_installments; index++) {
|
for (let index = 0; index < no_of_installments - 1; index++) {
|
||||||
addInstallmentHTML();
|
addInstallmentHTML();
|
||||||
}
|
}
|
||||||
} else if (no_of_installments === row_count) {
|
} else if (no_of_installments === row_count) {
|
||||||
@ -6008,7 +6073,7 @@ function appendMultiFileData(data) {
|
|||||||
|
|
||||||
console.log('ids', ids);
|
console.log('ids', ids);
|
||||||
|
|
||||||
if (ids != null) {
|
if (Object.keys(ids).length > 0) {
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title: "Do you want to remove the last " + (remove_count ?? "") + " entries?",
|
title: "Do you want to remove the last " + (remove_count ?? "") + " entries?",
|
||||||
icon: "warning",
|
icon: "warning",
|
||||||
@ -6067,6 +6132,7 @@ function appendMultiFileData(data) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
$('.payment_date').flatpickr({
|
$('.payment_date').flatpickr({
|
||||||
|
|||||||
@ -256,6 +256,12 @@
|
|||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.toggle.btn {
|
||||||
|
height: 38px !important;
|
||||||
|
line-height: 33px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
@ -424,31 +430,66 @@
|
|||||||
|
|
||||||
<div class="form-row">
|
<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">
|
<div class="form-group col-md-3">
|
||||||
<label for="placement_date">Placement Date</label>
|
<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'])) : "" ?>">
|
<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>
|
||||||
|
|
||||||
|
<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">
|
<div class="form-group col-md-3">
|
||||||
<label for="premium_amount">Premium Amount</label>
|
<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'] : "" ?>">
|
<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>
|
||||||
|
|
||||||
<div class="form-group col-md-3">
|
<?php if (isset($lead_data['is_cd']) && $lead_data['is_cd'] == 1 || !isset($lead_data['is_cd'])) { ?>
|
||||||
<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>
|
|
||||||
|
|
||||||
<div class="form-group col-md-3">
|
<div class="form-group col-md-3">
|
||||||
<label for="cd_amount">CD Amount</label>
|
<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'] : "" ?>">
|
<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>
|
||||||
|
|
||||||
|
<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="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>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
@ -4790,6 +4831,7 @@
|
|||||||
var lead_id = $('#lead_id').val();
|
var lead_id = $('#lead_id').val();
|
||||||
let to = $('#placement_to').val();
|
let to = $('#placement_to').val();
|
||||||
let placement_date = $('#placement_date').val();
|
let placement_date = $('#placement_date').val();
|
||||||
|
let payment_date = $('#payment_date').val();
|
||||||
let utr_no = $('#utr_no').val();
|
let utr_no = $('#utr_no').val();
|
||||||
let premium_amount = $('#premium_amount').val();
|
let premium_amount = $('#premium_amount').val();
|
||||||
let total_amount = $('#total_amount').val();
|
let total_amount = $('#total_amount').val();
|
||||||
@ -4799,6 +4841,10 @@
|
|||||||
let proposal_insurer = $('#proposals option:selected').data('id');
|
let proposal_insurer = $('#proposals option:selected').data('id');
|
||||||
let insurer_and_branch = $('#proposals').val();
|
let insurer_and_branch = $('#proposals').val();
|
||||||
let cc = $('#placement_cc').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
|
// Process `to` field
|
||||||
to = to.split(',').map(email => email.trim());
|
to = to.split(',').map(email => email.trim());
|
||||||
@ -4810,6 +4856,33 @@
|
|||||||
selectedFiles.push($(this).val());
|
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
|
// Prepare FormData
|
||||||
var formData = new FormData();
|
var formData = new FormData();
|
||||||
@ -4822,12 +4895,17 @@
|
|||||||
formData.append('proposal_insurer', proposal_insurer);
|
formData.append('proposal_insurer', proposal_insurer);
|
||||||
formData.append('insurer_and_branch', insurer_and_branch);
|
formData.append('insurer_and_branch', insurer_and_branch);
|
||||||
formData.append('placement_date', placement_date);
|
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('utr_no', utr_no);
|
||||||
formData.append('premium_amount', premium_amount);
|
formData.append('premium_amount', premium_amount);
|
||||||
formData.append('total_amount', total_amount);
|
formData.append('total_amount', total_amount);
|
||||||
formData.append('cd_amount', cd_amount);
|
formData.append('cd_amount', cd_amount);
|
||||||
formData.append('mail_content', mail_content);
|
formData.append('mail_content', mail_content);
|
||||||
formData.append('selected_attachment_files', JSON.stringify(selectedFiles));
|
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);
|
ajaxRequest(formData);
|
||||||
@ -5203,6 +5281,316 @@
|
|||||||
return false;
|
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>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user