460 lines
18 KiB
PHP
460 lines
18 KiB
PHP
|
||
<!-- ============================================================== -->
|
||
<!-- Start Page Content here -->
|
||
<!-- ============================================================== -->
|
||
<style>
|
||
.otp-input {
|
||
text-align: center;
|
||
letter-spacing: 0.5rem;
|
||
}
|
||
.file_approved {
|
||
border-top: 1px dotted #000;
|
||
padding-top: 3px;
|
||
}
|
||
|
||
@media (max-width: 992px) {
|
||
|
||
.row > .col-2 {
|
||
flex: 0 0 0%;
|
||
max-width: 0%;
|
||
}
|
||
.row > .col-8 {
|
||
flex: 0 0 100%;
|
||
max-width: 100%;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 767.98px) {
|
||
.pro-user-name {
|
||
display: block !important;
|
||
}
|
||
}
|
||
|
||
</style>
|
||
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
|
||
|
||
<div class="content-page">
|
||
<div class="loader-mask modal-loader-mask" style="display:none;">
|
||
<div class="loader modal-loader" style="display:none;">
|
||
Please Wait <img src="<?= base_url() . "public" ?>/assets/images/simple_loader.gif" height="30" width="30" alt="Loading...">
|
||
</div>
|
||
</div>
|
||
<!-- Start Content-->
|
||
<div class="container-fluid">
|
||
|
||
<!-- start page title -->
|
||
<div class="row">
|
||
|
||
<div class="col-2">
|
||
|
||
</div>
|
||
|
||
<div class="col-8">
|
||
<div class="page-title-box page-title-box-alt">
|
||
<h4 class="page-title"><?php echo $docData->service_name; ?>
|
||
<a class="download-btnn" style="color:#000;">
|
||
<i class="fas fa-download"></i>
|
||
</a>
|
||
</h4>
|
||
<div class="page-title-right">
|
||
<a onclick="window.history.back()" class="btn btn-secondary waves-effect waves-light"> Close </a>
|
||
|
||
<?php if(isset($_SESSION['is_staff_logged_in']) && $_SESSION['is_staff_logged_in']) {
|
||
if( $docData->is_active == 1 && $docData->is_approved == 0){ ?>
|
||
<a data-id="<?php echo $docData->doc_id; ?>" data-isactive="<?php echo $docData->is_active; ?>" title="revert" onclick="statusChange(this)" class="btn btn-warning waves-effect waves-light"> Revert </a>
|
||
<?php } else if( $docData->is_active == 0 ) { ?>
|
||
<a data-id="<?php echo $docData->doc_id; ?>" data-isactive="<?php echo $docData->is_active; ?>" title="Share" onclick="statusChange(this)" class="btn btn-info waves-effect waves-light"> Share </a>
|
||
<?php } } ?>
|
||
|
||
|
||
|
||
<?php if($docData->is_approved != 1){ ?>
|
||
<a href="#" class="btn btn-danger waves-effect waves-light" data-toggle="modal" data-target="#reject-modal"> Reject </a>
|
||
<a href="#" data-toggle="modal" data-target="#approve-modal" class="btn btn-primary waves-effect waves-light"> Approve </a>
|
||
<?php } ?>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="col-2">
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<!-- end page title -->
|
||
|
||
|
||
<div class="row">
|
||
<div class="col-2"></div>
|
||
<div class="col-8">
|
||
<div class="card">
|
||
<div class="card-body">
|
||
|
||
<div class="template-header">
|
||
<?php echo $header_html; ?>
|
||
</div>
|
||
|
||
<div class="template-body">
|
||
<?php echo $body_html; ?>
|
||
<div>
|
||
<?php if($docData->is_approved == 1){ echo ' <div class="file_approved"> Approved at '.date('d-m-Y H:i:s', strtotime($docData->updated_at)).' through OTP sent to '.$clientData->mobile_no.' from ip address '.$docData->ip_address.'</div>'; } ?>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="template-footer">
|
||
<?php echo $footer_html; ?>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div><!-- end col-->
|
||
<div class="col-2 centered-div"></div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
</div> <!-- container -->
|
||
|
||
</div> <!-- content -->
|
||
|
||
|
||
<!-- SignIn modal content -->
|
||
<div id="reject-modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true" aria-modal="true" data-backdrop="static">
|
||
<div class="modal-dialog">
|
||
<div class="modal-content">
|
||
|
||
<div class="modal-body">
|
||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||
<div class="text-center mt-2 mb-4">
|
||
<h4>Document Rejection</h4>
|
||
</div>
|
||
<input type="hidden" id="doc_id" value="<?php echo $docData->doc_id; ?>">
|
||
<div class="form-group">
|
||
<label for="rejection_reason">Rejection Reason</label>
|
||
<textarea class="form-control" name="rejection_reason" id="rejection_reason" rows="5" required="" placeholder="Rejection Reason"></textarea>
|
||
</div>
|
||
|
||
<div class="form-group text-center">
|
||
<button class="btn btn-rounded btn-primary" type="button" id="submit_button">Submit</button>
|
||
</div>
|
||
</div>
|
||
</div><!-- /.modal-content -->
|
||
</div><!-- /.modal-dialog -->
|
||
</div><!-- /.modal -->
|
||
|
||
|
||
<!-- SignIn modal content -->
|
||
<div id="approve-modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true" aria-modal="true" data-backdrop="static">
|
||
<div class="modal-dialog">
|
||
<div class="modal-content">
|
||
<div class="modal-body">
|
||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||
<div class="text-center mt-2 mb-4">
|
||
<h4>Document Approve</h4>
|
||
</div>
|
||
<div class="form-group" id="approve_error"></div>
|
||
<div class="form-group">
|
||
<label for="rejection_reason">Mobile No</label>
|
||
<input type="text" readonly class="form-control" id="mobile_no" value="<?php echo $clientData->mobile_no; ?>">
|
||
</div>
|
||
<div class="loader-mask modal-loader-mask" style="display:none;">
|
||
<div class="loader modal-loader" style="display:none;">
|
||
Please Wait <img src="<?= base_url() . "public" ?>/assets/images/simple_loader.gif" height="30" width="30" alt="Loading...">
|
||
</div>
|
||
</div>
|
||
<div class="form-group" id="otp_hide" style="display:none;">
|
||
<label for="otp">OTP</label>
|
||
<input type="text" name="otp" id="otp" class="form-control otp-input" maxlength="6" pattern="\d{6}">
|
||
</div>
|
||
<div class="form-group mb-0 text-right" id="approve_resend_otp_hide" style="margin-top: 10px;display:none;">
|
||
<a href="#" id="approve_resend_otp">Resend OTP</a>
|
||
</div>
|
||
<div class="form-group text-center">
|
||
<button class="btn btn-primary btn-block" id="generate_otp" type="button">Generate OTP </button>
|
||
</div>
|
||
<div class="form-group text-center" id="submit_hide" style="display:none;">
|
||
<button class="btn btn-rounded btn-primary" type="button" id="approve_submit_button">Submit</button>
|
||
</div>
|
||
|
||
</div>
|
||
</div><!-- /.modal-content -->
|
||
</div><!-- /.modal-dialog -->
|
||
</div><!-- /.modal -->
|
||
|
||
|
||
|
||
<script>
|
||
|
||
$('#generate_otp').click(function (params) {
|
||
|
||
event.preventDefault(); // Prevent form submission
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
|
||
|
||
$.ajax({
|
||
url: '<?php echo base_url()."doc_generate_otp"?>',
|
||
method: 'POST',
|
||
data: {
|
||
mobile_no : $('#mobile_no').val(),
|
||
doc_id : $('#doc_id').val()
|
||
},
|
||
success: function(response) {
|
||
console.log(response);
|
||
if(response){
|
||
$('#approve_error').html('OTP Sent Successfully').css('color','green');
|
||
$('#generate_otp').hide();
|
||
$('#otp_hide').show();
|
||
$('#submit_hide').show();
|
||
$('#approve_resend_otp_hide').show();
|
||
}else{
|
||
// pan_error.html('PAN number mismatch. Please try again.');
|
||
// pan_error.css('color','red');
|
||
}
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
},
|
||
error: function(xhr, status, error) {
|
||
// Handle any errors
|
||
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
console.error('Error generating OTP: ' + error);
|
||
}
|
||
});
|
||
|
||
})
|
||
|
||
$('#approve_submit_button').click(function (params) {
|
||
|
||
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
$('#approve_error').html('');
|
||
$.getJSON('https://api.ipify.org?format=json', function(data) {
|
||
var clientIp = data.ip;
|
||
var formData ={
|
||
otp : $('#otp').val(),
|
||
doc_id : $('#doc_id').val(),
|
||
is_approved: 1,
|
||
clientIp : clientIp
|
||
}
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: '<?php echo base_url()."doc_verify_otp"?>',
|
||
data: formData,
|
||
dataType: 'json',
|
||
success: function(response) {
|
||
console.log(response);
|
||
if (response) {
|
||
window.location.reload();
|
||
}else{
|
||
$('#approve_error').html('OTP Incorrect. Please try again.');
|
||
$('#approve_error').css('color','red');
|
||
}
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
},
|
||
error: function(xhr, status, error) {
|
||
// Handle error response here
|
||
console.error(xhr.responseText);
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
}
|
||
});
|
||
});
|
||
|
||
})
|
||
|
||
|
||
$('#submit_button').click(function (params) {
|
||
|
||
var formData ={
|
||
rejection_reason : $('#rejection_reason').val(),
|
||
doc_id : $('#doc_id').val(),
|
||
is_approved: 2
|
||
}
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: '<?php echo base_url()."doc_rejection"?>',
|
||
data: formData,
|
||
dataType: 'json',
|
||
success: function(response) {
|
||
console.log(response);
|
||
if (response) {
|
||
window.location.reload();
|
||
}
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
},
|
||
error: function(xhr, status, error) {
|
||
// Handle error response here
|
||
console.error(xhr.responseText);
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
}
|
||
});
|
||
|
||
|
||
})
|
||
|
||
$('#approve_resend_otp').click(function (params) {
|
||
$('#approve_error').html('');
|
||
event.preventDefault(); // Prevent form submission
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
$.getJSON('https://api.ipify.org?format=json', function(data) {
|
||
var clientIp = data.ip;
|
||
|
||
$.ajax({
|
||
url: '<?php echo base_url()."doc_generate_otp"?>',
|
||
method: 'POST',
|
||
data: {
|
||
mobile_no : $('#mobile_no').val(),
|
||
doc_id : $('#doc_id').val(),
|
||
clientIp: clientIp
|
||
},
|
||
success: function(response) {
|
||
console.log(response);
|
||
if(response){
|
||
$('#approve_error').html('OTP Sent Successfully').css('color','green');
|
||
|
||
}else{
|
||
// $('#approve_error').html('PAN number mismatch. Please try again.');
|
||
// $('#approve_error').css('color','red');
|
||
}
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
},
|
||
error: function(xhr, status, error) {
|
||
// Handle any errors
|
||
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
console.error('Error generating OTP: ' + error);
|
||
}
|
||
});
|
||
})
|
||
|
||
})
|
||
</script>
|
||
|
||
<script>
|
||
document.addEventListener("DOMContentLoaded", function() {
|
||
document.querySelector(".download-btnn").addEventListener("click", async function() {
|
||
|
||
var element = document.querySelector(".card-body");
|
||
|
||
// Get the HTML content of the element as a string
|
||
var htmlContent = element.innerHTML;
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
$.ajax({
|
||
url: '<?php echo base_url()."download_doc"?>',
|
||
method: 'POST',
|
||
data: {
|
||
htmlContent: htmlContent, // Send the HTML content as a string
|
||
},
|
||
success: function(response) {
|
||
console.log(response);
|
||
|
||
if(response){
|
||
var pdfContent = atob(response.pdf);
|
||
|
||
// Create a Blob from the PDF content
|
||
var byteArray = new Uint8Array(pdfContent.length);
|
||
for (var i = 0; i < pdfContent.length; i++) {
|
||
byteArray[i] = pdfContent.charCodeAt(i);
|
||
}
|
||
var blob = new Blob([byteArray], { type: 'application/pdf' });
|
||
|
||
// Create a link element
|
||
var link = document.createElement('a');
|
||
link.href = window.URL.createObjectURL(blob);
|
||
link.download = '<?php echo $docData->document_name; ?>.pdf';
|
||
|
||
// Append the link to the body
|
||
document.body.appendChild(link);
|
||
// Programmatically click the link to trigger the download
|
||
link.click();
|
||
// Remove the link from the document
|
||
document.body.removeChild(link);
|
||
|
||
}
|
||
|
||
},
|
||
error: function(xhr, status, error) {
|
||
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
console.error('Error : ' + error);
|
||
}
|
||
});
|
||
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
});
|
||
});
|
||
|
||
|
||
function statusChange(params) {
|
||
// console.log(params);
|
||
var status = params.getAttribute('data-isactive');
|
||
var doc_id = params.getAttribute('data-id');
|
||
if(status == 1){
|
||
var is_active= 0;
|
||
}else{
|
||
var is_active= 1;
|
||
}
|
||
|
||
if($(params).attr('title') == 'Share'){
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
}
|
||
|
||
var formData = {
|
||
doc_id: doc_id,
|
||
is_active: is_active
|
||
};
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: '<?php echo base_url()."change_doc_status"?>',
|
||
data: formData,
|
||
dataType: 'json',
|
||
success: function(response) {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
if (response.data) {
|
||
window.location.reload();
|
||
}
|
||
},
|
||
error: function(xhr, status, error) {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').fadeOut('slow');
|
||
// Handle error response here
|
||
console.error(xhr.responseText);
|
||
}
|
||
});
|
||
|
||
|
||
}
|
||
</script>
|
||
|
||
|
||
<!-- ============================================================== -->
|
||
<!-- End Page content -->
|
||
<!-- ============================================================== -->
|
||
|
||
|
||
|
||
|
||
|