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/hrms_patroniss_com/application/views/monthly_input/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));
	$prime_id       = "prime_".$controller_name."_id";
	$search_url     = site_url($controller_name ."/search");
	$import_url     = site_url($controller_name ."/import/");
	
	/* PAGE TITLE AND BUTTONS- START */
	$breadcrumb .= "<li>
						<a class='btn btn-xs btn-primary import' data-btn-submit= 'Submit' title='Import $page_name' href='$import_url' data_form='$controller_name' > <span class='fa fa-cloud-upload'>&nbsp</span> Import $page_name
						</a>
					</li>";
	$quick_link   = explode(",",$quick_link->quicklink);
	$link_li_line = "";
	foreach($quick_link as $link){
		if($link){
			$url  = site_url("$link");
			$name = ucwords(str_replace("_"," ",$link));
			$link_li_line .= "<li><a href='$url'> <i class='fa fa-angle-double-right fa-lg' aria-hidden='true'></i> $name</a></li>";
		}
	}
	if($link_li_line){
		$breadcrumb .= "<li class='dropdown'>
							<a class='btn btn-xs btn-primary dropdown-toggle' type='button' id='dropdownMenu2' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>
								<i class='fa fa-plus-circle' aria-hidden='true'></i> Quick Links
							</a>
							<ul class='dropdown-menu dropdown-menu-left' aria-labelledby='dropdownMenu2'>
								$link_li_line
							</ul>
						</li>";
	}
	$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>";					
	
	/* PAGE TITLE AND BUTTONS- END */
	/* PAGE FILTER - START */
	$filter_tr_line = "";
	$table_map_list = "";
	$input_ids      = "";
	$date_ids       = "";
	foreach($fliter_list as $fliter){
		$label_id         = "filter_".$fliter['label_id'];
		$lable            = $fliter['label_id'];
		$label_name       = $fliter['label_name'];
		$field_isdefault  = (int)$fliter['field_isdefault'];
		$array_list       = $fliter['array_list'];
		$field_type       = (int)$fliter['field_type'];
		if($field_type === 4){							
			$filter_box =  form_input(array("name"=>$label_id, "id"=>$label_id,"placeholder"=>$label_name, "class"=>"form-control input-sm datepicker"));
			$filter_tr_line .= "<tr>
									<td class='search_td'> $label_name</td>
									<td> $filter_box </td>
								</tr>";
		}else
		if(((int)$field_type === 5) || ((int)$field_type === 7)){
			$filter_box = form_dropdown(array("name" =>$label_id,"multiple id" => $label_id,"class" =>'form-control input-sm select2'),$array_list);
			$filter_tr_line .= "<tr>
									<td class='search_td'> $label_name</td>
									<td>$filter_box</td>
								</tr>";
		}else
		if((int)$field_type === 6){
			$form_checkbox = form_checkbox(array("name" => $label_id,"id" => $label_id, "value"=> 1, "checked" => ($input_value) ? 1 : 0));
			$filter_box .= "<label class='checkbox-inline'> $form_checkbox $form_label </label>";
			$filter_tr_line .= "<tr>
								<td class='search_td'> $label_name</td>
								<td colspan='2'>$filter_box</td>
							</tr>";
		}else
		if($field_type === 13){
			$filter_box =  form_input(array("name"=>$label_id, "id"=>$label_id,"placeholder"=>$label_name, "class"=>"form-control input-sm datepicker_time"));
			$filter_tr_line .= "<tr>
									<td class='search_td'> $label_name</td>
									<td> $filter_box </td>
								</tr>";
		}else{
			if($field_type !== 9){
				$filter_box = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>'',"placeholder"=>$label_name, "class"=>"form-control input-sm"));
				$filter_tr_line .= "<tr>
										<td class='search_td'> $label_name</td>
										<td> $filter_box </td>
									</tr>";
			}
			
		}
		$table_map_list .= "var $label_id  = $('#$label_id').val(); \n data.$lable = $label_id;\n";	
		if($field_type === 4){
			$date_ids .= "#".$label_id.",";
		}else{
			$input_ids .= "#".$label_id.",";
		}
	}
	$table_map_list .= "var category  = $('#category').val(); \n data.category = category;\n";
	$table_map_list .= "var search_month  = $('#search_month').val(); \n data.search_month = search_month;\n";
	$table_map_list .= "var process_mode  = $('#process_mode').val(); \n data.process_mode = process_mode;\n";
	$date_ids     = rtrim($date_ids,",");
	$input_ids    = rtrim($input_ids,",");
	$filter_table = "<table class='fliter_table'>$filter_tr_line</table>";
	/* PAGE FILTER - END */
	$column_count     = count(array_column($table_head, "label_name"))+1;	
