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/.trash/application_bkold/views/pdf_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";
?>
<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 Increment
	$("#pdf_template").parent().hide();
	$("#pdf_template").empty();
	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);
		}else{
			$("#pdf_block_employees").parent().hide();
			$('#pdf_block_employees option').prop('selected', true);
		}
		hide_show();
		select();
	});
	$("#column_name").change(function(){
		$("#process_month").val('');
	});

	$("#column_name_select").click(function(){
		$("#process_month").val('');
		if($("#column_name_select").is(':checked') ){
			$("#column_name > option").prop("selected","selected");
			$("#form_view_for").trigger("change");
		}else{
			$("#column_name > option").removeAttr("selected");
			$("#column_name").trigger("change");
		}
    $('#column_name option').filter(function(){
			return !this.value || $.trim(this.value).length == 0;
		}).remove();
		//$("#menu_for>option[value='']").removeAttr("selected");
	});
	// Change Payslip month
	$('#process_month').on("dp.hide",function(e){
		var column_name 	=  $("input[name='column_name[]'],select[name='column_name[]']").map(function(){return $(this).val();}).get();
		var process_month   = $("#process_month").val();
		var module_name     = $("#module_name").val();
		var pdf_template    = $("#pdf_template").val();
		$("#process_by").val('');
		if(column_name && process_month){
			get_employees_list(column_name,process_month,module_name,pdf_template);
		}
		select();
	});

	var process_mode = $("#process_mode").val();
	$("#process_mode").change(function(){
		var process_mode = $("#process_mode").val();
		view_hide_show(process_mode);
	});
	
	view_hide_show(process_mode);
	// Generate Pdf
	$("#generate_pdf").click(function(event){
		$("#employee_table_view").hide();
		var module_name    	   = $('#module_name').val();
		var pdf_template       = $('#pdf_template').val();
		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 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();	
		var count_employees	    = pdf_block_employees.length;
		if(suppressed_data.checked == true){
			suppressed_data_val = 1;
		}else{
			suppressed_data_val = 0;
		}	
		
		// mode == block
		var can_process = true;
		if(column_name === "" || column_name.length < 1) {
			toastr.error("Please Select Column name");
			can_process = false;
		}
		if(process_month === "" && process_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)){
				toastr.error("Please Select Process By");
				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)){
					toastr.error("Please Select Block Employees");
					can_process = false;
				}
			}
		}
		if(can_process){
			if(column_name && process_month){
				$("#generate_pdf").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
				$('#generate_pdf').attr('disabled','disabled');
				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;
					    // $('.countdown').html(minutes + ':' + 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();
							// timer2 = '';
							clearInterval(interval,0);
						}
					}, 1000);
				}
				$.ajax({
					type: "POST",
					url: '<?php echo site_url("$controller_name/pdf_generation"); ?>',
					data: {column_name:column_name,process_month:process_month,fliter_label:fliter_label,fliter_type:fliter_type,input_field_type:input_field_type,filter_cond:filter_cond,fliter_val:fliter_val,process_by:process_by,pdf_block_employees:pdf_block_employees,process_mode:process_mode,module_name:module_name,pdf_template:pdf_template,suppressed_data_val:suppressed_data_val},
					success: function(data){						
						//$('#suppressed_data').attr('checked', false); // Unchecks it
						$("#employee_table_view").show();
						var rslt = JSON.parse(data);
						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();

						}else{
							toastr.error(rslt.message);
							$('#employee_table_view').html(rslt.table_data);
						}
						$('#myProgress').hide();
						$("#process_month,#process_by").val('');
						select();
						$('#generate_pdf').attr('disabled',false);
						$("#generate_pdf").html("<span class='fa fa-file'>&nbsp;</span> Process ");
					},
				});
			}
		}
	});

	$("#module_name").change(function(){
		$("#pdf_template").parent().show();
		$("#column_name").empty();
		var module_name = $("#module_name").val();
		$.ajax({
			type: "POST",
			url: '<?php echo site_url("$controller_name/get_pdf_template"); ?>',
			data: {module_name:module_name},
			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({
					placeholder: '---- Select ----',
					allowClear: true,
					//dropdownParent: $('.modal-dialog')
				});
				$("#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);
			},
		});
	});

	//get columnn 
	$("#pdf_template").change(function(){
		var pdf_template = $("#pdf_template").val();
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/pdf_template_wise_data"); ?>',
			data: {pdf_template:pdf_template},
			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({
					placeholder: '---- Select ----',
					allowClear: true,
					//dropdownParent: $('.modal-dialog')
				});
				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);
			},
		});
	});
});
// Hide show	
function hide_show(){
	var process_mode = parseInt($('#process_mode').val());
	var process_by   = parseInt($('#process_by').val());
	if(process_mode === 1 && process_by === 2){
		$('#search_filter').parent().show();
		$('#filter_div').css("display", "");
	}else{
		$('#search_filter').parent().hide();
		$('#filter_div').css("display", "none");
	}
}
//COMMON SELECT2 FUNCTIONS
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: [',']
	});
}
function get_employees_list(column_name,process_month,module_name,pdf_template){
	$.ajax({
		type: "POST",
		url: '<?php echo site_url($controller_name . "/get_employees_list"); ?>',
		data: {column_name:column_name,process_month:process_month,module_name:module_name,pdf_template:pdf_template},
		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);
				$('#pdf_block_employees option').prop('selected', false);
				
			}else{
				toastr.error(rslt.message);
				$("#process_month").val('');
			}
		},
	});	
}
function pdf_viewer(url){
	var file_path   = atob(url);  //decrypt base64 encryption !! 
	PDFObject.embed(file_path, "#view_pdf");
	$("#myModal").modal("show");
}
function download_payslip(id,path){
	var file_path   = atob(path);  
	$("#"+id).attr("href",file_path);
}
function download_zip(path_name,emp_codes){
	console.log(path_name);
	console.log(emp_codes);
	var input_field_type   =  $("input[name='input_field_type[]']").map(function(){return $(this).val();}).get();
	if(path_name){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/download_zip"); ?>',
			data: {path_name:path_name,emp_codes:emp_codes},
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.success){
					window.open(rslt.filename, '_blank');
				}else{
					toastr.error("File not exists");
				}
			},
		});
	}
}
function view_hide_show(process_mode){
	if(parseInt(process_mode) === 2){
		$('#process_by,#pdf_block_employees').parent().show();
	}else{
		$('#process_by,#pdf_block_employees').parent().show();
	}
	$('#process_by,#pdf_block_employees,#column_name,#process_month').val('');
		// select();
}
</script>

