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.1/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";
	$view_url       = site_url($controller_name."/search");
	$input_url      = site_url($controller_name."/input_processed");
	$payroll_url    = site_url($controller_name."/payroll_processed");
	$import_url     = site_url($controller_name."/import/");
	$end_date 		= date('Y-m-d');
	
	/* 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">
#imp_table_info{
	height:400px !important;
}
.form-inline .form-group {
	display: inline-block;
	vertical-align: middle;
	margin-left: 30px;
	margin-bottom: 5px;
	width: 16.5%;
}
div#table_filter{
   display: inline-table !important;
}
.add_entry{
	background-color:#d5f4e6 !important;
}
#table_length{
   margin-right: 10px;
}
.dataTables_wrapper{
	display: inline-table !important;
}
.dataTables_filter{
	position: sticky !important;
	z-index: 1000 !important;
	right: 20px !important;
}
.dataTables_length{
	position: sticky !important;
 	z-index: 1000 !important;
 	left: 20px !important;
}
#square_box,#check_square_box {
	display: -webkit-inline-box;
	position: absolute;
	width: 40%;
	margin: 10px 0px 0px 15px;
}
#entry_square {
	width: 15px;
	height: 15px;
	margin-left: 25px;
	background-color:#FFFF !important;
	border: 1px solid black !important;
}
#check_square {
	width: 15px;
	height: 15px;
	margin-left: 25px;
	background-color:#d5f4e6 !important;
	border: 1px solid black !important;
}
#check_pen_square{
	width: 15px;
	height: 15px;
	margin-left: 25px;
	background-color:#FFFF !important;
	border: 1px solid black !important;
}
#square_box span {
	margin-left: 2px !important;
}
#check_square_box span {
	margin-left: 5px !important;
}
table.dataTable tbody tr td:nth-child(1){
	position:sticky;
	left:0;
	z-index:1;
	top:0;
	background-color: #FFFFFF;
	font-weight: bold;
}
table.dataTable tbody tr td:nth-child(2){
	position:sticky;
	left:35px;
	z-index:1;
	top:0;
	background-color: #FFFFFF;
	font-weight: bold;
}
table.dataTable tbody tr td:nth-child(3){
	position:sticky;
	left:10px;
	z-index:1;
	top:0;
	background-color: #FFFFFF;
	font-weight: bold;
}
table.dataTable tr th:nth-child(1){
	position:sticky;
	left:0;
	z-index:1000;
	top:0;
	background-color: #001630;
}
table.dataTable tr th:nth-child(2){
	position:sticky;
	left:35px;
	z-index:1000;
	top:0;
	background-color: 
}
table.dataTable tr th:nth-child(3){
	position:sticky;
	left:10px;
	z-index:1000;
	top:0;
	background-color: #001630;
}
table.dataTable tr td input{
	height:25px;
}

table.dataTable th{
	position: sticky;
	top: 0;
	z-index: 2;
	background-color: #001630;
}
table.dataTable td{
	padding: 2px !important;
	white-space: nowrap;
}
table.dataTable tfoot tr th{
	line-height: 20px;
	/* position: sticky; */
	bottom: 0;
	top:0;
}
.center{
	text-align:center;
	padding : 4px 5px;
}
#table tfoot tr th{
	padding: 4px 30px;
}
.number{
	text-align: center;
}
</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-12">
		<?php echo form_open("$controller_name/check_monthly_input",array('id'=>'monthly_input_form')); ?>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('category'), 'category', array('class' => 'required'));
				echo form_dropdown(array( 'name' => 'category', 'multiple id' => 'category', 'class' => 'form-control input-sm select2'), $category_list);
				echo "<label><input name='sel_all' id='sel_all' type='checkbox'> Select All</label>";
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('select_month'), 'search_month', array('class' => 'required'));
				echo form_input(array('name' => 'search_month', 'id' => 'search_month', 'class' => 'form-control input-sm datepicker',  'value'=>'','autocomplete'=>'off')); 
			?>
		</div>
		<?php 
			if($mi_process_type){ ?>
				<div class='form-group'>
				<?php 
					echo $mi_process_type['form_label'];
					echo $mi_process_type['form_input'];
				?>
            	</div>
			<?php } ?>
		<div class="form-group">
			<?php
				$process_mode = array("2"=>"Edit","1"=>"View");
				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);
			?>
		</div>
		<div class="form-group">
			<button class='btn btn-primary btn-sm' id="search">Submit</button>
		</div>
		<?php echo form_close(); ?>
	</div>
