MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
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'>&nbsp;</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">&times;</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'>&nbsp;</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"); ?>