<div class='row title_content' style='margin: 0px 0px 7px !important;'>
	<div class='col-md-12 col-xs-4'>
		<h1 class='page_txt'>PDF 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"=>"Generate","2"=>"View");
			echo form_dropdown(array('name' => 'process_mode','id' =>'process_mode','class' => 'form-control input-sm select2'), $process_by_list);
		?>
	</div>
	<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>
	<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>
	<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'));
			echo "<label><input name='column_name_select' id='column_name_select' type='checkbox'> Select All</label>";
		?>
	</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>
	<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 select2'), $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">
		<label>
			<input name='suppressed_data' id='suppressed_data' type='checkbox'> Suppressed Page</input>
		</label>
	</div>
	<div class="form-group" style="z-index: 999;" id="filter_div">
		<?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'>
			<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>
		<?php 
			// }
		?>
	</div>
	<div class="form-group">
		<button class='btn btn-primary btn-sm' id="generate_pdf"><span class='fa fa-file'>&nbsp;</span> Process </button>
	</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 class="countdown"></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">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>
<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%;
	}
	.search_filter {
	    width: 600px;	    
	    right: 30%;
	    top: 27%;
	}
	.select2-selection--multiple{
		overflow-y: scroll !important;
	    height: 100px;
	    border-radius: 13px;
	}
</style>
<?php $this->load->view("partial/footer"); ?>