</fieldset>
</div>
<div class="row" style='margin:0px;overflow:auto;width: 100%;'>	
	<div class='col-md-12' id='table_div' style='padding:8px;min-height: 400px;display: none;' >
		<ul class="nav nav-tabs">
		  <li class="active"><a data-toggle="tab" href="#view"> View </a></li>
		  <li><a data-toggle="tab" href="#edit"> Pending </a></li>
		  <li><a data-toggle="tab" href="#payroll_input"> Input Processed </a></li>
		  <li><a data-toggle="tab" href="#payroll"> Payroll Processed </a></li>
		</ul>
		<div class="tab-content">
		  <div id="view" class="tab-pane fade in active">
		    <!-- <h4>Inputs Yet to Given..</h4> -->	    
				<table id="view_table" class='table table-striped table-hover' style='width:100% !important;'></table>
		  </div>
		  <div id="edit" class="tab-pane fade">
		   <!--  <h4>Edit Monthly input Data</h4> -->
				<table id="table" class='table table-striped table-hover' style='width:100% !important;'></table>
		  </div>
		  <div id="payroll_input" class="tab-pane fade">
		   <!--  <h4>Edit Monthly input Data</h4> -->
				<table id="input_table" class='table table-striped table-hover' style='width:100% !important;'></table>
		  </div>
		  <div id="payroll" class="tab-pane fade">
		   <!--  <h4>Payroll Processed Data</h4> -->
				<table id="payroll_table" class='table table-striped table-hover' style='width:100% !important;'></table>
		  </div>
	  </div>
	</div>	
