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/process_payroll_fms/manage_18mar23.php
<?php 
	$this->load->view("partial/header"); 
	$page_name      = ucwords(str_replace("_"," ",$controller_name));
	$prime_id       = "prime_".$controller_name."_id";
	$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>";	
?>
<style type="text/css">
.form-inline .form-group {
    display: inline-block;
    vertical-align: middle;
    margin-left: 30px;
    margin-bottom: 10px;
    width: 16.5%;
}
div#table_filter{
   display: inline-table !important;
}
div.dt-buttons {
    position: relative;
    float: right;
}
.display th, .display td {
	white-space: nowrap !important;
	max-width: 500px !important;
}
table.dataTable tr th:nth-child(1),table.dataTable tr td:nth-child(1){
	position: sticky !important;
	left: 0px;
	width: 0px;
	min-width: 0px;
}
table.dataTable tr th:nth-child(2),table.dataTable tr td:nth-child(2){
	position: sticky !important;
	left: 111px;
	width: 80px;
	min-width: 80px;
}
table.dataTable tr td:nth-child(1),table.dataTable tr td:nth-child(2) {
	background-color: #f2f2f2;
}	
</style>
<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>
<div id="toolbar" class="form-inline">
<?php 
$error_info    =  "";
if($payroll_filter_setting[0]) {
?>
	<div class="col-md-12">
		<?php  echo  form_open("$controller_name/process_payroll_fms/",array("id"=>"process_payroll_fms","class"=>"form-inline")); ?>
		<div class="form-group">
			<?php
				echo form_label('Select Month', 'process_month', array('class' => 'required'));
				echo form_input(array('name' => 'process_month', 'id' => 'process_month', 'class' => 'form-control input-sm datepicker','placeholder' => 'Process Month',  'value'=>'')); 
				$validation_rule .=  "process_month:{required: true },";
			?>
		</div>
		<?php 
		foreach($payroll_filter_setting as $setting){
			$prime_module_id    = "employees";
			$prime_form_id      = (int)$setting->prime_form_id;
			$label_id           = $setting->label_name;
			$label_name         = ucwords($setting->view_name);
			$field_type         = (int)$setting->field_type;
			$pick_list_type     = (int)$setting->pick_list_type;
			$pick_list          = $setting->pick_list;
			$pick_table         = $setting->pick_table;
			$pick_display       = $setting->pick_display_value;
            $pick_list_import   = (int)$setting->pick_list_import;
			$mandatory_col      = (int)$setting->mandatory_column;
			$auto_prime_id      = $setting->auto_prime_id;
			$auto_dispaly_value = $setting->auto_dispaly_value;
			$depen_pick_list    = (int)$setting->dependent_pick_list;
			$depen_pick_input   = $setting->dependent_pick_input;
			$table_column1      = $setting->table_column1;
			$table_column2      = $setting->table_column2;
			$required           = "";
			// $readonly           = "";

			//VALIDATION checking to added for mandatory fields only
			if($label_id && $mandatory_col === 1){
				$validation_rule .=  "$label_id:{required: true },";
				$required        = " required";
			}
			$form_label_ids .= "#$label_id,";
			//FOR FORM LABEL
			$form_label      = form_label($label_name, $label_id, array('class' => "control-label$required"));	
			//PICKLIST
			if((int)$field_type === 5){
				//PICKLIST FORM INPUT
				$drop_down_array = array("name" => $label_id,"id" => $label_id,"class" =>'form-control input-sm select2', $readonly => true);

				$form_dropdown   = form_dropdown($drop_down_array,$payroll_filter_pick_column[$label_id]);
				echo $input_box  = "<div class='form-group'>$form_label $form_dropdown</div>";
			}else
			//AUTOCOMPLETE
			if((int)$field_type === 9){
				//AUTO COMPLETE FORM INPUT
				$hidden_id    = $label_id."_hidden_".$prime_form_id;
				$form_input   = form_input(array("name"=>$hidden_id, "id"=>$hidden_id,"value"=>'',"placeholder"=>"Search ".$label_name, "class"=>"form-control input-sm"));
				$hidden_input = form_input( array("name"=>$label_id, "id"=>$label_id,"value"=>"","type"=>"hidden"));
				echo $input_box   = "<div class='form-group'>$form_label $name_append $hidden_input $form_input <div class='append_div'></div></div>";
			}

			//depend picklist
			if((int)$field_type === 5){
				$get_depend 		   = json_encode($get_depend_prime_id);
				if($depen_pick_list === 1){
					$new_span              =  $label_id.'_span';
					$dep_url               = site_url("$employees/dependent_data_set");
					
					//DR CODE FOR EDIT BUTTON CLICK AFTER DEPENDENT DROPDOWN FETCH(UPDATE)
					$document_load_script .= "var depen_select_val  = $('#$depen_pick_input').val();
					if(depen_select_val){
						$.ajax({
							url: '$dep_url',
							type: 'post',
							data: {prime_module_id:'$prime_module_id',depen_select:depen_select_val,depen_pick_input:'$depen_pick_input',table_column1:'$table_column1',table_column2:'$table_column2',label_id:'$label_id',pick_table:'$pick_table',pick_list:'$pick_list',pick_display_val:'$pick_display_val'},
							beforeSend: function () {
								$('#$label_id').next('span').attr('id', '$new_span');
								$('#$new_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');  
							},
							success: function(result_data){
								$('#$new_span').empty();
								$('.select2').select2({
									placeholder: '---- Select ----',
									allowClear: true,
									//dropdownParent: $('.modal-dialog')
								});
								var select_data = $('#$label_id').val();
								$('#$label_id').html(result_data);
								$('#$label_id').val(select_data);
							}
						});
					}\n";
					//DR CODE FOR DEPENDENT ON CHANGE CONDITION
					$document_load_script .= "$('#$depen_pick_input').change(function(e) {
						var depen_select_val  = $('#$depen_pick_input').val();
						$.ajax({
							url: '$dep_url',
							type: 'post',
							data: {prime_module_id:'$prime_module_id',depen_select:depen_select_val,depen_pick_input:'$depen_pick_input',table_column1:'$table_column1',table_column2:'$table_column2',label_id:'$label_id',pick_table:'$pick_table',pick_list:'$pick_list',pick_display_val:'$pick_display_val'},
							beforeSend: function () {
								$('#$label_id').next('span').attr('id', '$new_span');
								$('#$new_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');  
							},
							success: function(result_data){
								$('#$new_span').empty();
								$('.select2').select2({
									placeholder: '---- Select ----',
									allowClear: true,
									//dropdownParent: $('.modal-dialog')
								});

								var get_depend 	 	= JSON.parse('$get_depend');
								$.each(get_depend, function(key, value) {
									var label_id 	= '$label_id';
									var depand_val 	= value['dependent_pick_input'];
									var depand_prime= value['prime_form_id'];
									if((depand_val) && ('$depen_pick_input' !== key)){
										var depand_prime_id = key+'_hidden_'+depand_prime;
										$('#'+key).html('');
										$('#'+key).val('');
										$('#'+depand_prime_id).val('');
									}
								});
								$('#$label_id').val('');
								$('#$label_id').html(result_data);
							}
						});
					});\n";
				}else
				if($depen_pick_list === 2){
					$depen_pick_inputs = '#'.$label_id;
					$document_load_script .= "$(document).on('change', '$depen_pick_inputs',function(){
						var get_depend 	 	= JSON.parse('$get_depend');
						$.each(get_depend, function(key, value) {
							var label_id 	= '$label_id';
							var depand_val 	= value['dependent_pick_input'];
							var depand_prime= value['prime_form_id'];
							if((depand_val) && ('$depen_pick_input' !== key)){
								var depand_prime_id = key+'_hidden_'+depand_prime;
								var depen_key_val	= '';
								if('$label_id' === depand_val){
									$('#'+key).val('');
									$('#'+depand_prime_id).val('');
									var depen_key_val	= key;
								}

								$.each(get_depend, function(keys, values) {
									var depand_vals = values['dependent_pick_input'];
									if((depen_key_val === depand_vals) && depen_key_val !== ''){
										var depand_labels = get_depend[keys]['prime_form_id'];
										var depand_keys   = keys+'_hidden_'+depand_labels;
										$('#'+depand_keys).val('');
										$('#'+keys).val('');
									}
								});
								select_option();
							}
						});

					});\n";
				}
			}else//ON-LOAD SCRIPT FOR SINGLE AUTOCOMPLET BOX
			if((int)$field_type === 9){
				$hidden_id = $label_id."_hidden_".$prime_form_id;
				$auto_id  = "#$label_id";
				$auto_url = site_url("$controller_name/suggest?prime_form_id=$prime_form_id");
				$get_depend 	= json_encode($get_depend_prime_id);
				$hidden_id 		= $label_id."_hidden_".$prime_form_id;
				$depend_hidden_id = $depen_pick_input."_hidden_";
				$auto_id  		= "#$label_id";
				$auto_url 		= site_url("employees/suggest");
				$fetch_picklist = site_url("employees/fetch_picklist");

				if($label_id !== "wbs_element"){
					$document_load_script .= "$('#$hidden_id').autocomplete({
						minChars:2,
						autoFocus: true,
						delay:10,
						appendTo: '.append_div',
						source: function (request, response) {
							var get_depend 	 	= JSON.parse('$get_depend');
							$.each(get_depend, function(key, value) {
								var label_id 	= '$label_id';
								var depand_val 	= value['dependent_pick_input'];
								if(depand_val){
									if(label_id === depand_val){
										var depand_label = get_depend[key]['prime_form_id'];
										var depand_key 	 = key+'_hidden_'+depand_label;
										$('#'+depand_key).val('');
										$('#'+key).val('');
										select_option();
										$.each(get_depend, function(keys, values) {
											var depand_vals = values['dependent_pick_input'];
											if(depand_vals){
												if(key === depand_vals){
													var depand_labels = get_depend[keys]['prime_form_id'];
													var depand_keys   = keys+'_hidden_'+depand_labels;
													$('#'+depand_keys).val('');
													$('#'+keys).val('');
												}
											}
										});
									}
								}
							});
	
							var depen_pick_input = '$depen_pick_input';
							if(depen_pick_input){
								var depend_hidden_id = get_depend['$depen_pick_input']['prime_form_id'];
								if(depend_hidden_id){
									// var depend_id = '$depend_hidden_id'+depend_hidden_id;
									var depend_id = '$depen_pick_input';
								}
							}
							$.ajax({
								url : '$auto_url',
								type: 'get',
								data: {term:request.term,prime_module_id:'$prime_module_id',depen_select:$('#'+depend_id).val(),depen_pick_input:'$depen_pick_input',table_column1:'$table_column1',table_column2:'$table_column2',label_id:'$label_id',pick_table:'$pick_table',pick_list:'$pick_list',pick_display_val:'$pick_display_val',prime_form_id:'$prime_form_id',depen_pick_list:'$depen_pick_list',depend_hidden_id:depend_hidden_id},
								success: function (data) {
									var rslt = JSON.parse(data);
									response($.map(rslt, function (el) {
										if(el.value === '0'){
											$('#$hidden_id').val('');
										}else{
											return {
												value: el.value,
												label: el.label,
												display_name:el.display_name
											};
										}
									}));
								}
							});
						},
						select: function(e, ui) {
							e.preventDefault();
							$('$auto_id').val(ui.item.value);
							$('#$hidden_id').val(ui.item.display_name);
	
							var get_depend 	 	= JSON.parse('$get_depend');
							var depand_lab_val = [];
							$.each(get_depend, function(key, value) {
								var depand_val 	= value['dependent_pick_input'];
								if('$label_id' === depand_val){
									var depand_lab= get_depend[key]['prime_form_id'];
									depand_lab_val.push(depand_lab);
								}
							});
							if(parseInt(depand_lab_val.length) >0){
								var label_value = $('#$label_id').val();
								$.ajax({
									url : '$fetch_picklist',
									type: 'post',
									data: {depand_lab_val:depand_lab_val,label_id:'$label_id',label_value:label_value,prime_form_id:'$prime_form_id'},
									success: function (data) {
										var rslt = JSON.parse(data);
										var dropdown_list = rslt['dropdown_list'];
										$.each(dropdown_list, function(key, value) {
											$('#'+key).empty();
											var option = '<option value>--- Select'+key+'---</option>';
											$.each(value, function(keys, values) {
												option += '<option value='+keys+'>' + values + '</option>';
											});
											$('#'+key).append(option);
										});
										//this input only for uds by dhinesh 25jul22
										if(rslt.project_id || rslt.network_id){
											if(rslt.project_id){
												$('#project_id').val(rslt.project_id);
											}
											if(rslt.network_id){
												$('#network_id').val(rslt.network_id);	
											}
											select_option();
										}
									}
								});
							}
						},
						change: function(event, ui) {
							if (ui.item === null || ui.item === '' || ui.item === 'null') {
								$('$auto_id').val('');
								$('#$hidden_id').val('');
							}
						}
					});\n";
				}
				
			}
		}
		if($validation_rule){
			$validation_rule .=  "search_month:{required: true },";
			// $validation_rule = rtrim($validation_rule,',');
		}
		?>
		<div class="form-group">
			<?php
				echo form_label("Employee Code", 'process_emp_code', array('class' => ''));
				echo form_input( array("name"=>"process_emp_code", "id"=>"process_emp_code","value"=>"","type"=>"hidden"));
				echo form_input(array("name"=>"process_emp_code_auto", "id"=>"process_emp_code_auto","value"=>'',"placeholder"=>"Search Employee Code", "class"=>"form-control input-sm ui-autocomplete-input"));
				echo "<div class='emp_append_div'></div>";
			?>
		</div>
		<div class="form-group">
			<?php //,"1"=>"Process Payroll"
			if((int)$this->logged_role === 1){
				$process_mode 	= array(""=>"---- Select Type ----","3"=>"View Payroll","2"=>"Delete Payroll");
				// "1"=>"Process Payroll",
			}else{
				$process_mode 	= array(""=>"---- Select Type ----","3"=>"View Payroll","2"=>"Delete Payroll");
			}				
				echo form_label("Process Mode", 'process_mode', array('class' => 'required'));
				echo form_dropdown(array("name" =>'process_mode',"id" =>'process_mode',"class" =>'form-control input-sm select2'),$process_mode);
				$validation_rule .=  "process_mode:{required: true }";
			?>
		</div>
		<div class="form-group">
			<button class='btn btn-primary btn-sm' id="process_payroll_btn">Submit</button>
		</div>
	<?php 
		echo form_close(); 
	}else{
		$error_info    = "toastr.error('To First Map a Filter Column in Payroll FMS Settings Module');";
	}
	$form_label_ids    = rtrim($form_label_ids,",");
	?>
	</div>
