nhance/app/Views/cd_master_add_modal.php
2026-03-13 17:31:48 +05:30

369 lines
16 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- modal content -->
<div id="con-close-modal" class="modal fade app-font-family" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog modal-dialog-centered modal-lg" <?= !isset($CD_Master_Data) ? 'style="max-width: 35% !important; margin:5px auto!important;"' : '' ?>>
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="title">Add Opening Amount</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" onclick="resetCdMasterFormModal()">×</button>
</div>
<div class="modal-body">
<div class="">
<form role="form" class="parsley-examples" id="CDMasterForm" enctype="multipart/form-data">
<input type="hidden" name="PrimaryKey" id="CD_Master_ID" />
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-6">
<label for="emp_code">Client<span class="text-danger">*</span></label>
<select class="form-control <?= !isset($CD_Master_Data) ? 'readonly-select' : '' ?>" id="cd_client_id" name="client_id" required>
<option value="" >Select Client</option>
<?php foreach($clients as $value) {
if(isset($client['id']) && $value['id'] == $client['id']){
$client_select = "selected";
}else{
$client_select = "";
}
?>
<option value="<?= $value['id'] ?>" <?= $client_select ?>><?= $value['client_name'] ?></option>
<?php } ?>
</select>
</div>
<div class="form-group col-md-6">
<label for="profile">Insurer<span class="text-danger">*</span></label>
<select class="form-control <?= !isset($CD_Master_Data) ? 'readonly-select' : '' ?>" id="insurer_id_for_cd" name="insurer_id" <?= isset($CD_Master_Data) ? 'onchange="filterInsurerBranch(this)"' : '' ?> required>
<option value="">Select Insurer</option>
<?php foreach($insurers as $value) { ?>
<option value="<?= $value['id'] ?>"><?= $value['name'] ?></option>
<?php } ?>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="insurer_branch_id">Insurer Branch<span class="text-danger">*</span></label>
<select class="form-control <?= !isset($CD_Master_Data) ? 'readonly-select' : '' ?>" id="insurer_branch_id" name="insurer_branch_id" onchange="checkDuplicateCdAccount(this)" required>
<option value="">Select Insurer Branch</option>
<?php if(isset($insurer_branch) && !empty($insurer_branch))
{ foreach($insurer_branch as $branch) { ?>
<option data-insurer="<?= $branch['insurer_id'] ?>" value="<?= $branch['id'] ?>"><?= $branch['branch_name'] ?></option>
<?php } } ?>
</select>
</div>
<div class="form-group col-md-6">
<label for="email">Opening Date<span class="text-danger">*</span></label>
<div class="input-icon">
<input type="text" class="form-control" name="opening_date" id="opening_date" required>
<i class="mdi mdi-calendar-blank-outline additional-icon"></i>
</div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="mobile">CD Account Number<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="cd_ac_no_for_cd_master" name="cd_ac_no" onkeypress="return onlyNumbers(event)" required data-parsley-type="digits">
<small style="margin-left: 10px;font-size: 10px;"><span class="text-danger" id="cd_ac_no_for_cd_master_errorr"></span></small>
</div>
<div class="form-group col-md-6">
<label for="mobile">Opening Amount<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="opening_bal" name="opening_bal" onkeypress="return onlyNumbers(event)" required data-parsley-type="digits">
</div>
</div>
</div>
<div id="cdButtonWrapper" class="form-group text-right m-b-0">
<button class="btn app-btn-outline-secondary mr-2 " type="button" class="close" data-dismiss="modal" aria-hidden="true" onclick="resetCdMasterFormModal()">Cancel</button>
<button class="btn btn-primary waves-effect waves-light" id="cd_master_btn_Submit">Submit</button>
<!-- <button type="button" class="btn btn-secondry waves-effect waves-light mr-1" data-dismiss="modal" aria-hidden="true">Close</button> -->
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- /.modal -->
<script>
//checking and setting this is CD master page or not
var isCdMasterPage = <?php echo isset($CD_Master_Data) ? 'true' : 'false'; ?>;
console.log("isCdMasterPage", isCdMasterPage);
$(document).ready(function(){
var openingDatePicker = flatpickr("#opening_date", {
dateFormat: "d-m-Y",
allowInput: false
});
if(isCdMasterPage == true){
$('#cd_client_id').select2();
$('#insurer_id_for_cd').select2();
$('#insurer_branch_id').select2();
}
})
$('#cd_ac_no_for_cd_master').keyup(function(){
console.log('key chnage detected');
var cd_ac_no = $(this).val();
console.log(cd_ac_no +'-'+cd_ac_no.length);
cd_ac_no = cd_ac_no.trim();
console.log(cd_ac_no +'-'+cd_ac_no.length);
$.ajax({
url: '<?php echo base_url('util/check_cd_ac_no/');?>'+cd_ac_no,
type: "GET",
dataType: 'json',
success: function (res) {
console.log(res)
if(res.status == true){
$('#cd_ac_no_for_cd_master_errorr').text(res.message);
// toastr.warning(res.message, 'Warning');
// $('#cd_ac_no').val('');
$('#cd_master_btn_Submit').prop('disabled',true);
return;
}
$('#cd_master_btn_Submit').prop('disabled',false);
$('#cd_ac_no_for_cd_master_errorr').text('');
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
})
$('#CDMasterForm').submit(function(event) {
event.preventDefault();
console.log("submit CD Master Form Data function called");
var isValid = $('#CDMasterForm').parsley().validate();
if (!isValid) {
$('#CDMasterForm').find('input, select, textarea').each(function() {
if ($(this).parsley().isValid() === false && !$(this).val()) {
console.log('Empty field ID:', this.id);
}
});
console.log('Form is Empty', 'Warning');
return;
}
let formData = new FormData($('#CDMasterForm')[0]);
console.log("formData", formData);
let url = '<?= base_url('master/cash_deposite/create') ?>';
console.log("url", url);
$.ajax({
data: formData,
url: url,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log('CD Mater Form Submit Responce', res);
if (res.status == true) {
toastr.success(res.message, 'Success');
if(isCdMasterPage == false){
appendCDACNO(res.data, res.cd_master_data.id);
// appendCdAccNo(res.cd_master_data);
}
} else {
toastr.warning(res.message, 'Warning');
}
//this function for reset the form values after submitting the form or closing the form
resetCdMasterFormModal()
$('.close').click();
//if this page is CD mater form page than the page reload other wise not to reload
if(isCdMasterPage == true){
window.location.href = '<?= base_url('master/cash_deposite/list') ?>';
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
if (xhr.status === 400) {
let response = JSON.parse(xhr.responseText);
let errorMessages = "";
let seenMessages = []; // Array to store unique messages
if (response.errors) {
$.each(response.errors, function (field, message) {
if (!seenMessages.includes(message)) {
errorMessages += `• ${message}<br>`;
seenMessages.push(message); // Mark this message as "seen"
}
});
toastr.error(errorMessages, 'Validation Error', { "allowHtml": true });
} else {
toastr.warning(response.message || 'Validation failed', 'Warning');
}
} else if (xhr.status === 403) {
let response = JSON.parse(xhr.responseText);
toastr.error(response.message, 'Security Policy');
} else if (xhr.status === 500) {
toastr.error('Something went wrong . Please try again later.', 'Server Error');
} else {
toastr.error('An unexpected error occurred. Please try again later.', 'Error');
}
toastr.error('An error occurred while adding the CD account number.', 'Error');
}
});
});
function onlyNumbers(event) {
var charcode;
charcode = event.which || event.keyCode;
if (charcode >= 48 && charcode <= 57 || charcode == 46) return true;
return false;
}
function resetCdMasterFormModal(){
console.log("resetCdMasterFormModal() function called");
$('#CD_Master_ID').val('');
$('#opening_date').val('');
$('#cd_ac_no_for_cd_master').val('');
$('#opening_bal').val('');
$('#CDMasterForm').parsley().reset();
$('#cd_ac_no_for_cd_master').prop("disabled", false);
$('#opening_bal').prop("disabled", false);
if(isCdMasterPage == true){
$('#cd_client_id').val('').select2();
$('#insurer_id_for_cd').val('').select2();
$('#insurer_branch_id').val('').select2();
$('#cd_client_id').prop("disabled", false);
$('#insurer_id_for_cd').prop("disabled", false);
$('#insurer_branch_id').prop("disabled", false);
$('#CDMasterForm')[0].reset();
}
}
function filterInsurerBranch(input) {
console.log("filterInsurerBranch function called");
let insurer_id = $(input).val();
console.log("insurer_id", insurer_id);
let branch_data = <?= isset($insurer_branch) && !empty($insurer_branch) ? json_encode($insurer_branch) : '[]' ?>;
console.log("branch_data", branch_data);
let filteredBranches = branch_data.filter(branch => branch.insurer_id == insurer_id);
console.log("filteredBranches", filteredBranches);
let $branchSelect = $('#insurer_branch_id');
$branchSelect.empty().append('<option value="">Select Insurer Branch</option>');
filteredBranches.forEach(branch => {
$branchSelect.append(
$('<option>', {
value: branch.id,
text: branch.branch_name
})
);
});
$branchSelect.val('').select2();
}
function showCdMasterAddModal(){
if(isCdMasterPage == true){
$('#client_id').val('');
$('#insurer_id_for_cd').val('');
$('#insurer_branch_id').val('');
}
$('#opening_date').val('');
$('#cd_ac_no_for_cd_master').val('');
// $('#CDMasterForm').attr('action', '<?php echo base_url('master/cash_deposite/create');?>');
$('#title').html('Add Opening Amount');
$('#cd_master_btn_Submit').html('Submit');
var myModal = new bootstrap.Modal(document.getElementById('con-close-modal'));
myModal.show();
}
function appendCdAccNo(data) {
console.log("appendCdAccNo function called :", data);
const option = $('<option>', {
value: data.id,
text: data.cd_ac_no,
selected: true // directly set selected in the object
});
console.log("option", option);
$('#cd_ac_no_for_cd_master').append(option);
}
function checkDuplicateCdAccount(){
let url = '<?= base_url('util/checkDuplicateCdAccount') ?>';
let client_id = $('#cd_client_id').val();
let insurer_id = $('#insurer_id_for_cd').val();
let insurer_branch_id = $('#insurer_branch_id').val();
console.log({client_id, insurer_id, insurer_branch_id});
// Data to send in the AJAX request
let requestData = {
client_id: client_id,
insurer_id: insurer_id,
insurer_branch_id: insurer_branch_id,
};
if(client_id != "" && insurer_id != "" && insurer_branch_id != ""){
// Send AJAX request
sendAjaxRequestForGlobal(url, 'GET', requestData, function(response) {
console.log('Data fetched successfully:', response);
if (response.status == true) {
console.log('No dublicate found');
} else {
$('#cd_client_id').val('').select2();
$('#insurer_id_for_cd').val('').select2();
$('#insurer_branch_id').val('').select2();
toastr.warning(response.message, 'Warning');
}
}, function(xhr, status, error) {
console.error('Error fetching data:', error);
console.error(xhr.responseText);
toastr.error('An error occurred while checking the CD amount.', 'Error');
});
}
}
</script>