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/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'>&nbsp;</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">&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(); ?>
<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'>&nbsp;</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"); ?>