donation/app/Views/invoice_form.php

793 lines
43 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.

<style>
td .select2-container {
width: 249px !important;
}
.fe-plus-circle:hover {
color: #ff0000;
/* Change to the desired hover color */
}
.spinner-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.7);
display: none;
}
.spinner-overlay.active {
display: flex;
justify-content: center;
align-items: center;
}
.spinner-border {
z-index: 1;
}
</style>
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-lg-6">
<h4 class="header-title"><?= $page_name; ?></h4>
</div>
</div>
<br>
<form method="POST" enctype="multipart/form-data" action="<?= base_url() . "save_invoice"; ?>" class="main-form" id="recepitForm">
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<label for="receipt_type" class="col-form-label">Type</label>
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" class="receipt_type" name="receipt_type" value="individual" <?php if ($receipt_type == "individual") echo "checked"; ?> onchange="get_donor_details(this.value);">
Individual
&nbsp;
<input type="radio" class="receipt_type" name="receipt_type" value="organization" <?php if ($receipt_type == "organization") echo "checked"; ?> onchange="get_donor_details(this.value);">
Organization
</div>
</div>
<div class="form-row">
<?php
// print_r($currencies);
$uniqueData = [];
$mobileNumbers = [];
$selected_donor_mobile = "";
$selected_donor_id = isset($receipt_details['donor_id']) ? $receipt_details['donor_id'] : "";
foreach ($typebaseddonors as $object) {
$mobile = $object->mobile_no;
if ($object->donor_id == $selected_donor_id) {
$selected_donor_mobile = $mobile;
}
if (!isset($mobileNumbers[$mobile])) {
$mobileNumbers[$mobile] = true;
$uniqueData[] = $object;
}
}
?>
<div class="form-group col-md-6">
<label for="customerMobile" class="col-form-label dm_label">Contributor Mobile<span class="text-danger"> *</span></label>
<!-- <?php if (get_user_role() != 'accounts') { ?>
&nbsp;&nbsp;&nbsp;&nbsp;
<i type="button" class="fe-plus-circle" id="add-quk-donar" style="font-size: 24px;" data-toggle="modal" data-target="#standard-modal" title="Add Contributor "></i>
<?php } ?> -->
<!-- <select class="form-control" id="donor_mobile" name="donor_mobile" required data-toggle="select2">
<option value="">--Select--</option>
<?php if (get_user_role() != 'accounts') { ?> <option class="blueText" value="0"> + Add a donor</option> <?php } ?>
<?php foreach ($typebaseddonors as $customer) : ?>
<option value="<?= $customer->mobile_no ?>" <?php if (isset($receipt_details['donor_id']) && ($receipt_details['donor_id'] == $customer->donor_id)) echo "selected"; ?>> <?= $customer->mobile_no ?> </option>
<?php endforeach; ?>
</select> -->
<select class="form-control" id="donor_mobile" name="donor_mobile" required data-toggle="select2">
<option value="">--Select--</option>
<?php if (get_user_role() != 'accounts') : ?>
<option class="blueText" value="0"> + Add a Contributor </option>
<?php endif; ?>
<?php foreach ($uniqueData as $customer) : ?>
<option value="<?= $customer->mobile_no ?>" <?php if ($selected_donor_mobile == $customer->mobile_no) echo "selected"; ?>> <?= $customer->mobile_no ?> </option>
<?php endforeach; ?>
</select>
</div>
<div class="form-group col-md-6">
<label for="donor_first_name" class="col-form-label dfn_label">Contributor Name<span class="text-danger"> *</span></label>
<select class="form-control" id="donor_first_name" name="donor_id" required data-toggle="select2">
<option value="">--Select--</option>
<?php if (get_user_role() != 'accounts') { ?> <option class="blueText" value="0"> + Add a Contributor</option><?php } ?>
<?php foreach ($typebaseddonors as $customer) : ?>
<option value="<?= $customer->donor_id ?>" <?php if (isset($receipt_details['donor_id']) && ($receipt_details['donor_id'] == $customer->donor_id)) echo "selected"; ?>>
<?php if ($receipt_type == "individual") : echo $customer->first_name; endif; ?>
<?php if ($receipt_type == "organization") : echo $customer->org_name.' - '.$customer->pan_no; endif; ?>
</option>
<?php endforeach;?>
</select>
</div>
<div class="form-group col-md-6">
<label for="event" class="col-form-label">Causes<span class="text-danger"> *</span></label>
<select class="form-control" id="event" name="causes_id" required>
<option value="">--Select--</option>
<?php foreach ($causes as $causesData) : if (date("Y-m-d") >= $causesData->from_date && date("Y-m-d") <= $causesData->to_date || $causesData->from_date == '' && $causesData->to_date == '') { ?>
<option value="<?= $causesData->causes_id ?>" <?php if (isset($receipt_details['causes_id']) && ($receipt_details['causes_id'] === $causesData->causes_id)) echo "selected"; ?>><?= $causesData->name ?> <?= ($causesData->from_date != '') ? '(' . date("d-m-Y", strtotime($causesData->from_date)) . ' - ' . date("d-m-Y", strtotime($causesData->to_date)) . ' )' : ''; ?> </option>
<?php } else {
if (isset($receipt_details['causes_id']) && ($receipt_details['causes_id'] === $causesData->causes_id)) { ?>
<option value="<?= $causesData->causes_id ?>" <?php if (isset($receipt_details['causes_id']) && ($receipt_details['causes_id'] === $causesData->causes_id)) echo "selected disabled"; ?>><?= $causesData->name ?> ( <?= date("d-m-Y", strtotime($causesData->from_date)) ?> - <?= date("d-m-Y", strtotime($causesData->to_date)) ?> )</option>
<?php }
}
endforeach; ?>
</select>
</div>
<div class="form-group col-md-6">
<label for="event" class="col-form-label">Campaign</label>
<select class="form-control" id="campaign" name="campaign_id" data-toggle="select2">
<option value="">--Select--</option>
<?php foreach ($campaign as $cam) : if (date("Y-m-d") >= $cam->start_date && date("Y-m-d") <= $cam->end_date || $cam->start_date == '' && $cam->end_date == '') { ?>
<option value="<?= $cam->campaign_id ?>" <?php if (isset($receipt_details['campaign_id']) && ($receipt_details['campaign_id'] === $cam->campaign_id)) echo "selected"; ?>><?= $cam->name ?> ( <?= date("d-m-Y", strtotime($cam->start_date)) ?> - <?= date("d-m-Y", strtotime($cam->end_date)) ?> )</option>
<?php }
endforeach; ?>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="invoiceNumber" class="col-form-label">Receipt Number</label>
<input type="text" class="form-control" id="invoiceNumber" name="receipt_number" value="<?= isset($receipt_details['receipt_number']) ? $receipt_details['receipt_number'] : $count_receipt_no ?>" readonly>
<input type="hidden" id="hiddenNextId" name="next_id" placeholder="hidden for next id" />
</div>
<div class="form-group col-md-6">
<label for="invoiceDate" class="col-form-label">Receipt Date<span class="text-danger"> *</span></label>
<input type="date" class="form-control" id="invoiceDate" name="receipt_date" value="<?= empty($receipt_details['receipt_date']) ? date('Y-m-d') : $receipt_details['receipt_date'] ?>" required max="<?= date('Y-m-d') ?>">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-2">
<label for="currency" class="col-form-label">Currency<span class="text-danger"> *</span></label>
<select class="form-control" id="currency" name="currency" data-toggle="select2" required>
<?php
$selectedCurrency = isset($receipt_details['currency']) ? (gettype($receipt_details['currency']) == 'string' ? [] :$receipt_details['currency']) : '';
?>
<?php foreach ($currencies as $index => $currencyOption) : ?>
<option value="<?= $currencyOption ?>" <?= ($index === 0 || $selectedCurrency === $currencyOption) ? 'selected' : '' ?>>
<?= $currencyOption ?>
</option>
<?php endforeach; ?>
</select>
</div>
<div class="form-group col-md-4 ">
<label for="csname" class="col-form-label">Amount<span class="text-danger"> *</span></label>
<div class="input-group">
<input type="text" class="form-control" id="org_name_field" name="amount" value="<?= isset($receipt_details['amount']) ? $receipt_details['amount'] : '' ?>" placeholder="Amount" oninput="this.value = this.value.replace(/[^0-9]/g, '')" required maxlength="9" aria-describedby="validationTooltipUsernamePrepend"/>
</div>
</div>
<div class="form-group col-md-3">
<label for="invoiceDate" class="col-form-label">Payment Mode<span class="text-danger"> *</span></label>
<select class="form-control" id="paymentMode" name="payment_mode" required>
<option value="" <?php if (isset($receipt_details['payment_mode']) && $receipt_details['payment_mode'] == '') {
echo 'selected';
} ?>>--Select--</option>
<option value="credit" <?php if (isset($receipt_details['payment_mode']) && $receipt_details['payment_mode'] == 'credit') {
echo 'selected';
} ?>>Credit Card</option>
<option value="debit" <?php if (isset($receipt_details['payment_mode']) && $receipt_details['payment_mode'] == 'debit') {
echo 'selected';
} ?>>Debit Card</option>
<option value="cash" <?php if (isset($receipt_details['payment_mode']) && $receipt_details['payment_mode'] == 'cash') {
echo 'selected';
} ?>>Cash</option>
<option value="upi" <?php if (isset($receipt_details['payment_mode']) && $receipt_details['payment_mode'] == 'upi') {
echo 'selected';
} ?>>UPI</option>
<option value="banktransfer" <?php if (isset($receipt_details['payment_mode']) && $receipt_details['payment_mode'] == 'banktransfer') {
echo 'selected';
} ?>>Bank Transfer</option>
</select>
</div>
<div class="form-group col-md-3">
<label for="payment" class="col-form-label">Payment Reference No</label>
<input type="text" class="form-control" id="payment" name="payment_ref_no" value="<?= isset($receipt_details['payment_ref_no']) ? $receipt_details['payment_ref_no'] : '' ?>" placeholder="Payment Reference No">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="notes" class="col-form-label">Notes</label>
<textarea class="form-control" id="notes" name="notes" rows="2" placeholder="Notes"><?= isset($receipt_details['notes']) ? $receipt_details['notes'] : '' ?></textarea>
</div>
</div>
</div>
<input type="hidden" id="hiddenInvoiceId" name="receipt_id" placeholder="hidden for invoice id" value="<?= isset($receipt_details['receipt_id']) ? $receipt_details['receipt_id'] : '' ?>" />
<div class="form-group text-right m-b-0">
<?php if (get_user_role() != 'accounts') { ?>
<button type="submit" class="btn btn-primary waves-effect mr-1" name="saveas" value="Draft" id="saveDraftButton"><?= isset($receipt_details['receipt_id']) ? 'Update' : 'Save' ?></button>
<?php } ?>
</div>
</form>
</div>
</div>
<div class="spinner-overlay">
<div class="spinner-border" role="status"></div>
</div>
</div>
</div>
<!-- Your Minton theme modal HTML structure -->
<div class="modal fade" id="successModal" tabindex="-1" role="dialog" aria-labelledby="successModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="successModalLabel">Success</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Your Receipt has been submitted successfully!</p>
</div>
<div class="modal-footer">
<a href="#" class="btn btn-primary" id="downloadButton">Download</a>
<a href="#" class="btn btn-secondary" id="closeButton">Close</a>
</div>
</div>
</div>
</div>
<!-- Your existing JavaScript code -->
<script>
$(document).ready(function() {
$('#recepitForm').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '<?= base_url("save_invoice"); ?>',
data: $(this).serialize(),
beforeSend: function() { $('.spinner-overlay').addClass('active'); },
success: function(response) {
if (response.success) {
$('#successModal').modal('show');
$('#downloadButton').attr('href', "<?= base_url('generate_invoice_pdf/'); ?>" + response.invoice_id);
$('#successModal').modal('hide');
} else {
// Handle errors or display a different modal for failure
console.log(response.message);
}
},
error: function(error) {
console.log('AJAX Error:', error);
},
complete: function() { $('.spinner-overlay').removeClass('active'); }
});
});
$('#closeButton').on('click', function(e) {
e.preventDefault();
// var url = "<?php echo base_url('receipt_list'); ?>";
var baseUrl = "<?php echo base_url(); ?>";
var url = baseUrl + 'receipt_list';
window.location.href = url;
$('#successModal').modal('hide');
$('#receiptForm')[0].reset();
});
});
</script>
<script>
var role = "<?php echo get_user_role() ?>";
var data = <?php echo json_encode($typebaseddonors); ?>;
var alldonors = <?php echo json_encode($alldonors); ?>;
var editdata = <?php echo json_encode($receipt_details); ?>;
var Rt = "<?php echo $receipt_type; ?>";
$(function() {
if (Rt == 'organization') {
$('#donor_mobile').prop('disabled', true).removeAttr('required');
$('.dfn_label').html('Organization Name - PAN Number<span class="text-danger"> *</span>');
$('.dm_label').find('.text-danger').remove();
} else {
$('#donor_mobile').prop('disabled', false).attr('required', true);
$('.dfn_label').html('Contributor Name<span class="text-danger"> *</span>');
if ($('.dm_label').find('.text-danger').length == 0) {
$('.dm_label').append('<span class="text-danger"> *</span>');
}
}
$('#donor_mobile').on('change', function() {
var Rtype = $('.receipt_type:checked').val();
$('#donor_first_name').html('');
if ($(this).val()) {
if ($(this).val() == '0') {
$('#standard-modal').modal('show');
} else {
$('#standard-modal').modal('hide');
$('#donor-form-submit').prop('disabled', false);
}
if ($(this).val() != '0') {
var selectedMobile = $(this).val();
var options = '<option value="">--Select--</option>';
if(role != 'accounts'){
options += '<option value="0">+ Add a Contributor</option>';
}
// Assuming `data` is an array of objects containing donor information
for (const donor of data) {
if (selectedMobile == donor.mobile_no) {
if (Rtype == "organization") {
options += `<option value="${donor.donor_id}" ${editdata && editdata.donor_id == donor.donor_id ? 'selected' : ''}>${donor.org_name} - ${donor.pan_no}</option>`;
}else{
options += `<option value="${donor.donor_id}" ${editdata && editdata.donor_id == donor.donor_id ? 'selected' : ''}>${donor.first_name}</option>`;
}
}
}
// Assuming you have a select element with the id `#donor_select`
$('#donor_first_name').html(options);
}
} else {
var selectedMobile = $(this).val();
var Rtype = $('.receipt_type:checked').val();
var options = '<option value="">--Select--</option>';
if(role != 'accounts'){
options += '<option value="0">+ Add a Contributor</option>';
}
// Assuming `data` is an array of objects containing donor information
console.log(donor);
for (const donor of data) {
if (Rtype == "organization") {
options += `<option value="${donor.donor_id}">${donor.org_name} - ${donor.pan_no}</option>`;
}else{
options += `<option value="${donor.donor_id}">${donor.first_name}</option>`;
}
}
// Assuming you have a select element with the id `#donor_select`
$('#donor_first_name').html(options);
}
});
$('#donor_first_name').on('change', function() {
var Rtype = $('.receipt_type:checked').val();
if ($(this).val() == '0') {
$('#standard-modal').modal('show');
} else {
$('#standard-modal').modal('hide');
$('#donor-form-submit').prop('disabled', false);
if (Rtype == "organization") {
var selectedID = $(this).val();
var options = '<option value="">--Select--</option>';
if(role != 'accounts'){
options += '<option value="0">+ Add a Contributor</option>';
}
// Filter the donors array based on the selectedID
var filter_array = alldonors.filter(function(d) {
return d.donor_id === selectedID;
});
if (filter_array.length > 0) {
var donor = filter_array[0];
options += `<option value="${donor.mobile_no}" selected>${donor.mobile_no}</option>`;
}
// Set the options to the donor_mobile select element
$('#donor_mobile').html(options);
}
}
});
});
$(function() {
$('#donor-form-submit').on('click', function() {
var form = $('#donorForm');
var isValid = form[0].checkValidity();
var Rtype = $('.receipt_type:checked').val();
if (isValid) {
// If the form is valid, disable the button to prevent multiple clicks
$(this).prop('disabled', true);
$.ajax({
type: "POST",
url: "<?= base_url() . 'insert_ajaxdonor' ?>",
data: $('#donorForm').serialize(),
success: function(response) {
console.log(response);
if (response['data']['status']) {
dropdown = response['data']['donor'];
Swal.fire("Saved!", response['data']['message'], "success");
if (dropdown.length > 0) {
$('#donor_mobile').empty().append($('<option>', {
value: "",text: "--Select--"
}));
$('#donor_first_name').empty().append($('<option>', {
value: "",text: "--Select--"
}));
if(role != 'accounts'){
$('#donor_mobile').append($('<option>', {
value: "0",text: "+ Add a Contributor"
}));
$('#donor_first_name').append($('<option>', {
value: "0",text: "+ Add a Contributor"
}));
}
$.each(dropdown, function(k, v) {
$('#donor_mobile').append($('<option>', {
value: v.mobile_no,text: v.mobile_no,
selected: (v.donor_id == response['data']['donor_id']) ? true : false
}));
var dynamic = (Rtype == 'organization') ? v.org_name+' - '+v.pan_no : v.first_name;
$('#donor_first_name').append($('<option>', {
value: v.donor_id,text: dynamic,
selected: (v.donor_id == response['data']['donor_id']) ? true : false
}));
});
}
} else {
Swal.fire("Oh...", response['data']['message'], "error");
}
$('#standard-modal').modal('hide');
form[0].reset();
$(this).prop('disabled', false);
},
error: function() {
Swal.fire("Oh...", "Error occur. try later", "error");
$(this).prop('disabled', false);
},
complete: function() {
form[0].reset();
$(this).prop('disabled', false);
}
});
} else {
form.find(':input').each(function() {
if (!this.checkValidity()) {
$(this).addClass('is-invalid');
}
});
}
});
});
$(function() {
$('#saveDraftButton').on('click', function() {
// Check if the form is valid
if ($('.main-form')[0].checkValidity()) {
// Disable the button to prevent multiple clicks
$(this).prop('disabled', true);
// Submit the form
$('.main-form').submit();
}
});
});
// hide all fields for account login
$(function() {
role = "<?php echo get_user_role() ?>";
console.log(role);
if (role == "accounts" || role == "auditor") {
// for input
var formElements = document.querySelectorAll('#recepitForm input, #recepitForm textarea');
formElements.forEach(function(element) {
element.setAttribute('readonly', true);
});
// for select
var formElements = document.querySelectorAll('#recepitForm select');
formElements.forEach(function(element) {
element.setAttribute('disabled', true);
});
$('#add-quk-donar').attr('disabled', true);
} else {
// for input
// var formElements = document.querySelectorAll('#myForm input, #myForm textarea');
// formElements.forEach(function(element) {
// element.setAttribute('readonly', false);
// });
// // for select
// var formElements = document.querySelectorAll('form select');
// formElements.forEach(function(element) {
// element.setAttribute('disabled', false);
// });
}
});
function restriction(event) {
var charCode = event.which || event.keyCode;
if ((charCode >= 48 && charCode <= 57)) {
return true;
} else {
event.preventDefault(); // Prevent the character from being entered
return false;
}
}
$(document).ready(function() {
$('#org_details_form').hide();
$('#DonorType').on('change', function() {
let DonorType = $(this).val();
if (DonorType === 'organization') {
$('#org_details_form').show();
$('#org_name_fie').prop('required', true);
$('#pan_no_org').prop('required', true);
$('#org_reg_details').prop('required', true);
$('#ind_pan').hide();
} else {
$('#org_details_form').hide();
$('#org_name_fie').prop('required', false);
$('#pan_no_org').prop('required', false);
$('#org_reg_details').prop('required', false);
$('#ind_pan').show();
}
})
});
</script>
<!-- Standard modal content -->
<div id="standard-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="standard-modalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="standard-modalLabel">Add Contributor</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="needs-validation donorForm" novalidate method="POST" enctype="multipart/form-data" id="donorForm" name="donorForm">
<input type="hidden" name="new_receipt" value="new_receipt" />
<input type="hidden" id="business_id" name="business_id" placeholder="hidden for business id" value="<?php echo get_business_id() ?>" />
<div class="form-row">
<div class="form-group col-md-12">
<label for="DonorType" class="col-form-label">Contributor Type<span class="text-danger"> *</span></label>
<select class="form-control" id="DonorType" name="DonorType" required>
<option value="">--Select--</option>
<?php $typeArr = array('individual', 'organization');
foreach ($typeArr as $value) {
$selected = (isset($receipt_details['donor_type']) && $receipt_details['donor_type'] === $value) ? "selected" : "";
?>
<option value="<?php echo $value; ?>" <?php echo $selected; ?>><?php echo ucfirst($value); ?></option>
<?php } ?>
</select>
<div class="invalid-feedback">Please provide.</div>
</div>
</div>
<div id="org_details_form">
<div class="form-row">
<div class="form-group col-md-12">
<label for="org_name" class="col-form-label">Organization Name<span class="text-danger"> *</span></label>
<input type="text" class="form-control" id="org_name_fie" name="org_name" value="" placeholder="Organization Name">
<div class="invalid-feedback"> Please provide. </div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="o_pan_no" class="col-form-label"><span class="contactPerson">Organization PAN Number<span class="text-danger"> *</span></label>
<input type="text" class="form-control" id="pan_no_org" name="o_pan_no" value="" placeholder="PAN Number" oninput="validatePANFormatOrg(this)" onchange="checkExisting(this,'pan_no','pan_no_org')"/>
<div id="panNoErrors" style="display: none; color: red;">Invalid PAN format</div>
<div class="invalid-feedback"> Please provide. </div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="org_reg_Details" class="col-form-label">Organization Reg Details<span class="text-danger"> *</span></label>
<input type="text" class="form-control" id="org_reg_details" name="org_reg_Details" value="" placeholder="Organization Reg details" />
<div class="invalid-feedback"> Please provide. </div>
</div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="cfname" class="col-form-label"><span class="contactPerson">Contact Person </span>Name<span class="text-danger"> *</span></label>
<input type="text" class="form-control" id="cfname" name="cfname" value="<?= isset($receipt_details['first_name']) ? $receipt_details['first_name'] : '' ?>" placeholder="First Name" required />
<div class="invalid-feedback"> Please provide. </div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="cmail" class="col-form-label"><span class="contactPerson">Contact Person </span>Email<span class="text-danger"> *</span></label>
<input type="email" class="form-control" id="cmail" name="cmail" value="<?= isset($receipt_details['email']) ? $receipt_details['email'] : '' ?>" placeholder="Email" required onchange="checkExisting(this,'email','cmail')"/>
<div id="emailNoError" style="display: none; color: red;"></div>
<div class="invalid-feedback"> Please provide a valid email address. </div>
</div>
</div>
<div class="form-row" id="ind_pan">
<div class="form-group col-md-12">
<label for="pan_no" class="col-form-label">PAN Number</label>
<input type="text" class="form-control" id="pan_no" name="pan_no" value="<?= isset($receipt_details['pan_no']) ? $receipt_details['pan_no'] : '' ?>" placeholder="PAN Number" oninput="validatePANFormat(this)" onchange="checkExisting(this,'pan_no','pan_no')"/>
<div id="panNoError" style="display: none; color: red;">Invalid PAN format</div>
<div class="invalid-feedback"> Please provide. </div>
</div>
</div>
<div class="form-row">
<label for="cmobile" class="col-form-label"><span class="contactPerson">Contact Person </span>Mobile<span class="text-danger"> *</span></label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text">+91</div>
</div>
<input type="text" class="form-control" name="mobile" value="<?= isset($receipt_details['mobile_no']) ? $receipt_details['mobile_no'] : '' ?>" placeholder="Mobile Number (Enter only numbers)" required minlength="10" maxlength="10" onkeypress="return restriction(event)" />
<div class="invalid-feedback"> Please provide. </div>
</div>
</div>
<!-- <button class="btn btn-success waves-effect waves-light mr-1" id="submitBtn" type="submit" hidden></button> -->
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light" data-dismiss="modal">Close</button>
<button type="button" id="donor-form-submit" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script>
function validateEmailFormat(email) {
var emailPattern = /^(.+)@(gmail\.com|yahoo\.com|hotmail\.com|[^@]+\.com\.org)$/i;
if (!emailPattern.test(email)) {
// alert("Please provide a valid email addres");
// You can also update the UI to indicate the error, e.g., by adding a class to the input field.
// Example: $('#cmail').addClass('is-invalid');
}
}
</script>
<script>
function validatePANFormat(input) {
var isValidPAN = /[A-Z]{5}[0-9]{4}[A-Z]{1}$/.test(input.value.toUpperCase());
document.getElementById('panNoError').style.display = isValidPAN ? 'none' : 'block';
input.setCustomValidity(isValidPAN ? '' : 'Invalid PAN format');
}
</script>
<script>
function validatePANFormatOrg(input) {
var isValidPAN = /[A-Z]{5}[0-9]{4}[A-Z]{1}$/.test(input.value.toUpperCase());
document.getElementById('panNoErrors').style.display = isValidPAN ? 'none' : 'block';
input.setCustomValidity(isValidPAN ? '' : 'Invalid PAN format');
}
</script>
<script>
$(document).ready(function() {
$('#invoiceDate').on('change', function() {
var selectedDate = new Date($(this).val());
var currentDate = new Date();
// Compare the selected date with the current date
if (selectedDate > currentDate) {
$(this).val(''); // Clear the selected date
}
});
});
function get_donor_details(option) {
if (option == 'organization') {
$('#donor_mobile').prop('disabled', true).removeAttr('required');
$('.dfn_label').html('Organization Name - PAN Number<span class="text-danger"> *</span>');
$('.dm_label').find('.text-danger').remove();
} else {
$('#donor_mobile').prop('disabled', false).attr('required', true);
$('.dfn_label').html('Contributor Name<span class="text-danger"> *</span>');
if ($('.dm_label').find('.text-danger').length == 0) {
$('.dm_label').append('<span class="text-danger"> *</span>');
}
}
$('#donor_mobile').val("");
$('#donor_first_name').val("");
var uniqueMobiles = [];
$.ajax({
type: "POST",
url: "<?= base_url() . 'get_donor_details' ?>",
data: {
donor_type: option
},
success: function(response) {
donor = response['data']['donor_details'];
if (donor.length > 0) {
$('#donor_mobile').empty().append($('<option>', {
value: "",
text: "--Select--"
}));
$('#donor_mobile').append($('<option>', {
value: "0",
text: "+ Add a Contributor"
}));
$('#donor_first_name').empty().append($('<option>', {
value: "",
text: "--Select--"
}));
$('#donor_first_name').append($('<option>', {
value: "0",
text: "+ Add a Contributor"
}));
$.each(donor, function(k, v) {
// $('#donor_mobile').append($('<option>', {
// value: v.mobile_no,
// text: v.mobile_no
// }));
if(uniqueMobiles.indexOf(v.mobile_no) === -1) {
uniqueMobiles.push(v.mobile_no);
$('#donor_mobile').append($('<option>', {
value: v.mobile_no,
text: v.mobile_no
}));
}
if (option == 'organization') {
$('#donor_first_name').append($('<option>', {
value: v.donor_id,text: v.org_name+' - '+v.pan_no
}));
}else{
$('#donor_first_name').append($('<option>', {
value: v.donor_id,text: v.first_name
}));
}
});
}
},
error: function() {
Swal.fire("Oh...", "Error occur. try later", "error");
alert("Error Occur.");
}
});
}
</script>
<script>
function checkExisting(input,databasecolumnname,elementid){
switch(elementid){
case 'pan_no_org' :
divErrorId = "panNoErrors"; break;
case 'cmail' :
divErrorId = "emailNoError"; break;
case 'pan_no' :
divErrorId = "panNoError"; break;
}
$.ajax({
type: "POST",
url: "<?= base_url() . 'check_existing' ?>",
data: {
value: input.value,
module: 'donor',
field: databasecolumnname
},
success: function(response) {
console.log("check existing "+elementid+"--"+response['data']['message']);
document.getElementById(divErrorId).style.display = response['data']['status'] ? 'block' : 'none';
document.getElementById(divErrorId).innerText = response['data']['message'];
input.setCustomValidity(response['data']['status'] ? response['data']['message'] : '');
if(response['data']['status']) document.getElementById(elementid).value = '';
},
error: function(error) {
console.log("check existing "+elementid+"--"+error);
}
});
}
</script>
<!-- <script src="<?= base_url() . "public/assets/js/pages/form-advanced.init.js" ?>"></script> -->