?>
<style type="text/css">
.form-inline .form-group {
    display: inline-block;
    vertical-align: middle;
    margin-left: 30px;
    margin-bottom: 10px;
    width: 16.5%;
}
</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">
	<div class="col-md-9">
		<div class="form-group" style="width: 25% !important;">
			<?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'), $category_list);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('select_month'), 'select_month', array('class' => 'required'));
				$today = date('m-Y');
				echo form_input(array('name' => 'search_month', 'id' => 'search_month', 'class' => 'form-control input-sm datepicker',  'value'=>'')); 
			?>
		</div>
		<div class="form-group">
			<?php
				$process_mode = array(""=>"---- Select Type ----","1"=>"Process","2"=>"Delete");
				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'),$process_mode);
			?>
		</div>
		<div class="form-group">
			<button class='btn btn-primary btn-sm' id="search">Submit</button>
		</div>
	</div>
</fieldset>
</div>
<div class="row" style='margin:0px;overflow:auto;width: 100%;'>	
	<div class='col-md-12' style='padding:8px;min-height: 400px;' >
		<table id="table" class='table table-striped table-hover' style='width:100% !important;'></table>
	</div>
</div>
<script type="text/javascript">
$(document).ready(function (){	
	$('.modal-dialog').draggable({ handle: ".modal-header" });	
	var a        = <?php echo json_encode($master_pick); ?>;
	var prime_id = "<?php echo $prime_id; ?>";
	$table = $('#table').DataTable( {
		processing: true,
		serverSide: true,
		serverMethod: 'post',
		lengthMenu: [[10,25,50,100,500,1000,-1],[10,25,50,100,500,1000,"All"]],
        fixedColumns:{leftColumns: 3},
		scrollX:true,
		//fixedHeader: true,
		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>',
		},		
		ajax:{
			'url': '<?php echo $search_url; ?>',
			'data': function(data){
				
				<?php echo $table_map_list; ?>
				//var rslt = JSON.parse(data);
				
				/*if(rslt.success){
					alert(rslt.message);
				}else{
					alert(rslt.message);
				}	*/	
			},
			 beforeSend: function(){
			  $('.dataTables_processing').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
			},
		},   
		columns: [{
				title:'<input type="checkbox" name="select_all" class="select_all">',
				data: '<?php echo $prime_id; ?>',
				type: 'html',
				orderable: false,
				className: 'select-checkbox',
				searchable:false,
				width:'1%',
				render:function (value) {
					return '<input type="checkbox" value="'+value+'" name="select_one" class="select_one">';
				}
			},			
			<?php 
								
				foreach($table_head as $table){
					$label_name  = $table->label_name;
					$view_name   = $table->view_name;
					$field_type  = (int)$table->field_type;
					$lock_status = $lock_result[$label_name];
					if($field_type === 4){
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
								render:function(value) {		
									if(value){
										if (value === null) return '';
										return moment(value).format('DD/MM/YYYY');
									}else{
										return '';
									}
								}
							},\n";
					}else
					if(($field_type === 5)||($field_type === 9)){
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
								render:function(value) {
									if(value in a['$label_name']){
										if(value === '0' || value === ''){
											return '';
										}else{
											return a['$label_name'][value];
										}
									} else {
										return value;
									}
								}
							},\n";
					}else
					if($field_type === 6){
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
								render:function(value) {
									send_val = 'No';
									if(value === '1'){ send_val = 'No'; }
									return send_val;
								}
							},\n";
					}else
					if($field_type === 7){
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
								render:function(value) {
									if(value !== ''){
										var rslt = '';
										var multi_val = value.split(',');
										var count = 0
										$.each(multi_val,function(i){
											count++;
											var multi_key = multi_val[i];
											if(multi_key in a['$label_name']){
												if(count === 1){
												   rslt += a['$label_name'][multi_key];
											   }else{
												   rslt += ' , '+a['$label_name'][multi_key];
											   }
											}
										});
										return rslt;
									}else {
										return '-';
									}
								}
							},\n";
					}else
					if($field_type === 10){
						$img = '<img src="@URL@" alt="img" height="30" width="30">';
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,sClass: 'center',
								render:function(value) {
									if(value !== ''){
										var image = '$img';	
										image     = image.replace('@URL@', value);										
										return image;
									}else{
										return '';
									}
									
								}
							},\n";
					}else{	
						if($label_name === "employee_code" || $label_name === "emp_name" || $label_name === "process_month"){
							echo "{title:'$view_name',data:'$label_name',visible:true,},\n";
						}else
						if($label_name === "supplementary_status"){
							$function = 'onchange=update_table($(this).closest("tr"),this.name,this.value,this.checked)';
							$input = '<input type="checkbox" '.$function.' name="'.$label_name.'" id="'.$label_name.'" class="form-control" value="@val@">';
							echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,sClass: 'center',
								render:function(value){	
									if($.isNumeric(value)){
										if(value !== ''){
											var input = '$input';
											input     = input.replace('@val@', value);	
											return input;
										}									
									}else{
										return value;	
									}													
								}
							},\n";
						}else{
							$function = 'onchange=update_table($(this).closest("tr"),this.name,this.value)';
							$readonly = '';
							if($lock_status === '2'){
								$readonly = 'readonly';
							}
							$input = '<input type="text" '.$function.' name="'.$label_name.'" id="'.$label_name.'" class="form-control" value="@val@" '.$readonly.'>';
							echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,sClass: 'center',
								render:function(value){	
									if($.isNumeric(value)){
										if(value !== ''){
											var input = '$input';
											input     = input.replace('@val@', value);	
											return input;
										}									
									}else{
										return value;	
									}													
								}
							},\n";
						}						
					}
				}
			?>	
					
		],
	});
	
	$("<?php echo $input_ids;?>").bind('keyup change', function(e) {
		$table.draw();
	});
	$("<?php echo $date_ids;?>").on("dp.hide",function (e) {
		$table.draw();
	});
	
	$("#search").on('click', function(e){
		var category     = $('#category').val();
		var search_month = $('#search_month').val();
		var process_mode = $('#process_mode').val();
		if(category.length === 0){
			toastr.error('Please choose category?');
			return false;
		}
		if(search_month.length === 0){
			toastr.error('Please choose month?');
			return false;
		}
		if(process_mode.length === 0){
			toastr.error('Please choose mode?');
			return false;
		}
		$.ajax({
			type: "POST",
			url: '<?php echo site_url("$controller_name/check_monthly_input"); ?>',
			data:{category:category,search_month:search_month,process_mode:process_mode},
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.success){
					toastr.success(rslt.message);
					$table.draw();
				}else{
					toastr.error(rslt.message);							
				}
			}		
		});						
	});	
	$('input[type=search]').addClass('form-control input-sm');	

	$("a.import").click(function(event){
		event.preventDefault();
		var action      = $(this).attr('data-btn-submit');
		var title       = $(this).attr('title');
		var control     = $(this).attr('href');
		var form_id     = "save_import";
		$('.modal').modal({backdrop: 'static', keyboard: false});
		$('.modal-body').html('<div style="text-align: center;padding:50px;color:#4b6fa2;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Please wait processing....</div>');
		$.ajax({
			type: 'POST',
			url: control,
			dataType: "html",
			success: function (response){					
				$('.modal-title').html('<h4 class="modal-title">'+title+'</h4>');
				$('.modal-body').html(response);
				var btn_info = '<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>';
				if(action === "Submit"){
					btn_info += '<button class="btn btn-primary" id="submit" style="margin-left: 15px;">Submit</button>';
				}
				btn_info = '<div class="col-md-12" style="background-color:#FFFFFF;padding: 10px 20px; text-align: right; border-top: 1px solid #e5e5e5;">'+btn_info+'</div>';
				$('#'+form_id).append(btn_info);
			}
		});
	});	
	/* DELETE PROCESS - START*/
	var delete_btn = "<button class='btn btn-xs btn-danger fliter disabled' id='delete_btn' style='margin-top:7px'><i class='fa fa-trash' aria-hidden='true'></i> Delete</button>";
	$("#table_length").prepend(delete_btn);
	$("#table_length").css("display", "-webkit-inline-box");
	$('.select-checkbox').on('click', "input[name='select_all']", function(){    
		if(this.checked) {
			$('.select_one').prop('checked', true);
			$("#delete_btn").removeClass("disabled");
		}else{
			$('.select_one').prop('checked', false);
			$("#delete_btn").addClass("disabled");
		}
	});
	$table.on('change','.select_one',function(event){
		var delete_ids = [];
		$.each($("input[name='select_one']:checked"), function(){
			if($(this).val()){
				delete_ids.push($(this).val());
			}			
		});		
		if(delete_ids.length > 0) {
			$("#delete_btn").removeClass("disabled");
		}else{
			$("#delete_btn").addClass("disabled");
		}	
	});
	
	$("#delete_btn").click(function(event){
		if(confirm("Are you sure. you want delete select records??")){
			var delete_ids = [];
			$.each($("input[name='select_one']:checked"), function(){
				delete_ids.push($(this).val());
			});
			//do ajax process
			if(delete_ids){
				$.ajax({
					type: "POST",
					url: '<?php echo site_url("$controller_name/delete_month_input"); ?>',
					data:{delete_ids:delete_ids},
					success: function(data) {
						var rslt = JSON.parse(data);
						if(rslt.success){
							toastr.success(rslt.message);							
							$('.select_all').prop('checked', false);
							$('.select_one').prop('checked', false);
							$("#delete_btn").addClass("disabled");
							$table.draw();
						}else{
							toastr.error(rslt.message);							
						}
					}
				
				});
			}
						
		}else{
			$('.select_all').prop('checked', false);
			$('.select_one').prop('checked', false);
			$("#delete_btn").addClass("disabled");
		}
	});	
	$("#search_filter_div").hide();
	$("#search_filter").click(function(){
		$("#search_filter_div").toggle();
	});
	$("#search_close").click(function(){
		$("#search_filter_div").toggle();
	});
	$("#clear_search").click(function(){
		$('input').val('');
		$('option').attr('selected', false);
		$("#search_filter_div").toggle();
		$table.draw();
		$('.select2').select2({placeholder: '---- Select ----',});
	});
	$(function (){$(".datepicker").datetimepicker({format: 'MM-YYYY',});});
	$(".datepicker_time").datetimepicker({format: 'DD-MM-YYYY HH:mm:ss',});
	$('.select2').select2({placeholder: '---- Select ----',});

	$(document).on('keyup', '.number', function(e) {
		this.value = this.value.replace(/[^0-9_.]/g,'');
	});
});
function update_table(closest_row,label_name,value,checked){	
	var data              = $table.row(closest_row).data();
	var row_id            = data['<?php echo $prime_id; ?>'];
	var hid_doj           = data['date_of_joining'];
	var hid_process_month = $('#search_month').val();
	var category          = $('#category').val();
	if(label_name === "supplementary_status"){
		if(checked == true){
		    value = 1;
		}else{
			value = 0;
		}
	}		
	if(hid_process_month){
		$.ajax({
			type: 'POST',
			url: '<?php echo site_url("$this->control_name/update_table");?>',
			data:{prime_id:row_id,hid_doj:hid_doj,hid_process_month:hid_process_month,category:category,label_name:label_name,value:value},
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.success){
					toastr.success(rslt.message);
				}else{
					if(rslt.status === "DOJ"){
						$(this).prop( "checked", false);
						toastr.error(rslt.message);
					}else{
						toastr.error(rslt.message);
					}						
				}
			}
		});
	}
}
function delete_column(label_name){
	if(label_name){
		$("#delete_btn_"+label_name).html("<i class='fa fa-spinner fa-spin'></i> Processing...");
		$('#delete_btn_'+label_name).attr('disabled','disabled');
		var category      = $('#category').val();
		var search_month  = $('#search_month').val();
		var process_mode  = $('#process_mode').val();
		str = label_name.toLowerCase().replace(/\b[a-z]/g, function(letter) {
				return letter.toUpperCase();
			});
		str = str.replace(/_/g, '');
		var content       = "Are you sure to delete whole column of "+str+" on process month of "+search_month;
		$.confirm({
				title: 'Confirm!',
				content: content,
				type: 'red',
				typeAnimated: true,
				buttons: {
					tryAgain: {
						text: 'Ok',
						btnClass: 'btn-red',
						action: function(){
							$.ajax({
								type: 'POST',
								url: '<?php echo site_url("$this->control_name/delete_column");?>',
								data:{category:category,search_month:search_month,label_name:label_name},
								success: function(data){
									var rslt = JSON.parse(data);
									if(rslt.success){
										toastr.success(rslt.message);
										$('#table_holder').html(rslt.table_content);
										$('#detail_list').DataTable({
											dom: 'Bfrtip',
											fixedColumns:{leftColumns: 2},
											scrollX:true,
											buttons: [{
												extend: 'excelHtml5',
												className: 'btn-info',
												title: 'Payroll Report_'+ moment(new Date()).format('DD-MM-YYYY'),
											}],
											language:{
												searchPlaceholder: "Search",
												search: "",
											},
											"aaSorting": [],
										});
										$('#delete_month').show();
									}else{
										toastr.error(rslt.message);					
									}
									$('#delete_btn_'+label_name).attr('disabled',false);
									$('#delete_btn_'+label_name).html("Delete");
								}
							});
							$table.draw();
						}
				},
				close: function () {
					$('#delete_btn_'+label_name).attr('disabled',false);
					$('#delete_btn_'+label_name).html("Delete");
				}
			}
		});		 	
	}
}
</script>

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