File: /home/cafsindia/uds.cafsinfotech.in/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" id="pdf_generation">
<!-- 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>
<!-- PDF TYPE -->
<div class="form-group">
<?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>
<!-- 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' => 'Process Month'));
?>
</div>
<!-- PERSONAL CODE -->
<div class="form-group">
<?php
echo form_label('Personal Area', 'personal_code', array('class' => 'required'));
echo form_dropdown(array('name' => 'personal_code','id' =>'personal_code','class' => 'form-control input-sm select2'), $per_area_list);
?>
</div>
<!-- PROJECT ID-->
<div class="form-group">
<?php
echo form_label('Project Id', 'project_id', array('class' => 'required'));
echo form_dropdown(array('name' => 'project_id', 'id' => 'project_id', 'class' => 'form-control input-sm select2','value'=> ''));
?>
</div>
<!-- WBS ELEMENT-->
<div class="form-group">
<?php
echo form_label('WBS Element', 'wbs_element', array('class' => 'required'));
echo form_dropdown(array( 'name' => 'wbs_element[]', 'multiple id' => 'wbs_element', 'class' => 'form-control input-sm select2'));
echo "<label><input name='wbs_element_select' id='wbs_element_select' type='checkbox'> Select All</label>";
?>
</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 CODE -->
<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'));
echo "<label><input name='emp_name_select' id='emp_name_select' type='checkbox'> Select All</label>";
?>
</div>
<div class="form-group">
<button class='btn btn-primary btn-sm' id="generate_pdf"><span class='fa fa-file'> </span> Process </button>
</div>
<div id="employee_table_view" style="margin-left:15px;margin-right:15px;"></div>
<!-- PDF 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(); ?>
<style type="text/css">
table, th, td{
text-align: center;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("#process_mode").val('1');
$("#process_by").val('2');
select_call();
//FORM SUBMIT
$('#pdf_generation_form').validate({
rules:{
process_mode : "required",
pdf_type : "required",
module_name : "required",
process_month : "required",
personal_code : "required",
project_id : "required",
process_by : "required",
pdf_block_employees : "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');
//Encrypted
let formData = new FormData(form);
// Convert FormData to JSON object
let jsonData = Object.fromEntries(formData.entries());
let wbs_element_arr = [];
let pdf_employees_arr = [];
$('select[name="wbs_element[]"]').each(function (a , b) {
wbs_element_arr[a] = $(this).val();
});
$('select[name="pdf_block_employees[]"]').each(function (a , b) {
pdf_employees_arr[a] = $(this).val();
});
jsonData['wbs_element'] = wbs_element_arr[0];
jsonData['pdf_block_employees'] = pdf_employees_arr[0];
var encKey = '<?php echo $encKey; ?>';
var encData = encrypt(encKey,jsonData);
$.ajax({
type: "POST",
url: '<?php echo site_url($controller_name . "/pdf_generation"); ?>',
data:encData,
contentType: 'text/plain',
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){
toastr.success(rslt.message);
$('#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);
}
}
})
}
});
//PDF TYPE ONCHANGE
var pdf_type = $("#pdf_type").val();
$("#pdf_type").change(function(){
var pdf_type = $("#pdf_type").val();
view_hide_show(pdf_type);
});
//PERSONAL CODE ONCHANGE
$("#personal_code").change(function(){
var personal_code = $("#personal_code").val();
if(personal_code){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {personal_code:personal_code};
var encData = encrypt(encKey,data);
$.ajax({
type : "POST",
url : '<?php echo site_url($controller_name . "/pro_id_fetch"); ?>',
data:encData,
contentType: 'text/plain',
beforeSend : function(){
$("#project_id").parent().append('<span id="span_project_id" style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data){
$('#wbs_element').empty();
$("#wbs_element_select").prop( "checked",false);
$("#process_by").val('').change();
$("#span_project_id").remove('');
var rslt = JSON.parse(data);
if(!rslt.success){
toastr.error(rslt.message);
}
$('#project_id').empty();
var project_id ="<option value=''>---- Select Template ----</option>'";
$.each(rslt.column_rslt, function(key,value){
project_id += '<option value="' + key + '">' + value + '</option>';
});
$('#project_id').append(project_id);
}
})
}
});
//PROJECT ONCHANGE
$('#project_id').on("change",function(e){
$('#pdf_block_employees').empty();
$("#emp_name_select").prop( "checked",false);
var process_month = $("#process_month").val();
var personal_code = $("#personal_code").val();
var project_id = $("#project_id").val();
if(process_month && personal_code && project_id){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {process_month:process_month,personal_code:personal_code,project_id:project_id};
var encData = encrypt(encKey,data);
$.ajax({
type: "POST",
url : '<?php echo site_url($controller_name."/wbs_element_fetch"); ?>',
data:encData,
contentType: 'text/plain',
beforeSend: function(){
$("#wbs_element").parent().append('<span id="span_wbs_element" style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data){
$("#span_wbs_element").remove('');
$("#wbs_element_select").prop( "checked",false);
$("#process_by").val('').change();
var rslt = JSON.parse(data);
if(!rslt.success){
toastr.error(rslt.message);
}
$('#wbs_element').empty();
var wbs_option ="<option value=''>---- Select Template ----</option>';";
$.each(rslt.wbs_list, function( key, value ) {
wbs_option += '<option value="' + key + '">' + value + '</option>';
});
$('#wbs_element').append(wbs_option);
},
});
}
});
//PROCESS BY ONCHANGE
$("#process_by").change(function(){
var wbs_element = $("input[name='wbs_element[]'],select[name='wbs_element[]']").map(function(){return $(this).val();}).get();
var process_month = $("#process_month").val();
var module_name = $("#module_name").val();
var personal_code = $("#personal_code").val();
var project_id = $("#project_id").val();
var process_by = $("#process_by").val();
if(parseInt(process_by) === 1){
$("#pdf_block_employees").parent().show();
}else{
$("#pdf_block_employees").parent().hide();
}
$("#pdf_block_employees > option").removeAttr("selected");
$("#pdf_block_employees").trigger("change");
$("#emp_name_select" ).prop( "checked",false);
if(wbs_element && process_month && project_id && personal_code && process_by){
get_employees_list(wbs_element,process_month,module_name,process_by,personal_code,project_id);
}
});
//SELECT ALL
$("#wbs_element_select").click(function(){
if($("#wbs_element_select").is(':checked')){
$("#wbs_element > option").prop("selected","selected");
$("#wbs_element").trigger("change");
}else{
$("#wbs_element > option").removeAttr("selected");
$("#wbs_element").trigger("change");
$("#process_by").val('').change();
}
$('#wbs_element option').filter(function(){
return !this.value || $.trim(this.value).length == 0;
}).remove();
});
$("#emp_name_select").click(function(){
if($("#emp_name_select").is(':checked') ){
$("#pdf_block_employees > option").prop("selected","selected");
$("#pdf_block_employees").trigger("change");
}else{
$("#pdf_block_employees > option").removeAttr("selected");
$("#pdf_block_employees").trigger("change");
}
$('#pdf_block_employees option').filter(function(){
return !this.value || $.trim(this.value).length == 0;
}).remove();
});
});
//SELECT2
function select_call(){
$(".datepicker").datetimepicker({
format: 'MM-YYYY'
});
$("#process_month").datetimepicker({
format: 'MM-YYYY'
});
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
}
//PROCESS BY ONCHANGE
function get_employees_list(wbs_element,process_month,module_name,process_by,personal_code,project_id){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {wbs_element:wbs_element,process_month:process_month,module_name:module_name,personal_code:personal_code,project_id:project_id};
var encData = encrypt(encKey,data);
$.ajax({
type: "POST",
url : '<?php echo site_url($controller_name . "/get_employees_list"); ?>',
data:encData,
contentType: 'text/plain',
beforeSend: function(){
$("#pdf_block_employees").parent().append('<span id="span_pdf_block_employees" style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data){
$("#span_pdf_block_employees").remove('');
var rslt = JSON.parse(data);
if(rslt.success){
$('#pdf_block_employees').html(rslt.option);
if(parseInt(process_by) === 1){
$('#pdf_block_employees option').prop('selected', false);
}else
if(parseInt(process_by) === 2){
$('#pdf_block_employees option').prop('selected', false);
}
}else{
toastr.error(rslt.message);
$("#wbs_element > option").removeAttr("selected");
$("#wbs_element").trigger("change");
$("#wbs_element_select" ).prop( "checked",false);
$("#project_id,#process_by").val('').change();
}
},
});
}
//VIEW PDF
function pdf_viewer(url){
var file_path = atob(url);
var t = new Date().getTime();
PDFObject.embed(file_path + "?" + t, "#view_pdf");
$("#myModal").modal("show");
}
//DOWNLOAD PDF
function download_payslip(id,path){
var file_path = atob(path);
$("#"+id).attr("href",file_path);
}
//ZIP DOWNLOAD
function download_zip(path_name,emp_codes){
if(path_name){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {path_name:path_name,emp_codes:emp_codes};
var encData = encrypt(encKey,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");
}
},
});
}
}
//HIDE AND SHOW PROCESS BY
function view_hide_show(pdf_type){
if(parseInt(pdf_type) === 1){
$('#process_by').parent().show();
}else{
$('#process_by,#pdf_block_employees').parent().hide();
}
$('#process_by').val('');
$("#emp_name_select" ).prop( "checked",false);
$("#pdf_block_employees").empty();
select_call();
}
</script>
<?php $this->load->view("partial/footer"); ?>