File: /home/cafsindia/hrms_allyindian_com/application/views/worksheet_generation/manage.php
<?php
$this->load->view("partial/header");
$access_data = $this->session->userdata('access_data');
$access_add = (int)$access_data[$controller_name]['access_add'];
$access_update = (int)$access_data[$controller_name]['access_update'];
$access_delete = (int)$access_data[$controller_name]['access_delete'];
$access_search = (int)$access_data[$controller_name]['access_search'];
$access_export = (int)$access_data[$controller_name]['access_export'];
$access_import = (int)$access_data[$controller_name]['access_import'];
$page_name = ucwords(str_replace("_"," ",$controller_name));
$uniqueId = "prime_".$controller_name."_id";
$start_date = $financial_info[0]->start_date;
$end_date = $financial_info[0]->end_date;
?>
<script type="text/javascript">
$(document).ready(function (){
$(function(){
$(".datepicker").datetimepicker({
format: 'MM-YYYY'
});
});
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
});
$('#process_type').change(function(){
process_type = $("#process_type").val();
employee_code = $('#process_emp_id').val();
$('#process_emp_id,#process_role').parent().hide();
$('#process_emp_id').val("");
$('#process_role').val("");
if(process_type === "1"){
$('#process_emp_id').parent().show();
}else
if(process_type === "2"){
$('#process_role').parent().show();
}else{
$('#process_emp_id,#process_role').parent().hide();
}
});
$('#process_emp_id').autocomplete({
source: function (request, response) {
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{term:request.term});
$.ajax({
url : '<?php echo site_url("$controller_name/emp_suggest");?>',
type: 'POST',
data: encData,
success: function (data) {
var rslt = JSON.parse(data);
response($.map(rslt, function (el) {
if(el.value === '0'){
$('#process_emp_id').val('');
}else{
return {
value: el.value,
label: el.label,
display_name:el.display_name
};
}
}));
}
});
},
minChars:2,
autoFocus: true,
delay:10,
scroll: true,
appendTo: '.append_div',
select: function(e, ui) {
$('#process_emp_id').val(ui.item.value);
return false;
}
});
var pdfDataArray = [];
$('#process_tax').validate($.extend({
submitHandler: function (form){
$("#process_tax_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$('#process_tax_btn').attr('disabled','disabled');
$('#rslt_info').hide();
$('#rslts_info').hide();
$('.myProgress').show();
//Encrypted
let formData = new FormData(form);
// Convert FormData to JSON object
let jsonData = Object.fromEntries(formData.entries());
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,jsonData);
$.ajax({
url : $(form).attr('action'),
type : 'POST',
contentType : 'text/plain',
data : encData,
success: function (response){
$('.myProgress').hide();
$("#loader").css("display", "none");
$('#process_tax_btn').attr('disabled',false);
$("#process_tax_btn").html("Submit");
jQuery("body").prepend('<div id="preloader">Loading...</div>');
if(response.success == false){
toastr.error(response.msg);
$('#process_tax')[0].reset();
}else{
if(response.msg != "process work sheet generated"){
$('#rslts_info').hide();
$('#rslt_info').show();
$('#rslt_info').html(response.table_data);
$('#table_info').DataTable({
dom: 'Bfrtip',
language:{
searchPlaceholder: "Search records",
search: "",
},
select: true,
colReorder: true,
buttons: [
{
extend: 'collection',
text: 'Export',
buttons: [
'copy',
'excel',
'csv',
'pdf',
'print'
]
}
]
});
$('input[type=search]').addClass('form-control input-sm');
}else{
var category = response.category;
$('#rslt_info').hide();
var tbl_tot_count = response.count;
var pdfcounter = 0;
$.when(
$.each(response.pdf_data, function(code, html){
generate_pdf(code,html['table_data'],category,tbl_tot_count,html['password_column'])
.then(function(download){
pdfDataArray.push(download);
pdfcounter++;
if(pdfcounter === tbl_tot_count){
if($("#downloadAll").length){
$("#downloadAll").remove();
}
$("#pdf_tbl_length").append("<button id='downloadAll' class = 'dt-button buttons-collection' style = 'margin-left:5px;'><i class='fa fa-download' aria-hidden='true'></i> DOWNLOAD ALL</button>");
toastr.success("Tax Processed Successfully");
}
});
})
)
}
}
jQuery("#preloader").remove();
},
dataType: 'json'
});
},
rules:{
process_month: "required",
process_type: "required",
process_emp_id: "required",
process_role: "required",
process_mode: "required",
}
}));
$(document).on('click', '#downloadAll', function(){
$("#downloadAll").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$('#downloadAll').attr('disabled','disabled');
var path_name = pdfDataArray[0]['folder'];
var emp_codes = pdfDataArray.map(function(item){
return item['file']+'.pdf';
}).join('","');
if(path_name && emp_codes){
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{ path_name: path_name, emp_codes: emp_codes });
$.ajax({
type : "POST",
url : '<?php echo site_url($controller_name . "/download_zip"); ?>',
data : encData,
contentType : 'text/plain',
success: function(data){
$('#downloadAll').attr('disabled',false);
$("#downloadAll").html("<i class='fa fa-download' aria-hidden='true'></i> DOWNLOAD ALL");
var rslt = JSON.parse(data);
if(rslt.success){
window.open(rslt.filename, '_blank');
}else{
toastr.error("File not exists");
}
},
});
}
});
});
function generate_pdf(code,html,category,tbl_tot_count,password_column){
var process_month = $('#process_month').val();
// Return a promise
return new Promise(function(resolve, reject) {
if(html){
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{code:code,html:html,process_month:process_month,category:category,password_column:password_column});
$.ajax({
type: "POST",
url: '<?php echo site_url($controller_name . "/work_sheet_generate_pdf"); ?>',
data:encData,
contentType:'text/plain',
success: function(data){
var rslt = JSON.parse(data);
if(rslt){
$("#myBar").css({"width": "0%", "background-color": "#001630","text-align": "center","line-height": "20px","color": "white","border-radius": "10px"});
$('#rslts_info').show();
$('.pdf_count_loader').show();
$('#myProgress').show();
trline = "<tr><td>"+process_month+"</td><td>"+code+"</td><td><a onclick=pdf_viewer('"+$.trim(rslt['path'])+"')>View</a></td></tr>";
var table = $('#pdf_tbl').DataTable().row.add($(trline)).draw();
var total_tr = table.rows().count();
var progress_val = total_tr/tbl_tot_count;
var progress_val = progress_val*100;
var progress_value = parseInt(progress_val)+"%";
if(parseInt(progress_val) <100){
$("#myBar").html(progress_value);
$("#myBar").css({"width": progress_value, "background-color": "#001630","text-align": "center","line-height": "20px","color": "white","border-radius": "10px"});
}
if(tbl_tot_count === total_tr){
$('#myProgress').hide();
$('#process_tax_btn').attr('disabled',false);
$("#process_tax_btn").html("Submit");
}
if(parseInt(progress_val) === 100){
$('#myProgress').hide();
var interval = setInterval(function(){
clearInterval(interval,0);
}, 1000);
}
resolve(rslt);
}
},
});
$('#pdf_tbl').DataTable().row().remove();
}
});
}
function view_tax(employee_code,process_month) {
$.ajax({
type: "POST",
url: '<?php echo site_url($controller_name . "/view_tax"); ?>',
data: {employee_code:employee_code,process_month:process_month},
success: function(data){
var rslt = JSON.parse(data);
console.log(rslt.view_table_data);
if(rslt.success){
$('#example1').html(rslt.view_table_data);
$("#myModal").modal("show");
// $('#view_table_info').DataTable({
// dom: 'Bfrtip',
// language:{
// searchPlaceholder: "Search records",
// search: "",
// },
// buttons: 'pdf'
// });
$('input[type=search]').addClass('form-control input-sm');
}
},
});
}
function pdf_viewer(url){
var decodedPath = atob(url);
// Make an AJAX request to fetch the PDF file
var xhr = new XMLHttpRequest();
xhr.open('GET', decodedPath, true);
xhr.responseType = 'blob';
xhr.onload = function(e){
if(this.status === 200){
var blob = this.response;
var reader = new FileReader();
reader.onload = function(event){
var base64Data = event.target.result;
PDFObject.embed(base64Data, "#example1");
$("#myModal").modal("show");
};
reader.readAsDataURL(blob);
}
};
xhr.send();
}
</script>
<div class='row title_content'>
<div class='col-md-2 col-xs-4'>
<h1 class='page_txt'><?php echo $page_name;?></h1>
</div>
<div class='col-md-10 col-xs-8'>
</div>
</div>
<div id="holder" class="form-inline" style="margin-top:20px;">
<div class='col-md-12'style='margin:15px 0px;border-radius:2px;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);padding:15px 0px;'>
<?php echo form_open("$controller_name/process_tax/",array("id"=>"process_tax","class"=>"form-inline")); ?>
<div class="form-group">
<?php
$process_type = array(""=>"---- Select Process Type ----","1"=>"Process By Employee","2"=>"Process By Role");
echo form_label("Process Type", 'process_type', array('class' => 'required'));
echo form_dropdown(array("name" =>'process_type',"id" =>'process_type',"class" =>'form-control input-sm'),$process_type);
?>
</div>
<div class="form-group" style='display:none;max-height: 50px !important;'>
<?php
echo form_label("Search Employee", 'process_emp_id', array('class' => 'required'));
echo form_input(array('name' =>'process_emp_id','id' =>'process_emp_id','class' => 'form-control input-sm','value'=>'','placeholder'=>"Search by Employee Code"));
?>
<div class='append_div'></div>
</div>
<div class="form-group" style='display:none;'>
<?php
echo form_label("Process Role", 'process_role', array('class' => 'required'));
echo form_dropdown(array("name" =>'process_role',"id" =>'process_role',"class" =>'form-control input-sm'),$process_role);
?>
</div>
<div class="form-group">
<?php
echo form_label("Process Month", 'process_month', array('class' => 'required'));
echo form_input(array('name' => 'process_month','id' => 'process_month','class' => 'form-control input-sm datepicker','value'=>''));
?>
</div>
<label>
<input name='annexure_sts' id='annexure_sts' type="checkbox"> With Annexure Data
</label>
</div>
<div class="form-group">
<button class='btn btn-primary btn-sm' id="process_tax_btn">Submit</button>
</div>
<?php echo form_close(); ?>
<div class="myProgress" style ="z-index: 10000; text-align: center;display:none;padding:50px;color:#4b6fa2;">
<i class="fa fa-spinner fa-spin fa-2x fa-fw" ></i>Please wait processing....
</div>
<div class="pdf_count_loader" style="display: none;"></div>
<div id="myProgress" style="display: none;" class='col-md-12'>
<div id="myBar">10%</div>
</div>
<div style="margin:20px !important; padding:15px;background-color: #f2f2f2; display:none;" id='rslt_info'>
</div>
<div style="margin:20px !important; padding:15px;background-color: #f2f2f2; display:none;" id='rslts_info'>
<table class="table table-hover" id="pdf_tbl">
<thead>
<tr>
<th>Process Month</th>
<th>Employee Code</th>
<th>Option</th>
</tr>
</thead>
<tbody id="pdf_files">
</tbody>
</table>
</div>
<div class="modal" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Income</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body" id="example1">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<style>
.pdfobject-container { height: 70rem; border: 1rem solid rgba(0,0,0,.1); }
.pull-right.search {
display: none !important;
}
.columns.columns-right.btn-group.pull-right {
display: none !important;
}
<?php
if($access_search === 1){
echo ".pull-right.search { display: block !important; }";
}
if($access_export === 1){
echo ".columns.columns-right.btn-group.pull-right{display: block !important;}";
}
?>
</style>
<?php $this->load->view("partial/footer"); ?>