bb_sign/app/Views/client_docs_preview.php
2024-06-18 16:43:41 +05:30

460 lines
18 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.

<!-- ============================================================== -->
<!-- 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 -->
<!-- ============================================================== -->