</div>
<script type="text/javascript">
$(document).ready(function (){
	//Future Date Restrictions
	var end_date = "<?php echo $end_date;?>";
	var end_date = moment(new Date(end_date), 'DD-MM-YYYY').format('YYYY-MM-DD');
	$("#search_month").datetimepicker({
		format: 'MM-YYYY',
		// minDate: moment('01-01-2021'),
		maxDate: end_date
	});
	
	$("#search_month").val('');
	$('#monthly_input_form').submit(function(event){ event.preventDefault(); }).validate({	
		rules:{
			category:"required",
			search_month:"required",
			process_mode:"required"
			//,add_component:"required"
		},
		submitHandler: function (form){
			$("#search").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#search').attr('disabled','disabled');
			var category      = $('#category').val();
			var search_month  = $('#search_month').val();
			var process_mode  = $('#process_mode').val();
			var add_component = $('#add_component').val(); ////If process with Additional Component
			//Encryption
			var key           = '<?php echo $key; ?>';
			var data          = {search_month:search_month,category:category,process_mode:process_mode,add_component:add_component};
			var encData       = encrypt(key,data);
			$.ajax({
				type: "POST",
				url: '<?php echo site_url($controller_name . "/check_monthly_input"); ?>',
				data:encData,				
				contentType: 'text/plain',
				success: function(data){
					var rslt = JSON.parse(data);
					if(rslt.success){
						$('#search').attr('disabled',false);
						$("#search").html("Submit");
						$('#table_div').show();					
						if(process_mode === '2'){
							table_draw('table','edit');		
							$('[href="#edit"]').closest('li').show();
							$('[href="#payroll_input"]').closest('li').show();	
							$('[href="#payroll"]').closest('li').show();	
							$('[href="#view"]').closest('li').hide();
							$('.nav-tabs a[href="#edit"]').tab('show');
						}else{
							table_draw('view_table','view');	
							$('[href="#edit"]').closest('li').hide();	
							$('[href="#payroll_input"]').closest('li').hide();	
							$('[href="#payroll"]').closest('li').hide();	
							$('[href="#view"]').closest('li').show();
							$('.nav-tabs a[href="#view"]').tab('show');	
						}
					}else{
						toastr.error(rslt.message);
					}
					$('#search').attr('disabled',false);
					$("#search").html("Submit");
				},
			});
		}   	
	});
	$('a[data-toggle="tab"]').on('click', function (e) {
	  var target = $(e.target).attr("href") // activated tab
	  if(target === '#payroll_input'){
	  	table_draw('input_table','input');	  	
	  }else
	  if(target === '#payroll'){
	  	table_draw('payroll_table','payroll');
	  }else
	  if(target === '#edit'){
	  	table_draw('table','edit');
	  }
	});		

	$("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);
			}
		});
	});

	$(function (){$(".datepicker").datetimepicker({format: 'MM-YYYY',});});
	$(".datepicker_time").datetimepicker({format: 'DD-MM-YYYY HH:mm:ss',});
	$('.select2').select2({});

	// $(document).on('keyup', '.number', function(e) {
	// 	this.value = this.value.replace(/[^0-9_.]/g,'');
	// });

	//FOR CATEGORY SELECT ALL FUNCTION
	$('#sel_all').click(function(){
		if($('#sel_all').is(':checked') ){
			$('#category > option').prop('selected','selected');
			$('#category').trigger('change');
		}else{
			$('#category > option').removeAttr('selected');
			$('#category').trigger('change');
		}
		$('#category option').filter(function(){
			return !this.value || $.trim(this.value).length == 0;
		}).remove();
	});

	//NUMBER INPUT FOCUS IF NUMBER WAS 0 THEN REMOVE IT
	$(document).on("focus",".number",function(e) {
		var val = $(this).val();
		if(val === '0'){
			$(this).val('');
		}
	});

	//condition for allow only in deciamls not all others
	$(document).on("keyup",".number", function(evt) {
		var self = $(this);
		self.val(self.val().replace(/[^0-9\.]/g, ''));
		if ((evt.which != 46 || self.val().indexOf('.') != -1) && (evt.which < 48 || evt.which > 57)) 
		{
			evt.preventDefault();
		}
	});

	//Excel Data Paste
	$('table').on('paste', 'input', function(e){
		var $this      = $(this);
		var table_id   = $this.closest('table').attr('id');
		if(table_id === 'table'){
			tbl_name  = 'table';
		}else{
			tbl_name   = 'input_table';
		}
		$.each(e.originalEvent.clipboardData.items, function(i, v){
			if (v.type === 'text/plain'){
				v.getAsString(function(text){
					var x = $this.closest('td').index(),
						y = $this.closest('tr').index()+1,
						obj = {};
						text = text.trim('\r\n');
					$.each(text.split('\r\n'), function(i2, v2){
						$.each(v2.split('\t'), function(i3, v3){
							var row         = y+i2, col = x+i3;
							var correct_row = row-1;
							obj['cell-'+row+'-'+col] = v3;
							if(table_id !== tbl_name){
								$this.closest('table').find('tr:eq('+row+') td:eq('+col+') input').val(v3);
							}else{
								//Numbers and Digit only add
								v3 = v3.replace(/[^0-9\.]/g, '');
								var input     = $this.closest('tbody').find('tr:eq('+correct_row+') td:eq('+col+') input');
								var read_only = input.attr('readonly');
								//FOR READONLY INPUT
								if(read_only === "readonly"){
									var value     = input.val();
									var td_input  = $this.closest('tbody').find('tr:eq('+correct_row+') td:eq('+col+') input').val(value);
								}else{//FOR EDITABLE INPUT
									var td_input  = $this.closest('tbody').find('tr:eq('+correct_row+') td:eq('+col+') input').val(v3);
									var data_id   = td_input.attr('data-id');
									var name      = td_input.attr('name');
									var value     = td_input.val();
									//UPDATE FUNCTION
									update_table($this.closest('tbody').find('tr:eq('+correct_row+')'),name,value);
								}
							}
						});
					});
				});
			}
		});
	  	return false;
	});
});

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_emp_code      = data['employee_code'];
	var category          = data['role'];
	var hid_process_month = $('#search_month').val();
	var tab_name          = $('.tab-content .active').attr('id');
	if(label_name === "supplementary_status"){
		if(checked == true){
		   value = 1;
		}else{
			value = 0;
		}
	}	
	if(tab_name === 'edit'){
		table_name = 'table';
		draw_name ='edit';
	}else
	if(tab_name === 'payroll_input'){
		table_name = 'input_table';
		draw_name  = 'input';
	}	
	if(hid_process_month){
		//Encryption
		var key           = '<?php echo $key; ?>';
		var data          = {prime_id:row_id,hid_doj:hid_doj,hid_process_month:hid_process_month,category:category,label_name:label_name,value:value,hid_emp_code:hid_emp_code,tab_name:tab_name};
		var encData       = encrypt(key,data);
		$.ajax({
			type: 'POST',
			url: '<?php echo site_url("$this->control_name/update_table");?>',
			data:encData,				
			contentType: 'text/plain',
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.success){
					toastr.success(rslt.message);	
					//FOOTER VALUE UPDATE WITHOUT DATATABLE CALLING START
					var col_index      = $(closest_row).find('#' + label_name).parent().index();
					var change_inp_val = 0.00;
					var $inputTable    = $("#table");
					var $tfoot         = $inputTable.find('tfoot tr:first');
					$inputTable.find("tbody tr").each(function(){
					   var td_val      = parseFloat($(this).find("td input[id='" + label_name + "']").val()) || 0;
					   change_inp_val += td_val;
					});
					$tfoot.find('th:eq(' + col_index + ')').text(change_inp_val.toFixed(2));
					//FOOTER VALUE UPDATE WITHOUT DATATABLE CALLING END		
				}else{
					if(rslt.status === "DOJ"){
						$(this).prop( "checked", false);
						toastr.error(rslt.message);
					}else{
						toastr.error(rslt.message);
					}						
				}
				if(tab_name === 'edit'){
					table_draw('table','edit')
				}else{
					table_draw('input_table','input');
				}	
			}
		});
	}
}
function delete_column(label_name,tab_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(){
							//Encryption
							var key           = '<?php echo $key; ?>';
							var data          = {category:category,search_month:search_month,label_name:label_name};
							var encData       = encrypt(key,data);
							$.ajax({
								type: 'POST',
								url: '<?php echo site_url("$this->control_name/delete_column");?>',
								data:encData,				
								contentType: 'text/plain',
								success: function(data){
									var rslt = JSON.parse(data);
									if(rslt.success){
										toastr.success(rslt.message);
										if(tab_name === 'edit'){
											table_draw('table','edit')
										}else{
											table_draw('input_table','input');
										}										
									}else{
										toastr.error(rslt.message);					
									}
									$('#delete_btn_'+label_name).attr('disabled',false);
									$('#delete_btn_'+label_name).html("");
								}
							});
						}
				},
				close: function(){
					$('#delete_btn_'+label_name).attr('disabled',false);
					$('#delete_btn_'+label_name).html("");
				}
			}
		});		 	
	}
}
function table_draw(table_name,tab_name){
	$('.modal-dialog').draggable({ handle: ".modal-header" });
	var a        = <?php echo json_encode($master_pick); ?>;
	var prime_id = "<?php echo $prime_id; ?>";
	if(tab_name === 'input'){
		var select_all = '<input type="checkbox" name="select_all" class="select_all">';
	}else{
		var select_all = '';
	}
	$table  = $('#'+table_name).DataTable({
		fixedHeader  : true,
		processing   : true,
		serverSide   : true,
		destroy      : true,
		serverMethod : 'post',
		lengthMenu   : [[10,25,50,100,500,1000,-1],[10,25,50,100,500,1000,"All"]],
		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 $view_url; ?>',
			'data': function(data){			
				<?php echo $table_map_list; ?>	
				var add_component  = $('#add_component').val();
				data.tab_name      = tab_name;				
				data.add_component = add_component;	
				var key            = '<?php echo $key; ?>';
				var encData        = encrypt(key,{data});
				return { Payload: encData };			
			},
			 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: select_all,
				data: '<?php echo $prime_id; ?>',
				type: 'html',
				orderable: false,
				className: 'select-checkbox',
				searchable:false,
				width:'1%',
				render:function (value){
					if(value && tab_name === 'input'){
						return '<input type="checkbox" value="'+value+'" name="select_one" class="select_one">';
					}else{
						return '<input type="hidden" value="'+value+'" id = "prime_id">';
					}
				}
			},			
			<?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']['array_list']){
										if(value === '0' || value === ''){
											return '';
										}else{
											return a['$label_name']['array_list'][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']['array_list']){
												if(count === 1){
												   rslt += a['$label_name']['array_list'][multi_key];
											   }else{
												   rslt += ' , '+a['$label_name']['array_list'][multi_key];
											   }
											}
										});
										return rslt;
									}else {
										return '-';
									}
								}
							},\n";
					}else
					if($field_type === 10){
						$img = '<i class="fa fa-download" onclick="file_download(filepathleft@URL@filepathright)"></i>';
						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);
										image     = image.replace('filepathleft', '\'');
										image     = image.replace('filepathright', '\'');		
										if(value !== null){
											return image;
										}else{
											return '';
										}
									}else{
										return '';
									}
									
								}
							},\n";
					}else
					if($field_type === 1 || $field_type === 8){
						echo "{title:'$view_name',data: '$label_name',visible:true,
								render:function(value) {
									if(value){
										var val = value.replace(/\~/g,'\"');
										var val = val.replace(/\`/g,'\''); 
										var val = val.replace(/\^/g,'\&'); 
										return val;
									}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(tab_name === 'input' || tab_name === 'edit'){
										if($.isNumeric(value)){
											if(value !== ''){
												var input = '$input';
												input     = input.replace('@val@', value);	
												return input;
											}									
										}else{
											return value;	
										}	
									}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 number" value="@val@" '.$readonly.'>';
							echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,sClass: 'center number',
								render:function(value){	
									if(tab_name === 'input' || tab_name === 'edit'){
										if($.isNumeric(value)){
											if(value !== ''){
												if(value === '0.00' && tab_name === 'edit'){
													value = '';
												}else
												if(value === '0.00' && tab_name === 'input'){
													value = 0;
												}
												var input = '$input';
												input     = input.replace('@val@', value);	
												return input;
											}									
										}else{
											return value;	
										}
									}else{
										return value;
									}																		
								}
							},\n";
						}				
					}
				}
				
			?>	
					
		],
		rowCallback: function (row, data) {
			var input_sts      = parseInt(data.input_status);
			var tr_input       = $(row).find('input');
				if(input_sts === 2){
					$(row).addClass('add_entry');
				}		
		},
		"footerCallback": function (row, data, start, end, display) {
			var api = this.api(), data;  
			CalculateTableSummary(this,table_name);   
		},
	});
	$('input[type=search]').addClass('form-control input-sm');	
	//IF YOU WANT TO EXPORT BUTTON IN ALL TAB CHANGE table_name as table
	if(tab_name === 'edit'){
		var buttons = new $.fn.dataTable.Buttons(table_name, {
			buttons: [{
				extend: 'collection',
				text: 'Export',
				buttons: [
					{extend:'excel',exportOptions:{modifier:{order :'index',page: 'all',search:'none'},columns:':visible'}},
				]
			}]
		}).container().appendTo($("#"+table_name+"_filter"));
	}
		
	if(tab_name === 'input'){
		/* DELETE PROCESS - START*/
		<?php 
			if($access_delete === 1){
		?>
				var delete_btn = "<button class='btn btn-xs btn-danger fliter' id='delete_btn' style='margin-top:7px' onclick=delete_row('"+table_name+"','"+tab_name+"'); disabled='true'><i class='fa fa-trash' aria-hidden='true'></i> Delete</button>";
		<?php 
			}else{
		?>
				var delete_btn = "";
		<?php
			}
		?>
		$("#"+table_name+"_length").find('button').remove();
		$("#"+table_name+"_length").prepend(delete_btn);
		$("#"+table_name+"_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").removeAttr("disabled");
			}else{
				$('.select_one').prop('checked', false);
				$("#delete_btn").attr('disabled','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").removeAttr("disabled");
			}else{
				$("#delete_btn").attr('disabled','disabled');
			}	
		});
	}

	if(tab_name === 'edit'){
		var process_month  = $('#search_month').val();
		var category       = $('#category').val();
		var add_component  = $('#add_component').val(); ////If process with Additional Component
		var save_btn   = "<button class='btn btn-xs btn-success' id='save_btn' style='margin: 5px;' onclick=save_all_data('"+category+"','"+process_month+"','"+add_component+"')><i class='fa fa-floppy-o' aria-hidden='true'></i> Submit All to Payroll</button></td><td style='padding: 10px;'><button class='btn btn-xs btn-info btn_2' id='save_btn' onclick=save_processed_data('"+category+"','"+process_month+"','"+add_component+"')><i class='fa fa-floppy-o' aria-hidden='true'></i> Submit Input Given to Payroll</button>";
		$("#"+table_name+"_length").after(save_btn);
		$(".btn_2").after("<div id = 'square_box'><div id = 'entry_square'></div><span>New Entry</span><div id = 'check_square'></div><span>Input Given</span><div id = 'check_rem_square'></div>");
		$('input[type=search]').addClass('form-control input-sm');
		$("select[name='table_length']" ).addClass('form-control input-sm');
	}	
	// $("#"+table_name+"_filter").parent().remove();
}
//Update Processed data in pending tab
function save_processed_data(category,process_month,add_component){
	save_data(category,process_month,add_component,'input_data');
}

function save_all_data(category,process_month,add_component){
	save_data(category,process_month,add_component,'all');
}

function save_data(category,process_month,add_component,type){
	var inputs     = document.querySelectorAll('#table input');	
	var table_data = [];
	inputs.forEach(function(input){
	   table_data.push({ id: input.id, value: input.value});
	});
	//CHANGING ARRAY STRUCTURE
	var mi_data = {};
	var prime_id;
	table_data.forEach(function(val){
		if(val.id === "prime_id"){
		  prime_id = val.value;
		}
		if(prime_id && prime_id !== 'undefined'){
			if(!mi_data[prime_id]){
			   mi_data[prime_id] = {}; 
			}
			if(val.data_id && val.data_id.trim() !== ""){
			   var data_id = val.data_id.split('_');
			   data_id.pop();
			   mi_data[prime_id][data_id.join('_')] = val.value;
			}else{
			   mi_data[prime_id][val.id] = val.value;
			}
		}
	});
	if(process_month && category){
		if(type === 'input_data'){
		   var btn     = 'save_mod_btn';
		   var btn_txt = 'Submit all to Payroll';
		}else{
		   var btn     = 'save_btn';
		   var btn_txt = 'Submit Input Given to Payroll';
		}
		$("#"+btn).html("<i class='fa fa-spinner fa-spin'></i> Processing...");
		$('#'+btn).attr('disabled','disabled');    
		//Encryption
		var key           = '<?php echo $key; ?>';
		var data          = {process_month:process_month,category:category,add_component:add_component,type:type,table_data:JSON.stringify(mi_data)};
		var encData       = encrypt(key,data);             
		$.ajax({
			type: 'POST',
			url : '<?php echo site_url("$this->control_name/save_processed_data");?>',
			data:encData,				
			contentType: 'text/plain',
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.success){
				toastr.success(rslt.message);
				$('.nav-tabs a[href="#payroll_input"]').tab('show');
				table_draw('input_table','input');
				}else{
				toastr.error(rslt.message);                 
				}
				$('#'+btn).attr('disabled',false);
				$("#"+btn).html("<i class='fa fa-floppy-o' aria-hidden='true'></i> "+btn_txt);
			}
		});
	}
}

//Delete Selected or Checked Data
function delete_row(table_name,tab_name){
	if(confirm("Are you sure. you want delete select records??")){
		var remove_ids = [];
		$.each($("input[name='select_one']:checked"), function(){
			remove_ids.push($(this).val());
		});
		var category      = $('#category').val();
		var search_month  = $('#search_month').val();
		var delete_count  = remove_ids.length;
		if(delete_count <= 0){
			toastr.error('Please Choose Atleast one row..');	
			return false;
		}
		//do ajax process
		if(remove_ids){
			$("#delete_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#delete_btn').attr('disabled','disabled');
			//Encryption
			var key           = '<?php echo $key; ?>';
			var data          = {delete_ids:remove_ids,category:category,search_month:search_month};
			var encData       = encrypt(key,data);        
			$.ajax({
				type: "POST",
				url: '<?php echo site_url("$controller_name/delete_month_input"); ?>',
				data:encData,				
				contentType: 'text/plain',
				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").attr('disabled','disabled');
						table_draw(table_name,tab_name);
					}else{
						toastr.error(rslt.message);							
					}
					$('#delete_btn').attr('disabled',false);
					$("#delete_btn").html("<i class='fa fa-trash' aria-hidden='true'></i> Delete");
				}
			
			});
		}						
	}else{
		$('.select_all').prop('checked', false);
		$('.select_one').prop('checked', false);
		$("#delete_btn").attr('disabled','disabled');
	}
}

function CalculateTableSummary(table,table_name) {
	var api         = table.api();
	var intVal      = function (i) {
		return typeof i === 'string' ?
			i.replace(/[\$,]/g, '') * 1 :
			typeof i === 'number' ?
			i : 0;
	};
	var column      = 0;
	var sum         = 0;
	$("#" + table_name + "_foot").html("");
	var visible     = "";
	 col_len         = api.context[0]["aoColumns"].length;
	var tab_row     = "";
	var i = 1;
	var bg = '';
	api.context[0]["aoColumns"].reduce(function (a,b){
		if(i <=3){ //Footer background color for freeze columns
			bg = 'background-color:#f2f2f2;';
		}
		if(a !== undefined){
			visible     = a["bVisible"];
			if(visible){
				tab_row += "<th style = 'white-space: nowrap !important; max-width: 500px !important;text-align:center; padding:4px 5px;"+bg+"'></th>";
			}
		}else{
			visible     = b["bVisible"];
			if(visible){
				tab_row += "<th style = 'white-space: nowrap !important;max-width: 500px !important;text-align:center;"+bg+"'></th>";
			}
		}
		i++;
	});
	tab_row += "<th style='white-space: nowrap !important;max-width: 500px !important;background-color:#f2f2f2; text-align:center; padding:5px 5px;'></th>";
	$("#" + table_name + "_foot").remove();
	// // Append the new tfoot element
	$(table).append("<tfoot id='" + table_name + "_foot'><tr>" + tab_row + "</tr></tfoot>");
	api.columns(".number").eq(0).each(function (index) {
		column      = api.column(index,{page:'current'});
		sum         = column.data().reduce(function (a, b) {	
			if(isNaN(a)){
				val1 = 0;
			}else{
				val1=a;
			}
			if(isNaN(b)){
				val2=0;
			}else{
				val2=b;
			}
			return intVal(val1) + intVal(val2);
		}, 0);
		foot_col_index  = index;
		$("#"+table_name+"_foot tr th").eq(foot_col_index).text('' + sum);   	
	});
}
//DATATABLE FOOTER FUNCTION END
</script>

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