File: /home/cafsindia/uds.cafsinfotech.in/smart_hrms_dev/application/views/pdf_generation/manage.php
<?php
$this->load->view("partial/header");
$page_name = ucwords(str_replace("_"," ",$controller_name));
$breadcrumb .= "<li><a href='$site_url#Home'>Home</a></li>
<li><a href='".site_url($controller_name)."#$controller_name'>$page_name</a></li>
<li class='active'>List</li>";
?>
<!-- MODULE NAME -->
<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'>
<ol class="breadcrumb">
<?php echo $breadcrumb; ?>
</ol>
</div>
</div>
<!-- FORM CONTENT !!! -->
<?php echo form_open("$controller_name/pdf_generation",array('id'=>'pdf_generation_form'));?>
<div id="toolbar" class="form-inline">
<div class="col-md-12" class="form-inline">
<!-- PROCESS MODE -->
<div class="form-group">
<?php
echo form_label("Process Mode", 'process_mode', array('class' => 'required'));
$process_by_list = array(""=>"--- Select Mode ---","1"=>"Generate","2"=>"View");
echo form_dropdown(array('name' => 'process_mode','id' =>'process_mode','class' => 'form-control input-sm select2'), $process_by_list);
?>
</div>
<!-- MODULE NAME -->
<div class="form-group">
<?php
echo form_label("Module Name", 'module_name', array('class' => 'required'));
echo form_dropdown(array('name' => 'module_name','id' =>'module_name','class' => 'form-control input-sm select2'), $module_list);
?>
</div>
<!-- PDF TEMPLATE -->
<div class="form-group">
<?php
$pdf_template = array(""=>"--- Select Template ---");
echo form_label("PDF Template", 'pdf_template', array('class' => 'required'));
echo form_dropdown(array('name' => 'pdf_template','id' =>'pdf_template','class' => 'form-control input-sm select2'), $pdf_template);
?>
</div>
<!-- PDF TYPE -->
<div class="form-group" style="display:none">
<?php
echo form_label($this->lang->line('pdf_type'), 'pdf_type', array('class' => 'required'));
$pdf_type = array(""=>"--- Select PDF Type ---","1"=>"Single Sheet","2"=>"Combined Sheet");
echo form_dropdown(array('name' => 'pdf_type','id' =>'pdf_type','class' => 'form-control input-sm select2'), $pdf_type);
?>
</div>
<!-- COLUMN NAME -->
<div class="form-group">
<?php
echo form_label('Select '.$payslip_based_on.'', 'column_name', array('class' => 'required'));
echo form_dropdown(array( 'name' => 'column_name[]', 'multiple id' => 'column_name', 'class' => 'form-control input-sm select2'));
?>
</div>
<!-- PROCESS MONTH -->
<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'=> '','placeholder' => 'MM-YYYY'));
?>
</div>
<!-- PROCESS BY -->
<div class="form-group" style="display:none">
<?php
echo form_label("Process By", 'process_by', array('class' => 'required'));
$process_by_list = array(""=>"--- Select by ---","1"=>"Process Employeewise","2"=>"Process All Employee");
echo form_dropdown(array('name' => 'process_by','id' =>'process_by','class' => 'form-control input-sm select2'), $process_by_list);
?>
</div>
<!-- EMPLOYEE -->
<div class="form-group" style="display:none">
<?php
echo form_label($this->lang->line('pdf_block_employees'), 'pdf_block_employees', array('class' => 'required'));
echo form_dropdown(array('name' => 'pdf_block_employees[]','multiple id' =>'pdf_block_employees','class' => 'form-control input-sm select2'));
?>
</div>
<!-- PROCESS -->
<div class="form-group">
<label>
<input name='suppressed_data' id='suppressed_data' type='checkbox'> Suppressed Page</input>
</label>
</div>
<!-- FILTER -->
<!--<div class="form-group" style="z-index: 999;" id="filter_div">
<a class="btn btn-sm btn-edit" id="search_filter">
<i class="fa fa-filter" aria-hidden="true"></i> Search filter
<span class="caret"></span>
</a>
</div> -->
<!-- SUBMIT -->
<div class="form-group">
<button class='btn btn-primary btn-sm' id="generate_pdf"><span class='fa fa-file'> </span> Process </button>
</div>
<!-- PROGRESS BAR -->
<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 id="employee_table_view" style="margin-left:15px;margin-right:15px;"></div>
<!-- MODAL -->
<div class="modal" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">View PDF</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body" id="view_pdf"></div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
<?php echo form_close(); ?>
<!-- FILTER BOX BECOZ OF SLOW ISSUE COMMENTED -> NB[20-05-2024]-->
<!-- <div id="search_filter_div" class='search_filter'>
<div style="max-height:250px;overflow: auto;">
<?php
$filter_cond_array = array('' => '--- Select ---','=' => '=','>' => '>','<' => '<','LIKE' => 'LIKE');
$tr_line = "";
foreach($fliter_list as $fliter){
$label_id = $fliter['label_id'];
$field_isdefault = $fliter['field_isdefault'];
$array_list = $fliter['array_list'];
$field_type = $fliter['field_type'];
$label_name = ucwords(strtolower(str_replace("_"," ",$label_id)));
$fliter_label = form_input(array('type'=>'hidden','name' => 'fliter_label[]', 'class' => 'form-control input-sm','value' => $label_id));
$fliter_type = form_input(array('type'=>'hidden','name' => 'fliter_type[]', 'class' => 'form-control input-sm','value' => $field_isdefault));
$filter_cond = form_dropdown(array('name' => 'filter_cond[]','class' => 'form-control input-sm'), $filter_cond_array);
$input_field_type = form_input(array('type' => 'hidden','name' => 'input_field_type[]','class' => 'form-control input-sm', 'placeholder'=>'Select Date','value' => $field_type));
if(((int)$field_type === 5) || ((int)$field_type === 7)){
$fliter_val = form_dropdown(array('name' => 'fliter_val[]','class' => 'form-control input-sm'), $array_list);
}else
if((int)$field_type === 4){
$fliter_val = form_input(array( 'name' => 'fliter_val[]', 'class' => 'form-control input-sm datepicker', 'placeholder'=>'Select Date','value' => ''));
}else{
$fliter_val = form_input(array( 'name' => 'fliter_val[]', 'class' => 'form-control input-sm', 'placeholder'=>'Search value','value' => ''));
}
$tr_line .= "<tr>
<td class='search_td'> $input_field_type $label_name $fliter_label $fliter_type</td>
<td> $filter_cond</td>
<td> $fliter_val </td>
</tr>";
}
echo "<table style='width:100%;'>$tr_line</table>";
?>
</div>
<div style="margin-top:8px;">
<div class="row">
<div class="col-md-6" style='text-align:left;'>
<a class="btn btn-xs btn-danger" id="clear_search"> Clear / Close</a>
</div>
<div class="col-md-6" style='text-align:right;'>
<a class="btn btn-xs btn-primary" id="search_submit">Done</a>
</div>
</div>
</div>
</div> -->
<script type="text/javascript">
$(document).ready(function(){
select(); //SELECT2
//FILTER DATA
// var fliter_label = $("input[name='fliter_label[]']").map(function(){return $(this).val();}).get();
// var fliter_type = $("input[name='fliter_type[]']").map(function(){return $(this).val();}).get();
// var input_field_type = $("input[name='input_field_type[]']").map(function(){return $(this).val();}).get();
// var filter_cond = $("select[name='filter_cond[]']").map(function(){return $(this).val();}).get();
// var fliter_val = $("input[name='fliter_val[]'],select[name='fliter_val[]']").map(function(){return $(this).val();}).get();
// $("#search_filter_div").hide();
// $("#search_submit").click(function(){
// $("#search_filter_div").toggle();
// });
// $("#search_filter").click(function(){
// $("#search_filter_div").toggle();
// });
// $("#clear_search").click(function(){
// $('#search_filter_div').find('input').val('');
// $('#search_filter_div').find('option').attr('selected', false);
// $("#search_filter_div").toggle();
// select();
// });
//PDF TYPE ONCHANGE
var pdf_type = $("#pdf_type").val();
$("#pdf_type").change(function(){
var pdf_type = $("#pdf_type").val();
view_hide_show(pdf_type);
});
//SUBMIT HANDLER
$('#pdf_generation_form').validate({
rules : {
process_mode : "required",
pdf_type : "required",
module_name : "required",
process_month : "required",
process_by : "required",
"column_name[]" : "required",
},
submitHandler: function(form){
$("#employee_table_view").hide();
$("#generate_pdf").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$('#generate_pdf').attr('disabled','disabled');
if(suppressed_data.checked == true){
suppressed_data_val = 1;
}else{
suppressed_data_val = 0;
}
//PROGRESS BAR
if(parseInt(process_mode) === 1){
$("#myBar").css({"width": "0%", "background-color": "#001630","text-align": "center","line-height": "20px","color": "white","border-radius": "10px"});
var total_count = 5 * count_employees;
var total_count = parseInt(total_count);
$('#myProgress').show();
var timer2 = '00:00';
var interval = setInterval(function(){
var timer = timer2.split(':');
var minutes = parseInt(timer[0], 10);
var seconds = parseInt(timer[1], 10);
++seconds;
minutes = (seconds < 59) ? minutes : ++minutes;
seconds = (seconds < 60) ? seconds : 0;
seconds = (seconds < 10) ? '0' + seconds : seconds;
timer2 = minutes + ':' + seconds;
var runTime = (minutes*60) + (seconds);
var decTime = parseInt(runTime);
var progress_val = decTime/total_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(parseInt(progress_val) === 100){
$('#myProgress').hide();
clearInterval(interval,0);
}
}, 1000);
}
//FORM SUBMIT
$(form).ajaxSubmit({
data : {suppressed_data_val:suppressed_data_val},
//fliter_label:fliter_label,fliter_type:fliter_type,input_field_type:input_field_type,filter_cond:filter_cond,fliter_val:fliter_val
success: function(response){
$('#generate_pdf').attr('disabled',false);
$("#generate_pdf").html("<span class='fa fa-file'> </span> Process ");
$('#suppressed_data').attr('checked', false); // Unchecks it
$("#employee_table_view").show();
var rslt = JSON.parse(response);
if(rslt.success){
clearInterval(interval,0);
$("#myBar").css({"width": "100%", "background-color": "#001630","text-align": "center","line-height": "20px","color": "white","border-radius": "10px"});
$('#employee_table_view').html(rslt.table_data);
$('#emp_details').DataTable({
language:{
lengthMenu:"<span style='margin-top:8px;margin-left:10px;'>Display</span> _MENU_ <span style='margin-top:8px;'>Records</span>",
searchPlaceholder: "Search records",
search: "",
processing: '<div style="text-align: center; padding: 50px;color:#4b6fa2;z-index:999999999;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</div>',
},
});
$('input[type=search]').addClass('form-control input-sm select2');
$("select[name='table_length']" ).addClass('form-control input-sm');
}else{
toastr.error(rslt.message);
$('#employee_table_view').html(rslt.table_data);
}
$('#myProgress').hide();
}
})
}
});
//MODULE NAME ONCHANGE
$("#module_name").change(function(){
$("#pdf_template").parent().show();
$("#column_name").empty();
var pdf_type = $("#pdf_type").val();
var module_name = $("#module_name").val();
//Encryption
var key = '<?php echo $key; ?>';
var data = {module_name:module_name};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url : '<?php echo site_url("$controller_name/get_pdf_template"); ?>',
data:encData,
contentType: 'text/plain',
beforeSend: function () {
$("#pdf_template").next('span').attr('id', 'pdf_template_span');
$('#pdf_template_span').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data){
var rslt = JSON.parse(data);
$('#pdf_template_span').empty();
$('.select2').select2();
$("#pdf_template").empty();
var template_option ="<option value=''>---- Select Template ----</option>';";
$.each(rslt.template_rslt, function(key,value){
template_option += '<option value="' + value['prime_print_info_id'] + '">' + value['print_info_name'] + '</option>';
});
$('#pdf_template').append(template_option);
},
});
});
//PROCESS BY ONCHANGE
$("#process_by").change(function(){
var column_name = $("input[name='column_name[]'],select[name='column_name[]']").map(function(){return $(this).val();}).get();
var process_month = $("#process_month").val();
var process_by = $("#process_by").val();
var module_name = $("#module_name").val();
var pdf_template = $("#pdf_template").val();
if(parseInt(process_by) === 1){
$("#pdf_block_employees").parent().show();
}else{
$("#pdf_block_employees").parent().hide();
}
//RETRIEVE EMPLOYEES CODE
if(column_name && process_month){
//Encryption
var key = '<?php echo $key; ?>';
var data = {column_name:column_name,process_month:process_month,module_name:module_name,pdf_template:pdf_template};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url : '<?php echo site_url($controller_name . "/get_employees_list"); ?>',
data:encData,
contentType: 'text/plain',
beforeSend: function(){
$("#pdf_block_employees").next('span').attr('id', 'pdf_block_employees_span');
$('#pdf_block_employees_span').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
$('.select2').select2();
$('#pdf_block_employees').html(rslt.option);
$('#pdf_block_employees option').prop('selected', false);
}else{
toastr.error(rslt.message);
}
},
});
}
});
//PDF TEMPLATE ONCHANGE
$(document).on('change', '#pdf_template', function(){
var pdf_template = $("#pdf_template").val();
if(pdf_template){
$("#pdf_type").parent().show();
}else{
$("#pdf_type").parent().hide();
}
//Encryption
var key = '<?php echo $key; ?>';
var data = {pdf_template:pdf_template};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url : '<?php echo site_url($controller_name."/pdf_type_fetch"); ?>',
data:encData,
contentType: 'text/plain',
success: function(data){
$('.select2').select2();
if(data === "Payslip"){
$("#pdf_type option[value='2']").prop("disabled", false);
}else{
$("#pdf_type option[value='2']").prop("disabled", true);
}
}
})
});
//PDF TYPE ONCHANGE
$("#pdf_type").change(function(){
var pdf_template = $("#pdf_template").val();
//Encryption
var key = '<?php echo $key; ?>';
var data = {pdf_template:pdf_template};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url : '<?php echo site_url($controller_name."/pdf_template_wise_data"); ?>',
data:encData,
contentType: 'text/plain',
beforeSend: function(){
$("#column_name").next('span').attr('id', 'column_name_span');
$('#column_name_span').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data){
var rslt = JSON.parse(data);
$('#column_name_span').empty();
$('#column_name').empty();
$('.select2').select2();
var column_option ="<option value=''>---- Select Template ----</option>';";
$.each(rslt.column_rslt, function(key,value){
column_option += '<option value="' + key + '">' + value + '</option>';
});
$('#column_name').append(column_option);
},
});
});
});
//PDF VIEWER
function pdf_viewer(url){
var file_path = atob(url); //DECRYPT
PDFObject.embed(file_path, "#view_pdf");
$("#myModal").modal("show");
}
//DOWNLOAD PDF
function download_payslip(id,path){
var file_path = atob(path);
$("#"+id).attr("href",file_path);
}
//DOWNLOAD ZIP
function download_zip(path_name,emp_codes){
var input_field_type = $("input[name='input_field_type[]']").map(function(){return $(this).val();}).get();
if(path_name){
//Encryption
var key = '<?php echo $key; ?>';
var data = {path_name:path_name,emp_codes:emp_codes};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url : '<?php echo site_url($controller_name . "/download_zip"); ?>',
data:encData,
contentType: 'text/plain',
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
window.open(rslt.filename, '_blank');
}else{
toastr.error("File not exists");
}
},
});
}
}
//PROCESS BY & EMP HIDE ND SHOW
function view_hide_show(pdf_type){
$('.select2').select2();
if(parseInt(pdf_type) === 1){
$('#process_by,#pdf_block_employees').parent().show();
}else{
$('#process_by,#pdf_block_employees').parent().hide();
}
$('#process_by').val('');
$("#pdf_block_employees").empty();
}
//SELECT2
function select(){
$(".datepicker").datetimepicker({
format: 'MM-YYYY'
});
$("#process_month").datetimepicker({
format: 'MM-YYYY'
});
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
}
</script>
<?php $this->load->view("partial/footer"); ?>