</fieldset>
</div>

<div style='padding:10px;overflow: auto !important; margin:15px; margin-bottom:0px;' id='rslt_info'>
</div>
<script type="text/javascript">
$(document).ready(function (){	
	//error through for payroll fms filter not mapping 
	<?php echo $error_info; ?>
	<?php	
		echo "$document_load_script";
	?>
	toastr.options.fadeOut = 3000;
	
	select_option();
	
	$(function (){$(".datepicker").datetimepicker({format: 'MM-YYYY',});});

	var form_label_ids  = <?php echo '"'.$form_label_ids.'"';?>;
	
	$("#process_month").on('dp.hide',function(){
		var process_month 	= $("#process_month").val();
		var fetch_input     = "personal_code";
		if(process_month){
			pro_mon_payroll_data(process_month,fetch_input);
		}else{
			toastr.error("Porcess Month should not Empty.!");
			return false;
		}
	});
	
	//DR CODE FOR PROJECT ID FETCH BASED ON SEARCH MONTH AND PERSONAL CODE
	$('#personal_code').on("change",function(e){
		let personal_code    = $('#personal_code').val();
		let process_month    = $('#process_month').val();
		project_id_fetch(process_month,personal_code);
	});

	$('#project_id').on("change",function(e){
		$('#wbs_element,#wbs_element_hidden_1944,#process_emp_code,#process_emp_code_auto').val('');
	});

	//WBS autocomplete box
	$('#wbs_element_hidden_1944').autocomplete({
		minChars:3,
		autoFocus: true,
		delay:5,
		appendTo: '.append_div',
		source: function (request,response) {
			var process_month    = $('#process_month').val();
			var personal_code    = $('#personal_code').val();
			var project_id       = $('#project_id').val();
			if(request.term.length >= 2){
				$.ajax({
					url: '<?php echo site_url("$controller_name/get_wbs"); ?>',
					type: 'get',
					data: {term:request.term,process_month:process_month,personal_code:personal_code,project_id:project_id},
					success: function (data) {
						var rslt = JSON.parse(data);
						response($.map(rslt, function (el) {
							if(el.value === '0'){
								$('#wbs_element_hidden_1944,#process_emp_code_auto').val('');
							}else{
								return {
									value: el.value,
									label: el.label,
									display_name:el.display_name,
								};
							}
						}));
						if($('#wbs_element_hidden_1944').val() === ''){
							$('#process_emp_code_auto').val('');
						}
					}
				});
			}
		},
		select: function(e, ui) {
			e.preventDefault();
			$('#wbs_element').val(ui.item.value);
			$('#wbs_element_hidden_1944').val(ui.item.display_name);
		},
		change: function(event, ui) {
			if (ui.item === null || ui.item === '' || ui.item === 'null') {
				$('#wbs_element,#wbs_element_hidden_1944,#process_emp_code,#process_emp_code_auto').val('');
			}
		}
	});

	//EMPLOYEE CODE autocomplete box
	$('#process_emp_code_auto').autocomplete({
		minChars:3,
		autoFocus: true,
		delay:5,
		appendTo: '.emp_append_div',
		source: function (request, response) {
			var process_month    = $('#process_month').val();
			var personal_code    = $('#personal_code').val();
			var project_id       = $('#project_id').val();
			var wbs_element      = $('#wbs_element').val();
			if(request.term.length >= 2){
				$.ajax({
					url: '<?php echo site_url("$controller_name/get_emp_code"); ?>',
					type: 'get',
					data: {term:request.term,process_month:process_month,project_id:project_id,wbs_element:wbs_element,personal_code:personal_code},
					success: function (data) {
						var rslt = JSON.parse(data);
						// if(rslt.success){
							response($.map(rslt, function (el) {
								if(el.value === '0'){
									$('#process_emp_code_auto').val('');
								}else{
									return {
										value: el.value,
										label: el.label,
										display_name:el.display_name,
									};
								}
							}));
						// }
						// else{
						// 	$('#process_emp_code_auto').val('');
						// }
					}
				});
			}
		},
		select: function(e, ui) {
			e.preventDefault();
			$('#process_emp_code').val(ui.item.value);
			$('#process_emp_code_auto').val(ui.item.display_name);
		},
		change: function(event, ui) {
			if (ui.item === null || ui.item === '' || ui.item === 'null') {
				$('#process_emp_code,#process_emp_code_auto').val('');
			}
		}
	});


	$('#process_payroll_fms').validate($.extend({
		ignore: ".ignore",
		rules:{
			<?php echo $validation_rule; ?>
		},
			submitHandler: function (form){
				$("#process_payroll_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
				$('.myProgress').show();
				$('#process_payroll_btn').attr('disabled','disabled');
				$(form).ajaxSubmit({
					cache: false,
					success: function (response){
						$('.myProgress').hide();
						$("#loader").css("display", "none");
						$('#process_payroll_btn').attr('disabled',false);
						$("#process_payroll_btn").html("Submit");
						if(response.table_content){
							$("#rslt_info").css("display", "block");
							$("#rslt_info").html(response.table_content);
							$('#detail_list').DataTable({
								destroy: true,
								ordering: false,
								processing: true,
								lengthMenu: [[10,25,50,100,500,-1],[10,25,50,100,500,"All"]],
								language:{
									searchPlaceholder: "Search",
									search: "",
								},
								dom: 'Blfrtip',
								scrollX:true,
								scrollY:'300px',
								buttons: [{
								// float:none; 	
								text:'left',
								title: 'Payroll Report_'+ moment(new Date()).format('DD-MM-YYYY'),	
								extend: 'collection',
								text: 'Export',
								buttons: [
									{extend:'excel',exportOptions:{modifier:{order :'index',page: 'All',search:'none'},columns: ':not(:first-child)'}},
									]
								}],
							});
						}else{
							$("#rslt_info").css("display", "none");
						}
						$('input[type=search]').addClass('form-control input-sm');
						if(response.success){
							toastr.success(response.message);
						}else{
							toastr.error(response.message);
						}					
					},
					dataType: 'json'
				});
			}
		}));
});
function select_option(){
	$(function(){
		$('.select2').select2({
			placeholder: '---- Select ----',
			allowClear: true,
			// dropdownParent: $('.modal-dialog')
		});
		$('.select2-tags').select2({
			tags: true,
			tokenSeparators: [',']
		});
	});	
}

//PROCESS MONTH BASED PERSONAL AREA OR EMPLOYEE CODE GET
function pro_mon_payroll_data(process_month,fetch_input){
	$("#"+fetch_input).html('');
	//PROCESS BY ALL NOT EMPLOYEE WISE
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name ."/pro_mon_payroll_data"); ?>',
			data: {process_month:process_month},
			beforeSend: function () {
				$('#'+fetch_input).next('span').attr('id', fetch_input+'_span');
				$('#'+fetch_input+'_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');  
			},
			success: function(data) {
				let rslt   = JSON.parse(data);
				let option = '<option value>--- Select ---</option>';

				$.each(rslt, function(key, value) {
	
					if(fetch_input === 'personal_code'){
						if(value.personal_code){
							option += '<option value = '+value.personal_code+'>'+value.personal_code+' - '+value.personal_name+'</option>';
						}
					}
				});
				$('#'+fetch_input+'_span').empty();
				$('#'+fetch_input).html(option);

				$('.select2').select2({
					placeholder: '---- Select ----',
					allowClear: true,
					//dropdownParent: $('.modal-dialog')
				});
			},
		});
}

//PROJECT ID FETCH DEPENDES ON PERSONAL CODE
function project_id_fetch(process_month,personal_code){
	$('#project_id').html('');
	$('#project_id,#wbs_element,#wbs_element_hidden_1944,#process_emp_code_auto').val('');
	if(process_month && personal_code){
		$.ajax({
			type: 'POST',
			url: '<?php echo site_url("$this->control_name/project_id_fetch");?>',
			data:{personal_code:personal_code,process_month:process_month},
			beforeSend: function () {
				$('#project_id').next('span').attr('id', 'project_id_span');
				$('#project_id_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');  
			},
			success: function(data){
				let rslt   = JSON.parse(data);
				let option = '<option value>--- Select Project---</option>';
				$.each(rslt, function(key, value) {
					option += '<option value='+value.pro_id+'>'+value.pro_id+' - '+value.pro_desc+'</option>';
				});
				$('#project_id_span').empty();
				$('#project_id').html(option);
				$('.select2').select2({
					placeholder: '---- Select ----',
					allowClear: true,
					//dropdownParent: $('.modal-dialog')
				});
			}
		});
	}
}
</script>

<?php $this->load->view("partial/footer"); ?>