File: /home/cafsindia/hrms_cafsinfotech_in/application_bk14FEB2026/views/payslip_report/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";
?>
<script type="text/javascript">
$(document).ready(function (){
<?php $this->load->view('partial/bootstrap_tables_locale'); ?>
$("#search_submit").click(function(){
$("#search_filter_div").toggle();
});
select();
$("#pdf_block_employees").parent().hide();
$("#search_filter_div").hide();
$("#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();
});
//view Overall Payslip
hide_show();
hide_show();
$('#process_mode').on('change',function(){
hide_show();
});
// Change Process by
$("#process_by").change(function(){
var process_by = $('#process_by').val();
$("#pdf_block_employees").val('');
if(parseInt(process_by) === 1){
$("#pdf_block_employees").parent().show();
$('#pdf_block_employees option').prop('selected', false);
$("#fandf_data").parent().show();
$("#search_filter").parent().hide();
}else{
$("#pdf_block_employees").parent().hide();
$('#pdf_block_employees option').prop('selected', true);
$("#fandf_data").parent().hide();
$("#search_filter").parent().show();
$('#fandf_data').prop('checked', false);
}
select();
});
// Change Category
$("#category").change(function(){
var category = $("#category").val();
var payslip_month = $("#payslip_month").val();
var can_process = true;
if(payslip_month === "" && payslip_month.length < 1){
can_process = false;
}
if(category && can_process){
get_employees_list(category,payslip_month);
}
});
// Change Payslip month
$('#payslip_month').on("dp.hide",function(e){
var category = $("#category").val();
var payslip_month = $("#payslip_month").val();
if(category && payslip_month){
get_employees_list(category,payslip_month);
}
});
var process_mode = $("#process_mode").val();
var pdf_type = $("#pdf_type").val();
$("#process_mode").change(function(){
var process_mode = $("#process_mode").val();
var pdf_type = $("#pdf_type").val();
view_hide_show(process_mode,pdf_type);
});
$("#pdf_type").change(function(){
$("#process_by,#pdf_block_employees").val('');
var process_mode = $("#process_mode").val();
var pdf_type = $("#pdf_type").val();
view_hide_show(process_mode,pdf_type);
select();
});
view_hide_show(process_mode,pdf_type);
// Generate Pdf
$("#generate_pdf").click(function(event){
$("#employee_table_view").hide();
var category = $('#category').val();
var payslip_month = $('#payslip_month').val();
var process_by = $('#process_by').val();
var pdf_type = $('#pdf_type').val();
var process_mode = $('#process_mode').val();
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();
var group_by = $("select[name='group_by[]']").map(function(){return $(this).val();}).get();
var pdf_block_employees = $("select[name='pdf_block_employees[]']").map(function(){return $(this).val();}).get();
if(suppressed_data.checked == true){
suppressed_data_val = 1;
}else{
suppressed_data_val = 0;
}
if(fandf_data.checked == true){
fandf_data_val = 1;
}else{
fandf_data_val = 0;
}
// mode == block
var can_process = true;
if(category === "" && category.length < 1) {
toastr.error("Please Select Category");
can_process = false;
}
if(payslip_month === "" && payslip_month.length < 1){
toastr.error("Please Select Month");
can_process = false;
}
if(process_by === "" && process_by.length < 1){
if((parseInt(process_mode) === 1 || parseInt(process_mode) === 2) && (parseInt(pdf_type) === 1)){
toastr.error("Please Select Process By");
can_process = false;
}
}
if(pdf_type === "" && pdf_type.length < 1) {
toastr.error("Please Select Pdf Type");
can_process = false;
}
if(process_mode === "" || process_mode.length < 1) {
toastr.error("Please Select Process Mode");
can_process = false;
}
if(parseInt(process_by) === 1){
if(pdf_block_employees == "" && pdf_block_employees.length < 1 ){
if((parseInt(process_mode) === 1 || parseInt(process_mode) === 2) && (parseInt(pdf_type) === 1)){
toastr.error("Please Select Block Employees");
can_process = false;
}
}
}
if(can_process){
if(category && payslip_month){
$("#generate_pdf").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$('#generate_pdf').attr('disabled','disabled');
//Encryption
var key = '<?php echo $key; ?>';
var data = {category:category,payslip_month:payslip_month,fliter_label:fliter_label,fliter_type:fliter_type,input_field_type:input_field_type,filter_cond:filter_cond,fliter_val:fliter_val,group_by:group_by,pdf_type:pdf_type,process_by:process_by,pdf_block_employees:pdf_block_employees,process_mode:process_mode,suppressed_data_val:suppressed_data_val,fandf_data_val:fandf_data_val};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url: '<?php echo site_url("$controller_name/payslip_generation"); ?>',
data:encData,
contentType: 'text/plain',
success: function(data){
//$("#process_mode,#category,#payslip_month,#pdf_type,#process_by,#pdf_block_employees,#suppressed_data,#fandf_data").val('');
$("#employee_table_view").show();
var rslt = JSON.parse(data);
if(rslt.success){
$('#employee_table_view').html(rslt.table_data);
$('#emp_details').DataTable();
}else{
toastr.error(rslt.message);
$('#employee_table_view').html(rslt.table_data);
}
$("#payslip_month,#process_by").val('');
select();
$('#generate_pdf').attr('disabled',false);
$("#generate_pdf").html("<span class='fa fa-file'> </span> Process ");
},
});
}
}
});
});
// Hide show
function hide_show(){
var process_mode = parseInt($('#process_mode').val());
if(process_mode === 1){
$('#search_filter').parent().show();
$('#group_by').parent().show();
}else{
$('#search_filter').parent().hide();
$('#group_by').parent().hide();
}
}
//COMMON SELECT2 FUNCTIONS
function select(){
$(".datepicker").datetimepicker({
format: 'MM-YYYY'
});
$("#payslip_month").datetimepicker({
format: 'MM-YYYY'
});
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
}
function empty_all(){
$("#payslip_month").val("");
$("#pdf_type").val("");
$("#process_by").val("");
$("#category").val("0");
$('#suppressed_data').prop('checked', false);
$('#fandf_data').prop('checked', false);
$('#pdf_block_employees option:selected').removeAttr('selected');
$("#pdf_block_employees").parent().hide();
select();
}
function get_employees_list(category,payslip_month){
//Encryption
var key = '<?php echo $key; ?>';
var data = {category:category,payslip_month:payslip_month};
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){
$('#pdf_block_employees_span').empty();
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
//dropdownParent: $('.modal-dialog')
});
$('#pdf_block_employees').html(rslt.option);
}else{
$('#pdf_block_employees_span').empty();
toastr.error(rslt.message);
$("#payslip_month").val('');
}
},
});
}
function pdf_viewer(url){
PDFObject.embed(url, "#example1");
$("#myModal").modal("show");
}
function download_zip(path_name){
if(path_name){
//Encryption
var key = '<?php echo $key; ?>';
var data = {path_name:path_name};
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.location = rslt.filename;
}else{
toastr.error("File not exists");
}
},
});
}
}
function view_hide_show(process_mode,pdf_type){
if(parseInt(process_mode) === 2){
if(parseInt(pdf_type) === 2){
$('#process_by,#pdf_block_employees').parent().hide();
}else{
$('#process_by,#pdf_block_employees').parent().show();
}
}else{
$('#process_by,#pdf_block_employees').parent().show();
}
$('#process_by,#pdf_block_employees,#category,#payslip_month').val('');
select();
}
</script>
<div class='row title_content' style='margin: 0px 0px 7px !important;'>
<div class='col-md-2 col-xs-4'>
<h1 class='page_txt'>Payslip Generation</h1>
</div>
</div>
<div class="col-md-12" class="form-inline">
<div class="form-group">
<?php
echo form_label("Process Mode", 'process_mode', array('class' => 'required'));
$process_by_list = array(""=>"--- Select Mode ---","1"=>"Process Payslip","2"=>"View Payslip");
echo form_dropdown(array('name' => 'process_mode','id' =>'process_mode','class' => 'form-control input-sm'), $process_by_list);
?>
</div>
<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'), $pdf_type);
?>
</div>
<div class="form-group">
<?php
echo form_label($this->lang->line('category'), 'category', array('class' => 'required'));
echo form_dropdown(array( 'name' => 'category', 'id' => 'category', 'class' => 'form-control input-sm select2'), $category_list);
?>
</div>
<div class="form-group">
<?php
echo form_label('Payslip Month', 'payslip_month', array('class' => 'required'));
echo form_input(array('name' => 'payslip_month', 'id' => 'payslip_month', 'class' => 'form-control input-sm datepicker', 'value'=> ''));
?>
</div>
<div class="form-group">
<?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'), $process_by_list);
?>
</div>
<div class="form-group">
<?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>
<div class="form-group" style="z-index: 999;">
<?php
if($access_search === 1){
?>
<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 id="search_filter_div" class='search_filter' style="display: none;">
<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 datepicker', '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 select2'), $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>
<?php
}
?>
</div>
<div class="form-group">
<?php
echo form_label("Group By", 'group_by', array('class' => ''));
echo form_dropdown(array( 'name' => 'group_by[]', 'multiple id' => 'group_by', 'class' => 'form-control input-sm select2'), $group_by);
?>
</div>
<div class="form-group">
<label>
<input name='suppressed_data' id='suppressed_data' type='checkbox'> Suppressed Page</input>
</label>
</div>
<div class="form-group">
<label>
<input name='fandf_data' id='fandf_data' type='checkbox'> FandF</input>
</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="myProgress">
<div id="myBar"></div>
</div>
<div id="employee_table_view" style="margin-left:15px;margin-right:15px;"></div>
<div class="modal" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Payslip Details</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>
.form-group {
width: 16%;
display: inline-block;
padding: 12px;
}
.pull-right.search {
display: none !important;
}
.columns.columns-right.btn-group.pull-right {
display: none !important;
}
.pull-right.search {
display: block !important;
}
.pdfobject-container {
height: 70rem; border: 1rem solid rgba(0,0,0,.1);
}
.modal-dialog {
width: 100% !important;
height: 100% !important;
margin: 0;
padding: 0;
}
.modal-content {
height: 850px!important;
min-height: 100% !important;
border-radius: 0;
}
.modal .modal-body div {
height: 100% !important;
overflow-y: auto;
width: 100%;
}
.select2-container .select2-selection--single {
box-sizing: border-box;
cursor: pointer;
display: block;
height: 35px !important;
user-select: none !important;
-webkit-user-select: none;
}
</style>
<?php $this->load->view("partial/footer"); ?>