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/misc_input_fms/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_misc_input_fms_id";
	$view_url            = site_url($controller_name."/search");
	$import_url          = site_url($controller_name."/import");
	$end_date 		     = date('Y-m-d');
	$validation_rule     = "";
	/* PAGE TITLE AND BUTTONS- START */
	$breadcrumb .= "";
	$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 TABLE FILTER - START */
	$filter_tr_line = "";
	$table_map_list = "";
	$table_map_list .= "let search_month   = $('#search_month').val(); \n data.search_month = search_month;\n";
	$table_map_list .= "let personal_code  = $('#personal_code').val(); \n data.personal_code = personal_code;\n";
	$table_map_list .= "let project        = $('#project').val(); \n data.project = project;\n";
	$table_map_list .= "let with_esi       = $('#with_esi').val(); \n data.with_esi = with_esi;\n";
	$table_map_list .= "let with_pf        = $('#with_pf').val(); \n data.with_pf = with_pf;\n";
	/* PAGE TABLE FILTER - END */
	$column_count     = count(array_column($table_head ?? [], "label_name") ?? [])+1;	
	
	$status = array(""=> "--- With Esi ----","1" => "Yes","2" => "No");
?>
<style>
	/* html, body{
		margin: 0; height: 100%; 
		overflow-x: hidden;
	} */
	.form-inline .form-group {
		display: inline-block;
		vertical-align: middle;
		margin-left: 30px;
		margin-bottom: 10px;
		width: 16.5%;
	}
	.form-group {
		display: inline-block;
		vertical-align: middle;
		margin-left: 9px;
		margin-bottom: 6px;
		width: 22.5%;
	}
	div#table_filter{
		display: inline-table !important;
	}
	#input_table_filter,#checker_table_filter,#calc_table_filter,#calc_table_length label {
		display: flex !important;
	}
	.select2-selection--multiple{
		overflow-y: scroll !important;
		height: 50px;
		border-radius: 10px;
	}
	.billable_entry {
		background-color:#FFD9B3 !important;
	}
	.add_entry {
		background-color:#d5f4e6 !important;
	}
	.check_rem_entry {
		background-color:#f79595 !important;
	}
	.check_app_entry {
		background-color:#a2f1a2 !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;
	}
	#bill_square {
		width: 15px;
		height: 15px;
		margin-left: 25px;
		background-color:#FFD9B3 !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;
	}
	#check_rem_square {
		width: 15px;
		height: 15px;
		margin-left: 25px;
		background-color:#f79595 !important;
		border: 1px solid black !important;
	}
	#check_app_square {
		width: 15px;
		height: 15px;
		margin-left: 25px;
		background-color:#a2f1a2 !important;
		border: 1px solid black !important;
	}
	#square_box span {
		margin-left: 2px !important;
	}
	#check_square_box span {
		margin-left: 5px !important;
	}
	.display th, .display td {
		white-space: nowrap !important;
	    max-width: 500px !important;
	}	
	th.earn{
		color: #1aa68b !important;
	}
	th.deduct{
		color: #c55549 !important;		
	}

	/* Fixed freeze column - START BSK */
	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: 35px;
	    width: 50px;
	    min-width: 50px;
	}
	table.dataTable tr th:nth-child(3),table.dataTable tr td:nth-child(3){
		position: sticky !important;
	    left: 160px;
	    width: 160px;
	    min-width: 160px;
	}
	table.dataTable td {
    	padding: 2px !important;
    	white-space: nowrap;
	}

	td > .form-control {
    	height: 25px !important;
	}
	
	table.dataTable th{
	    position: sticky;
	    top: 0;
	    z-index: 2;
	    background-color: #001630;
	}
	table.dataTable td{
		padding: 2px !important;
		white-space: nowrap;
	}
	table.dataTable tr th:nth-child(1),table.dataTable tr th:nth-child(2),table.dataTable tr th:nth-child(3){		
	    background-color: #001630;
	    z-index:1000;
	}
	table.dataTable tr td:nth-child(1),table.dataTable tr td:nth-child(2),table.dataTable tr td:nth-child(3) {
	    background-color: #f2f2f2;
	}	
	table.dataTable tfoot tr th {
   		line-height: 30px;
   		position: sticky;
   		bottom: 0;
   		top: 0;
	}
	#input_table_filter,#calc_table_filter{
		position: sticky !important;
    	z-index: 1000 !important;
    	right: 20px !important;
	}

	#refresh_btn{
		position: sticky !important;
    	z-index: 1000 !important;
    	left: 20px !important;
	}

	#square_box{
		position: sticky !important;
    	z-index: 1000 !important;
    	left: 120px !important;
	}
	#input_table_wrapper,#calc_table_wrapper,#checker_table_wrapper{
		width: min-content !important;
	}
	/* Fixed freeze column - END BSK */
</style>

<div class='row title_content'>
	<div class='col-md-4 col-xs-4'>
		<h1 class='page_txt'><?php echo $page_name;?></h1>
	</div>
	<div class='col-md-8 col-xs-6'>
		<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_misc_payment",array('id'=>'misc_payment_fms_form','autocomplete'=>'off')); ?>
		<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 mon_datepicker','placeholder' => 'Select Month', 'value'=>'')); 
			?>
		</div>
		<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>
		<div class="form-group">
			<?php
				echo form_label('Project', 'project', array('class' => 'required'));
				echo form_dropdown(array( 'name' => 'project', 'id' => 'project', 'class' => 'form-control input-sm select2'));
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label('With Esi', 'with_esi', array('class' => 'required'));
				echo form_dropdown(array( 'name' => 'with_esi', 'id' => 'with_esi', 'class' => 'form-control input-sm select2'),$status);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label('With PF', 'with_pf', array('class' => 'required'));
				echo form_dropdown(array( 'name' => 'with_pf', 'id' => 'with_pf', 'class' => 'form-control input-sm select2'),$status,2);
			?>
		</div>
		<?php 
			$validation_rule .=  "search_month:{ required: true },personal_code:{ required: true },project:{ required: true },with_esi:{ required: true },with_pf:{ required: true }";
		?>
		<div class="form-group">
			<button class='btn btn-primary btn-sm' id="search"><i class='fa fa-send-o' aria-hidden='true'></i> Submit </button>
		</div>
		<?php 
			echo form_close(); 
		?>
	</div>
</div>
<div class="col-md-12">
	<div style='background-color: #FFFFFF !important; border-radius: 3px;display:none; width:70%;' class="col-md-8" id = "form_div">
		<table style='width:100%;margin: 10px;'>
			<tr>
				<td style='white-space:nowrap;font-weight:bold;width:40%;'>
					<div id = "personal_div">
						<span style='font-size:15px;color:#f78223;'><bold>Personal Area : </bold></span>
					</div>
				</td>
				<td style='white-space:nowrap;font-weight:bold;width:60%;'>
					<div id = "project_div">
						<span style='font-size:15px;color:#f78223;'><bold>Project : </bold></span>
					</div>
				</td>
			</tr>
		</table>  
		<table style='width:100%;margin: 10px;'>
			<tr>
				<td style='white-space:nowrap;font-weight:bold;width:40%;'>
					<div id = "month_div" >
						<span style='font-size:15px;color:#f78223;'><bold>Select month : </bold></span>
					</div>
				</td>
				<td style='white-space:nowrap;font-weight:bold;width:30%;'>
					<div id = "esi_div" >
						<span style='font-size:15px;color:#f78223;'><bold>Esi : </bold></span>
					</div>
				</td>
				<td style='white-space:nowrap;font-weight:bold;width:30%;'>
					<div id = "pf_div" >
						<span style='font-size:15px;color:#f78223;'><bold>PF : </bold></span>
					</div>
				</td>
			</tr>
		</table>  
	</div>
	<div class="form-inline form-group col-md-4" id = 'wbs_element_div' style='display:none;'>
		<?php
			echo form_label('Wbs Element', 'fil_wbs_element', array('class' => 'required'));
			echo form_dropdown(array( 'name' => 'fil_wbs_element[]', 'multiple id' => 'fil_wbs_element', 'class' => 'form-control input-sm select2'));
		?>
		<!-- 		
		<button class='btn btn-primary btn-sm' id="filter_search" style='position:absolute;margin-left:10px;'><i class='fa fa-search' aria-hidden='true'></i> Search </button> -->
		<button class='btn btn-xs btn-edit' id="filter_search" style='position:absolute;margin-left:10px;'><i class='fa fa-search' aria-hidden='true' style = 'font-size:10px;'></i> Search </button>
	</div>
</div>
<div class="row" >
	<div class='col-md-12' id='table_div' style='display: none;'>
		<ul class="nav nav-tabs">
		  <li class="active"><a data-toggle="tab" href="#table_view"> Misc Entry </a></li>
		  <li><a data-toggle="tab" href="#calc_view"> Calculation Entry </a></li>
		  <li><a data-toggle="tab" href="#checker_view"> Checker Data </a></li>
		</ul>
		<div class="tab-content" style="height:360px">
		  	<div id="table_view" class="tab-pane fade in active">    
				<table id="input_table" class='table-hover display' style='width:100% !important;'></table>
		  	</div>
		  	<div id="calc_view" class="tab-pane fade">    
		  	</div>
		  	<div id="checker_view" class="tab-pane fade"> 
				<table id="checker_table" class='table-hover display' style='width:100% !important;'></table>
		  	</div>
		</div>
	</div>	
</div>
<script type="text/javascript">
$(document).ready(function (){	
	//error through for payroll filter not mapping 
	<?php echo $error_info; ?>
	<?php echo $toastr_fadeout; ?>		
	var $table = "";
	$(function (){$(".mon_datepicker").datetimepicker({format: 'MM-YYYY',});});
	$(".datepicker").datetimepicker({format: 'MM-YYYY',});
	$(".datepicker_time").datetimepicker({format: 'DD-MM-YYYY HH:mm:ss',});
	$('.select2').select2({});
	
	//DR CODE FOR PROJECT ID FETCH BASED ON SEARCH MONTH AND PERSONAL CODE
	$(document).on('change','#personal_code',function(e) {
		let personal_code    = $('#personal_code').val();
		let search_month     = $('#search_month').val();
		project_id_fetch(search_month,personal_code);
	});

	//DR CODE FOR PROJECT ID FETCH BASED ON SEARCH MONTH AND PERSONAL CODE
	$(document).on('dp.hide','#search_month',function(e) {
		let personal_code    = $('#personal_code').val();
		let search_month     = $('#search_month').val();
		project_id_fetch(search_month,personal_code);
	});

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

	//BACK TO PAGE(BACK PREVIOUS PAGE) 
	$(document).on('click','#show_form', function(e) {
		$('#toolbar').show();
		//TAB UL AND LI BASED CHNAGES
		$('#table_div ul li').removeClass("active");
		$("#table_div ul li:first").addClass("active");
		$('#calc_view,#checker_view').removeClass("active in");
		$('#table_view').addClass("active in");
		//DIVS AND TABLES BASED CHANGES
		$('#form_div,#table_div,#wbs_element_div,#show_form_div').hide();
		$('#fil_wbs_element').val('');

		//DATATABLE DESTROY WHEN ONLY CALL THIS TABLE WAS DATABLE
		if ($.fn.DataTable.isDataTable('#input_table') ) {
			$('#input_table').DataTable().clear().destroy();
		}
		if ($.fn.DataTable.isDataTable('#checker_table') ) {
			$('#checker_table').DataTable().clear().destroy();
		}
		if ($.fn.DataTable.isDataTable('#calc_table') ) {
			$('#calc_table').DataTable().clear().destroy();
		}

		$('#input_table,#checker_table,#input_table_wrapper,#checker_table_wrapper,#calc_view').empty();
		
		// $('#input_text').html("<div class='col-md-2 col-xs-4'><h1 class='page_txt'><?php echo $page_name;?></h1></div>");
	});
	
	//MISC PROCESS CALCULATE
	$('#misc_payment_fms_form').submit(function(event){ event.preventDefault(); }).validate({
		ignore: ".ignore",
		rules:{
			<?php echo $validation_rule; ?>
		},
		submitHandler: function (form){
			$('#search').html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#search').attr('disabled','disabled');
			check_misc_payment('input_table','save');			
		}
	});
	
	$("#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 ----',});
	});
	
	//TAP ONCLICK FUNCTION
	$("a[href='#table_view']").click(function(e){
		check_misc_payment('input_table','save');
	});
	$("a[href='#calc_view']").click(function(e){
		calc_entry_status();
	});
	$("a[href='#checker_view']").click(function(e){
		check_misc_payment('checker_table','');
	});
	
	//DR CODE START FOR WBS ELEMENT MULTIPICKLIST PASTE DATA FETCH @30AUG22@
	var current_pin	    = [];
	$(document).on('paste','#wbs_element_div', function (e) {
		var pastedData = e.originalEvent.clipboardData.getData('text').trim();
		tokens = pastedData.split(/\r\n|\r|\n/g); 

		$('#fil_wbs_element > option').each(function(){
			var wbs_arr             = $(this).text().split('~');
			var key                 = this.value;
			current_pin[wbs_arr[0]] = key;
		});

		var found_pin    = [];
		$.each(tokens, function(key, value) {
			found_pin.push(current_pin[value]);
		});
		$('.select2-search_field').val('');
		$('#wbs_element_div').find('select').attr('class');
		$('#fil_wbs_element').val('');
		$("#fil_wbs_element").val(found_pin).trigger("change");
	});
	//DR CODE END FOR WBS ELEMENT MULTIPICKLIST PASTE DATA FETCH @30AUG22@

	//DR CODE START FOR SUBMIT ONCLICK WBS FILTER BASED TABLE SEARCH @30AUG22@
	$(document).on('click','#filter_search', function(e){
		$("#filter_search").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
		$('#filter_search').attr('disabled','disabled');
		let wbs_element    = $("#fil_wbs_element").val();
		if(wbs_element !== ""){
			//DEFAULT INPUT TABLE CALL
			check_misc_payment('input_table','filter');
			var act_tab    = $("ul.nav-tabs li.active a").attr('href');
			//IF CHECKER VIEW ACTIVE SHOULD CALL CHECKER TABLE
			if(act_tab === '#checker_view'){
				check_misc_payment('checker_table','filter');
			}
			$('#filter_search').attr('disabled',false);
			$("#filter_search").html("Search");
		}else{
			toastr.error('Please Choose Wbs Filter...!');
			return false;
		}
	});
	//DR CODE END FOR SUBMIT ONCLICK WBS FILTER BASED TABLE SEARCH @30AUG22@

	//Excel Data Paste
	$('table').on('paste', 'input', function(e) {
		toastr.info('Please wait, pasting has started');
	    var $this         = $(this);
	    var table         = $this.closest('table');
	    var table_id      = table.attr('id');
	    var clipboardData = e.originalEvent.clipboardData || window.clipboardData;
	    var pastedData    = clipboardData.getData('text/plain').trim();
	    var rows          = pastedData.split('\n');
	    var rowIndex      = $this.closest('tr').index() + 1;
	    var colIndex      = $this.closest('td').index();
	    rows.forEach(function(row, index) {
	        var rowData     = row.split('\t');
	        var currentRow  = table.find('tr:eq(' + (rowIndex + index) + ')');
	        rowData.forEach(function(value, colOffset) {
	            var x = colIndex + colOffset;
	            var y = rowIndex + index;
	            var tdInput = currentRow.find('td:eq(' + x + ') input');
	            if (table_id !== 'input_table') {
	                tdInput.val(value);
	            } else {
	                // Numbers and Digits only
	                var numericValue = parseFloat(value) || 0;
	                tdInput.val(numericValue);
	                var label_name   = tdInput.attr('name');
	                update_table(currentRow, label_name, numericValue);
	            }
	        });
	    });
	    return false;
	});

	//----- DR CODE FOR TABLE (UPARROW) CLICK SHOULD ABOVE INPUT FOCUS and (DOWNARROW) CLICK SHOULD (BELOW INPUT) FOCUS THIS SAME AS FOLLOWD BY (RIGHT AND LEFT ARROW) START ------
	document.onkeydown =
	function updownintable(e) {
		switch (e.key) {
		case 'ArrowUp':
			var el      = document.activeElement;
			var act_id  = el.id;
			if(act_id){
				var active  = $(el).closest('tr').prev().children('td').children('#'+act_id);
				if (active != null) {
					active.focus();
				}
			}
			break;
		case 'ArrowDown':
			var el      = document.activeElement;
			var act_id  = el.id;
			if(act_id){
				var active  = $(el).closest('tr').next().children('td').children('#'+act_id);
				if (active != null) {
					active.focus();
				}
			}
			break;
		case 'ArrowLeft':
			var el      = document.activeElement;
			var act_id  = el.id;
			if(act_id){
				var foc_id  = $(el).closest('td').prev('td').children().attr('id');
				var active  = $(el).closest('td').prev('td').children('#'+foc_id);
				if (active != null) {
					active.focus();
				}
			}
			break;
		case 'ArrowRight':
			var el      = document.activeElement;
			var act_id  = el.id;
			if(act_id){
				var foc_id  = $(el).closest('td').next('td').children().attr('id');
				var active  = $(el).closest('td').next('td').children('#'+foc_id);
				if (active != null) {
					active.focus();
				}
			}
			break;
		}
	};
	//------- DR CODE FOR TABLE (UPARROW) CLICK SHOULD ABOVE INPUT FOCUS and (DOWNARROW) CLICK SHOULD (BELOW INPUT) FOCUS END ------

	//------- DR CODE for UP AND DOWN ARROW CLICK DON'T CHANGE A VALUE FOR EXAMPLE(DROPDOWN) START ------
	var keys = {};
	window.addEventListener("keydown",
		function(e){
			keys[e.keyCode] = true;
			switch(e.keyCode){
				// case 37: case 39: case 38: case 40: e.preventDefault(); break; // Arrow keys
				// case 32: e.preventDefault(); break; // Space
				default: break; // do not block other keys
			}
		},
	false);
	window.addEventListener('keyup',
		function(e){
			keys[e.keyCode] = false;
		},
	false);
	//------- DR CODE for UP AND DOWN ARROW CLICK DON'T CHANGE A VALUE EXAMPLE(DROPDOWN) END------
	//SATHISH FOR SELECT2 INPUT AUTO FOCUS START
	$('.select2').on('select2:select', function(e){
		$(this).focus();
		e.preventDefault(); 
	});
	//SATHISH FOR SELECT2 INPUT AUTO FOCUS END
});
// ------------------------------------- FUNCTION CODE START ----------------------------------------------------
//PROJECT ID FETCH DEPENDES ON PERSONAL CODE
function project_id_fetch(search_month,personal_code){
	$('#project').html('');
	if(search_month && personal_code){
		// Encryption
		var encKey  = '<?php echo $encKey; ?>';
		var data    = {personal_code:personal_code,search_month:search_month};
		var encData = encrypt(encKey,data);
		$.ajax({
			type: 'POST',
			url: '<?php echo site_url("$this->control_name/project_id_fetch");?>',
			data:encData,				
			contentType: 'text/plain',
			beforeSend: function () {
				$('#project').next('span').attr('id', 'project_span');
				$('#project_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);
				$('#project_span').empty();
				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').html(option);
				$('.select2').select2({
					placeholder: '---- Select ----',
					allowClear: true,
					//dropdownParent: $('.modal-dialog')
				});
			}
		});
	}
}

//DR CODE FOR WBS ELEMENT FILTER 29AUG22
function fil_wbs_fetch(personal_code,project,search_month){
	// Encryption
	var encKey  = '<?php echo $encKey; ?>';
	var data    = {personal_code:personal_code,project:project,search_month:search_month};
	var encData = encrypt(encKey,data);
	$.ajax({
		url : '<?php echo site_url("$this->control_name/fil_wbs_fetch");?>',
		type: 'POST',
		dataType: "html",
		data:encData,				
		contentType: 'text/plain',	
		beforeSend: function () {
			$('#fil_wbs_element').next('span').attr('id', 'project_span');
			$('#fil_wbs_element_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 Wbs Element---</option>';

			//LOOP FOR OPTION VALUE FETCH IN SELECT DROPDOWN FILED
			$.each(rslt, function(key, value) {
				option += '<option value='+value.wbs_id+'>'+value.wbs_id+'~'+value.wbs_desc+'</option>';
			});

			$('#fil_wbs_element').html(option);
			$('#fil_wbs_element_span').empty();
			$('.select2').select2({
				placeholder: '---- Select ----',
				allowClear: true,
			});
		}
	});
}
//DR CODE WBS FETCH FUNCTION END 29AUG22

//TABLE DRAW FOR MISC FMS TABLE DATA DISPLAY
function table_draw(table,action,table_head){ 
	$('.modal-dialog').draggable({ handle: ".modal-header" });
	var esi_label_arr = <?php echo json_encode($misc_esi_arr); ?>;
	var with_esi      = parseInt($("#with_esi").val());
	var prime_id      = "<?php echo $prime_id; ?>";
	$('#calc_view').html('');	
	//DATATABLE RENDER DATA STRUCTURE CREATE 
	var table_arr     = [];
	var hide_col      = {};
	var calc_inp_arr  = [];
	hide_col['role']                   = 'role';
	hide_col['termination_status']     = 'termination_status';
	hide_col['date_of_joining']        = 'date_of_joining';
	hide_col['date_of_birth']          = 'date_of_birth';
	hide_col['personal_code']          = 'personal_code';
	hide_col['project_id']             = 'project_id';
	hide_col['activity_no']            = 'activity_no';
	table_arr.push({
		title: 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+'" id="prime_misc_input_fms_id" name="select_one" class="select_one">';
		}
	});

	$.each(table_head,function(key,data_value){
		//INPUT AND CHECKER BASED ESI SHOW COLUM CHAGE SO WE USED THIS VARIABLE
		var esi_check   = false;
		if(hide_col[data_value.label_name] !== data_value.label_name){			
			if(data_value.field_type === '4'){
				table_arr.push({
					title: data_value.view_name,
					data: data_value.label_name,
					render:function(value) {	
						if(value){
							if (value === null) return '';
							return moment(value).format('DD/MM/YYYY');
						}else{
							return '';
						}
					}
					//optionally do some type detection here for render function
				});
			}else
			if((data_value.field_type === '5') || (data_value.field_type === '9')){
				table_arr.push({
					title: data_value.view_name,
					data: data_value.label_name,
					render:function(value, type, row, meta) {
						if(data_value.label_name === 'with_esi' || data_value.label_name === 'with_pf'){
							if(value === '1'){
								return 'Yes';
							}else if(value === '2'){
								return 'No';
							}else{
								return value;
							}
						}else{
							return value;
						}
						// if(data_value.label_name in pick_list && data_value.label_name !== 'wbs_element'){
						// 	if(value in pick_list[data_value.label_name]['array_list']){
						// 		if((value === '0' || value === '') && data_value.label_name !== 'termination_status'){
						// 			return '';
						// 		}else{
						// 			var val         = pick_list[data_value.label_name]['array_list'][value];
						// 			if(val === undefined){
						// 				val  = '';
						// 			}
						// 			var gross       = '';
						// 			if(data_value.label_name === 'position'){
						// 				gross       = ' ~ '+row.gross;
						// 			}
									
						// 			return '<span id = "'+data_value.label_name+'_val" data-val = "auto-pick">'+val+gross+'</span>';
						// 		}
						// 	}else{
						// 		return value;
						// 	}
						// }else{
						// 	return value;
						// }
					}
				});
			}else
			if(data_value.field_type ==='6'){
				table_arr.push({
					title: data_value.view_name,
					data: data_value.label_name,
					render:function(value) {
						send_val = 'No';
						if(value === '1'){ send_val = 'No'; }
						return send_val;
						
					}
					//optionally do some type detection here for render function
				});
			}else
			if(data_value.field_type ==='1' || data_value.field_type ==='8'){				
				table_arr.push({
					title: data_value.view_name,
					data: data_value.label_name,
					render:function(value) {
						if(value){
							var val = value.replace(/\~/g,'\"');
							var val = val.replace(/\`/g,'\''); 
							var val = val.replace(/\^/g,'\&'); 
							return val;
						}else{
							return '';
						}
					}
					//optionally do some type detection here for render function
				});
			}else{
				if(data_value.field_type === "2"){
					if(table === 'checker_table'){
						esi_check   = true;
					}else
					if(table === 'input_table'){
						if(esi_label_arr[with_esi][data_value.label_name] || esi_label_arr[3][data_value.label_name]){	
							esi_check   = true;
						}
					}
					if(esi_check){
						//TRANSACTION TYPE BASED CSS ADD
						var transaction_type   = parseInt(data_value.transaction_type);	
						var transClass         = '';
						if(transaction_type === 2){
							transClass   = " earn";
						}else
						if(transaction_type === 3){
							transClass   = " deduct";
						}
						table_arr.push({
							title: data_value.view_name,
							data: data_value.label_name,sClass: 'center number'+transClass,
							render:function(value, type, row, meta) {
								if($.isNumeric(value)){
									if(value !== ''){
										if(value === '0.00'){
											value = 0;
										}
										//FOR CHECKER TABLE NOT SHOW A DATA TO INPUT WISE
										if(table === 'checker_table'){
											return value;
										}else{ //FOR INPUT TABLE SHOW A DATA TO INPUT WISE


											var input = '<input type="text" oninput="update_table($(this).closest(\'tr\'), this.name, this.value, this); update_input($(this).closest(\'tr\'), this.name, this.value, this)" name="' + data_value.label_name + '_val" id="' + data_value.label_name + '" class="form-control number ' + data_value.label_name + '[]" value="@val@" data-id="' + data_value.label_name + '_@add@" autocomplete="off">';




											// var input = '<input type="text"  oninput=update_table($(this).closest("tr"),this.name,this.value,this) name="'+data_value.label_name+'_val" id="'+data_value.label_name+'" class="form-control number '+data_value.label_name+'[]" value="@val@" data-id = "'+data_value.label_name+'_@add@" autocomplete="off">';
											input     = input.replace('@val@', value);	
											input     = input.replace('@add@', meta.row);	
											return input;
										}				
									}				
								}else{
									return value;	
								}
							}
							//optionally do some type detection here for render function
						});
					};
				}
			}
		}	
	});
	
	var select_all    = '<input type="checkbox" name="select_all" class="select_all">';
	var encKey  = '<?php echo $encKey; ?>';
	$table            = $('#'+table).DataTable( {
		processing: true,
		serverSide: true,
		destroy: true,
		serverMethod: 'post',
		lengthMenu: [[10,25,50,100,500,1000,-1],[10,25,50,100,500,1000,"All"]],
		paging: false,
        // fixedColumns:{leftColumns: 3},
		/*scrollY: 450,*/
        /*scrollX: true,*/ 
		scrollCollapse: true,
		fixedHeader: true,
		pageResize: 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="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 CODE FOR MISC FLITER BASED CONDITION TO SELECT A DATA FROM MONTHLY INPUT TABLE	
				<?php echo $table_map_list;?>	
				var filter_wbs       = $('#fil_wbs_element').val(); 
				data.filter_wbs      = filter_wbs;
				data.action          = action;
				data.table           = table;
				var encData   = encrypt(encKey,{data});
				return { encrypted_data: 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>');
			},
			dataFilter: function (data) {
				var rslt    = JSON.parse(data);
				// calc_inp_arr  = rslt.calc_inp_arr;
                //success call api
                return data;
            },
		},   
		columns: table_arr,
		headerCallback: function (thead, data, start, end, display) {
			$(thead).find('th.earn').css("color", "#f2f2f2",'important');
			$(thead).find('th.deduct').css("color", "red",'important');
		},
		//IF ENTRY STATUS 2 THEN SHOULD ADD A COLOR FOR TR
		rowCallback: function (row, data) {
			var payroll        = parseInt(data.payroll);
			var entry_status   = parseInt(data.entry_status);
			var check_status   = parseInt(data.check_status);

			if(entry_status === 2 && check_status === 0){
				$(row).addClass('add_entry');
			}
			if(entry_status === 2 && check_status === 2){
				$(row).addClass('check_rem_entry');
			}
			if(entry_status === 1 && check_status === 1){
				$(row).addClass('check_app_entry');
			}
		},
		//----------------------- DON'T DELETE ------------------------------------------
		//FOOTER PROCESS START
		"initComplete": function (settings, json) {
			var api = this.api();
			CalculateTableSummary(this);
		},
		"footerCallback": function (row, data, start, end, display) {
			var api = this.api(), data;  
			CalculateTableSummary(this);   
		}
		//FOOTER PROCESS END
		//----------------------- DON'T DELETE ------------------------------------------
	});

	//SERVER SIDE DATATABLE ERROR THROWING CODE START
	$.fn.dataTable.ext.errMode = function ( settings, helpPage, message ) { 
		var newMessage = message.replace('DataTables warning: table id='+table+' - ', '');
		toastr.error(newMessage);
	};
	//SERVER SIDE DATATABLE ERROR THROWING CODE END

	//EXPORT FUNCTION
	var table_option = "<table><tr><td id='"+table+"_export' style='padding:5px 6px;'></td></tr></table>";
	$("#"+table+"_filter").append(table_option);		
	var buttons = new $.fn.dataTable.Buttons($table,{
		buttons: [{
		extend: 'collection',
		text: 'Export',
		buttons: [
			{extend: 'excel',exportOptions: {
				columns: [ function ( idx, data, node ) {
					var thead_class     = $(node).attr('class');
					var check_class     = thead_class.substring(0, thead_class.indexOf(' '));
					var col_name        = $(node).text();
					var not_export_col  = {'Stop Pay': 'Stop Pay','Reason For Hold': 'Reason For Hold','Pre-editor Remarks': 'Pre-editor Remarks','Week Off': 'Week Off',}
					// || $(node).text() === 'Employee Name'
					return idx === 0 || not_export_col[col_name] ? false : true;
				}],
				format: {
            		body: function ( inner, rowidx, colidx, node ) {
						//THIS CONDITION FOR PICKLIST AND AUTOCOMPLETE INPUTS
						if($(node).children("span").text()){
							var label_name  = $(node).children("span").attr("id");
							var value       = $(node).children("span").text();
							if(label_name){
								label_name  = label_name.replace("_val", "");
								if(label_name !== "role"){
									//for position input we add a pay structure amount so we remove it
									if(label_name === 'position'){
										let str_val  = value.indexOf(" ~ ");
										value        = value.substring(0, str_val);
									}
									return value;
								}
							}
						}else//THIS CONDITION FOR DECIMAL AND INT INPUTS
						if($(node).children("input").length > 0) {
							return $(node).children("input").first().val();
                		}else{
							return inner;
						}
              		}
            	}
          	}}
		]
		}]
	}).container().appendTo($('#'+table+'_export'));
	$('.buttons-collection').css('font-size','13px');
	//DR CODE START FOR SAVE AND REFRESH CALCULATION BUTTON ADD START @2AUG22@
	var refresh_btn    = "<button class='btn btn-info btn-xs' id='refresh_btn' style = 'height: 85% !important;margin: 7px 0px 0px 10px !important;' onclick=check_misc_payment('input_table','save')><i class='fa fa-refresh' aria-hidden='true' style = 'font-size:10px;'></i>&nbsp Refresh </button>";
	$("#input_table_wrapper").prepend(refresh_btn);

	var calc_btn       = "<table><tr><td><button class='btn btn-success btn-xs' id='calc_btn' onclick=calc_entry_status()><i class='fa fa-floppy-o' aria-hidden='true' style = 'font-size:10px;'></i> Save & Calculate </button></td></tr></table>";	
	$("#input_table_filter").prepend(calc_btn);
	//DR CODE END FOR SAVE AND REFRESH BUTTON ADD END @2AUG22@

	var clear_btn      = "<table><tr><td><button class='btn btn-success btn-xs' id='clear_btn' onclick=clear_table_data()> Clear All </button></td></tr></table>";	
	$("#input_table_filter").append(clear_btn);

	//DR CODE END FOR SAVE AND REFRESH BUTTON ADD END @2AUG22@

	//DR CODE FOR INPUT ENTRY TYPES BASED COLOR DESCRIPYION SHOW TO END USER @16SEP@
	$("#refresh_btn").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><span>Checker Rejected</span></div>");
	//DR CODE FOR INPUT ENTRY TYPES BASED COLOR DESCRIPYION SHOW TO END USER @16SEP@

	//DR CODE FOR CHECKER TABLE PROCESS 29OCT22 START 
	$("#checker_table_wrapper").prepend("<div id = 'check_square_box'><div id = 'check_pen_square'></div><span>Checker Pending</span><div id = 'check_app_square'></div><span>Checker Approved</span></div>");
	//DR CODE FOR CHECKER TABLE PROCESS 29OCT22 END 

	$("#"+table+"_length").find('button').remove();
	$("#"+table+"_length").css("display", "-webkit-inline-box");
	$('input[type=search]').addClass('form-control input-sm');
}

//FOOTER VALUE UPDATE
function update_table(row, label_name, value) {
    var col_index = row.find('td input[name="' + label_name + '"]').parent().index();
    var total = 0.00;
    $('input[name="' + label_name + '"]').each(function() {
        var val = parseFloat($(this).val()) || 0.00;
        total += val;
    });
    $('#input_table tfoot tr:first th:eq(' + col_index + ')').text(total.toFixed(2));
}

function update_input(closest_row,label_name,value){
	if(label_name){
		label_name      = label_name.replace("_val", "");
	}
	var status          = true;
	var data            = $table.row(closest_row).data();
	var row_id          = data['<?php echo $prime_id; ?>'];
	var process_month   = $('#search_month').val();
	var hid_doj         = data['date_of_joining'];
	var hid_emp_code    = data['employee_code'];
	var payroll         = Number(parseInt(data['payroll']));
	var err_td_id       = $(closest_row).find('#'+label_name+'_val').attr('data-id');
	value               = Number(parseFloat(value).toFixed(1));
	//VALIDATION CHECKING
	if(value < 0){
		dt_call_error(err_td_id,'Please Check',true);
		read_only_input(label_name,err_td_id,true);
		return false;
	}else{
		dt_call_error(err_td_id,'',false);
		read_only_input(label_name,err_td_id,false);
	}
	if(process_month){
		// Encryption
		var encKey  = '<?php echo $encKey; ?>';
		var data    = {prime_id:row_id,hid_doj:hid_doj,hid_process_month:process_month,label_name:label_name,value:value,hid_emp_code:hid_emp_code,payroll:payroll};
		var encData = encrypt(encKey,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.error(rslt.message);	
				}
			}
		});
	}
}

//DR DATATABLE FOOTER FUNCTION START
function CalculateTableSummary(table) {
    try {
		//api object 
        var api         = table.api();
        var intVal      = function (i) {
            return typeof i === 'string' ?
                    i.replace(/[\$,]/g, '') * 1 :
                    typeof i === 'number' ?
                        i : 0;
        };

		var table_id    = $(table).attr("id");
		var visible     = "";
		var input_num   = "";
		var col_len     = api.context[0]["aoColumns"].length;

		var tab_row     = "<tfoot id='"+table_id+"_foot'><tr>";
		var hide_col_id = [];
		//TABLE CREATE PROCESS START
		var i = 1;
		var bg = '';
		var text_align = "";  
		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"];
				input_num   = a["sClass"];
				if(visible){
					if(table_id === "checker_table"){
						text_align = "text-align:center !important;";
					}
					tab_row += "<th style = 'white-space: nowrap !important;max-width: 500px !important;"+text_align+bg+"'></th>";
				}else{
					hide_col_id.push(a["idx"]);
				}
			}else{
				visible     = b["bVisible"];
				input_num   = b["sClass"];
				if(visible){
					if(table_id === "checker_table"){
						text_align = "text-align:center !important;";
					}
					tab_row += "<th style = 'white-space: nowrap !important;max-width: 500px !important;"+text_align+bg+"'></th>";
				}else{
					hide_col_id.push(b["idx"]);
				}
			}
			i++;
		});
		tab_row += "<th style='white-space: nowrap !important;max-width: 500px !important;background-color:#f2f2f2;padding-left:4px;'></th></tr></tfoot>";
		$("#" + table_id + "_foot").remove();
		$(table).append(tab_row);
		//TABLE CREATE PROCESS END
		var un_visible_arr  = [];
		var visible_count   = 0;
		api.columns(".number").eq(0).each(function (index) {
			var column      = api.column(index,{page:'current'});

			var sum         = column.data().reduce(function (a, b) {
				return intVal(a) + intVal(b);
			}, 0);
			//ARRAY FILTER FOR HIDE COLUMN IGNORE IN FOOTER 
			un_visible_arr  = hide_col_id.filter(function checkAdult(id){
				return id <= index;
			});
			visible_count   = un_visible_arr.length;
			foot_col_index  = index - visible_count;

			$("#"+table_id+"_foot tr th").eq(foot_col_index).text('' + sum.toFixed(2));   	
		});
    } catch (e) {
        console.log('Error in CalculateTableSummary');
        console.log(e)
    }
}
//DATATABLE FOOTER FUNCTION END

//CLEAR ALL INPUT TABLE ENTRY DATA LIKE ENTRY STATUS WAS 0 ONLY
function clear_table_data(){
	$("#clear_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
	$("#clear_btn").attr('disabled','disabled');
	var search_month    = $("#search_month").val();
	var personal_code   = $("#personal_code").val();
	var project         = $("#project").val();
	var with_esi        = $("#with_esi").val();
	var with_pf         = $("#with_pf").val();
	var wbs_element     = $("#fil_wbs_element").val();
	$.confirm({
		title: 'Confirm!',
		content: "Are you sure to Clear All Data",
		type: 'red',
		typeAnimated: true,
		buttons: {
			tryAgain: {
				text: 'Ok',
				btnClass: 'btn-red',
				action: function(){
					// Encryption
					var encKey  = '<?php echo $encKey; ?>';
					var data    = {search_month:search_month,personal_code:personal_code,project:project,wbs_element:wbs_element,with_esi:with_esi,with_pf:with_pf};
					var encData = encrypt(encKey,data);
					$.ajax({
						type: 'POST',
						url: '<?php echo site_url("$this->control_name/clear_table_data");?>',
						data:encData,				
						contentType: 'text/plain',
						success: function(data){
							var rslt = JSON.parse(data);
							if(rslt.success){
								toastr.success(rslt.message);
								check_misc_payment('input_table','filter');										
							}else{
								toastr.error(rslt.message);					
							}
							$("#clear_btn").attr('disabled',false);
							$("#clear_btn").html("Clear All");
						}
					});
				}
			},
			close: function(){
				$("#clear_btn").attr('disabled',false);
				$("#clear_btn").html("Clear All");
			}
		}
	});	
}
//Get Table data and pick data
function check_misc_payment(table_name,action){
	var personal_code    = $("#personal_code").val();
	var project          = $("#project").val();
	var search_month     = $("#search_month").val();
	var with_esi         = $("#with_esi").val();
	var with_pf          = $("#with_pf").val();
	var proj_list_select = $("#select2-project-container").text();
	var per_area_select  = $("#select2-personal_code-container").text();
	var esi_select       = $("#select2-with_esi-container").text();
	var pf_select        = $("#select2-with_pf-container").text();
	var proj_list_arr    = proj_list_select.substring(1); 
	var per_area_arr     = per_area_select.substring(1); 
	var esi              = esi_select.substring(1); 
	var pf               = pf_select.substring(1); 
	form_input_hide_show();	
	tab_form_data_append(search_month,per_area_arr,proj_list_arr,esi,pf);	
	//TABLE DATA FETCH
	$('#table_div').show();	
	// Encryption
	var encKey  = '<?php echo $encKey; ?>';
	var data    = {personal_code:personal_code,project:project,search_month:search_month,with_esi:with_esi};
	var encData = encrypt(encKey,data);
	$.ajax({
		type: "POST",
		url: '<?php echo site_url($controller_name . "/check_misc_payment"); ?>',
		data:encData,				
		contentType: 'text/plain',
		success: function (response){
			if(response.success){
				//DR CODE FOR WBS FILTER PICKLIST DATA FETCH 29AUG22  
				fil_wbs_fetch(personal_code,project,search_month);
				table_draw(table_name,action,response.table_head);
			}else{
				toastr.error(response.message);
			}
			$('#search').attr('disabled',false);
			$('#search').html("Submit");
		},
		/*beforeSend: function(){
		  $('#table_div').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
		},*/
		dataType: 'json'
	});
}

//DR FUNCTION FOR ALL SLECTED MI FMS DATA UPDATE TO (ENTRY STATUS(MAKER) 2 TO 1)
function calc_entry_status(){
	var process_month    = $('#search_month').val();
	var personal_code    = $('#personal_code').val();
	var project          = $('#project').val();
	var with_esi         = $('#with_esi').val(); 
	var with_pf          = $('#with_pf').val();
	var filter_wbs       = $('#fil_wbs_element').val();
	var mi_table         = $("#input_table tbody"),
		td_length        = '',
		tr_input         = '',
		tr_class         = '',
		prime_id         = '',
		input_id         = '',
		inp_data_id      = '',
		misc_days_id     = '',
		input_val        = 0,
		misc_days_val    = 0,
		err_count        = 0,
		count            = 1;
	//GENERATING ARRAY FOR UPDATE TABLE INPUT VALUE IN DB !
	var results          = [];
	$('#input_table tr').each(function(){
	    var row          = {};
	    var inputs       = $(this).find('input');
	    // Loop through each input element in the current row
	    inputs.each(function(){
	        var id       = $(this).attr('id');
	        var value    = $(this).val();
	        row[id]      = value; 
	    });
	    results.push(row);
	});
	if(search_month && personal_code && project){
	/*mi_table.find("tr").each(function(index, element) {
			tr_input          = $(element).find('input');
			td_length         = $(element).children('td').length;
			tr_class          = $(element).find('td').closest('tr').attr('class');
			
			var check_class   = '';
			if(tr_class){
				var tr_class_arr   = tr_class.split(" ");
				if(tr_class_arr.length > 1){
					check_class    = tr_class_arr[1];
				}
			}
			var wbs_element   = $(element).find("td").find($("span[id='wbs_element_val']")).text();
			var position      = $(element).find("td").find($("span[id='position_val']")).text();
			//IF ONLY CHECK FOR INPUT ADDED ENTRY LIKE ENTRY STATUS WAS (2)
			if(check_class === "add_entry" || check_class === "check_rem_entry"){
				//ALL NUMBER INPUTS GET FUNCTION 
				$(tr_input).each(function(){
					input_id          = $(this).attr('id');
					inp_data_id       = $(this).attr('data-id');
					if(input_id !== 'prime_misc_input_fms_id'){
						var sts           = 1;	
						if(input_id === 'prime_id'){
							prime_id      = $(element).find("td").find($("input[id='"+input_id+"']")).val();
						}else	
						if(typeof input_id !== "undefined"){
							input_val  = $(element).find("td").find($("input[data-id='"+inp_data_id+"']")).val();
							if(input_val === ''){
								input_val = 0;
							}
							input_val  = Number(parseFloat(input_val).toFixed(1));
							if(input_id === "misc_days_val"){
								misc_days_id   = inp_data_id;
								misc_days_val  = input_val;
							}else{//OTHER NUMBER INPUTS VALIDATIONS
								//IF AND ELSEIF CONDITION FOR STOP PAY AND STOP PAY REASON INPUT RELATED
								if(isNaN(input_val)){//ERROR CONDITION
									sts    = 0;
								}else
								if(input_val < 0){//ERROR CONDITION
									sts    = 0;
								}
								if(sts){//TRUE CONDITION
									dt_call_error(inp_data_id,'',false);
								}else{
									dt_call_error(inp_data_id,'Not a Number',true);
									//ERROR INPUT FOCUS START
										if(count === 1){
										$("input[data-id='"+inp_data_id+"']").focus();
										count++;
										//ERROR INPUT FOCUS END
										err_count++;
									}
								}
							}
						}
					}
				});	
				if(misc_days_val > 31){
					dt_call_error(misc_days_id,'Invalid',true);
					//ERROR INPUT FOCUS START
					if(count === 1){
						$("input[data-id='"+misc_days_id+"']").focus();
						count++;
					}
					//ERROR INPUT FOCUS END
					err_count++;
				}
			}
		})*/
		// if(!err_count){
			// Encryption
			var encKey  = '<?php echo $encKey; ?>';
			var data    = {process_month:process_month,personal_code:personal_code,project:project,with_esi:with_esi,with_pf:with_pf,filter_wbs:filter_wbs,results:results};
			var encData = encrypt(encKey,data);
			$.ajax({
				type: 'POST',
				url: '<?php echo site_url("$this->control_name/calc_entry_status");?>',
				data:encData,				
				contentType: 'text/plain',
				beforeSend: function () {
					$("#calc_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
					$('#calc_btn').attr('disabled','disabled');
					$('#calc_view').html('');	
				},
				success: function(data){
					var rslt        = JSON.parse(data);
					if(rslt.success){
						var export_pick = rslt.export_pick;
						toastr.success(rslt.message);
						if(rslt.table_info){
						$('#calc_view').html(rslt.table_info);	
						$('#calc_view').show();	
						$table    = $('#calc_table').DataTable({		
							destroy: true,
							paging: false,
							autoWidth: true,
        					fixedColumns:{leftColumns: 3},
							// scrollY: 500,
							// scrollX: true,	
							// scrollCollapse: true,
							fixedHeader: true,
							//DEFAUT SORTING FALSE
							bSort: false,
							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>'
							}
						});		
						//EXPORT FUNCTION
						var table_option = "<table><tr><td id='calc_export' style='padding:5px 6px;'></td></tr></table>";
						$("#calc_table_filter").append(table_option);		
						var buttons = new $.fn.dataTable.Buttons($table,{
							buttons: [{
							extend: 'collection',
							text: 'Export',
							buttons: [
								{extend: 'excel',exportOptions: {
									columns: [ function ( idx, data, node ) {
										var thead_class     = $(node).attr('class');
										var check_class     = thead_class.substring(0, thead_class.indexOf(' '));
										var col_name        = $(node).text();
										var not_export_col  = {'Category': 'Category','Stop Pay': 'Stop Pay','Reason For Hold': 'Reason For Hold','Pre-editor Remarks': 'Pre-editor Remarks','w_off': 'w_off',}
										// || $(node).text() === 'Employee Name'
										return idx === 0 || not_export_col[col_name] ? false : true;
									}],
									format: {
										body: function ( inner, rowidx, colidx, node ) {
											//THIS CONDITION FOR DECIMAL AND INT INPUTS
											if($(node).children("input").length > 0) {
												return $(node).children("input").first().val();
											}else{
												return inner;
											}
										}
									}
								}}
							]
							}]
						}).container().appendTo($('#calc_export'));
						$('.buttons-collection').css('font-size','13px');
						var save_btn     = "<button class='btn btn-success btn-xs' id='save_btn' style = 'height: 85% !important;width: 33% !important;margin: 8px 15px 0px 0px !important;' onclick=save_entry_status();><i class='fa fa-floppy-o' aria-hidden='true' style = 'font-size:10px;'></i>&nbsp Submit </button>";
						$("#calc_table_filter").prepend(save_btn);	
						$('input[type=search],select[name="calc_table_length"]').addClass('form-control input-sm');
					}
					}else{
						// #calc_view,
						$('#calc_table').hide();	
						$('#calc_view').html(rslt.table_info);	
						toastr.warning(rslt.message);				
					}
					//TAP ACTIVE CODE
					$('.nav-tabs a[href="#calc_view"]').tab('show');
					// $("#calc_btn").html("Calculate");
					$('#calc_btn').attr('disabled',false);
				}
			});
		// }
	}
}
//DR FUNCTION FOR ALL SLECTED MI FMS DATA UPDATE TO (ENTRY STATUS(MAKER) 2 TO 1)
function save_entry_status(){
	let process_month  = $('#search_month').val();
	let personal_code  = $('#personal_code').val();
	let project        = $('#project').val();
	let filter_wbs     = $('#fil_wbs_element').val(); 
	var err_count      = 0;
	var prime_id_arr   = [];
	if(search_month && personal_code && project){
		var mi_table       = $("#calc_table tbody");
		mi_table.find("tr").each(function(index, element) {
			var prime_id   = $(element).find("td").find($("input[id='calc_check']")).val();
			if(prime_id !== undefined){
				prime_id_arr.push(prime_id);
			}
		});

		if(!err_count){
			// Encryption
			var encKey  = '<?php echo $encKey; ?>';
			var data    = {process_month:process_month,personal_code:personal_code,project:project,filter_wbs:filter_wbs,prime_id_arr:prime_id_arr};
			var encData = encrypt(encKey,data);
			$.ajax({
				type: 'POST',
				url: '<?php echo site_url("$this->control_name/save_entry_status");?>',
				data:encData,				
				contentType: 'text/plain',
				beforeSend: function () {
					$("#save_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
					$('#save_btn').attr('disabled','disabled');
				},
				success: function(data){
					var rslt = JSON.parse(data);
					if(rslt.success){
						check_misc_payment('checker_table','');
						toastr.success(rslt.message);			
					}else{
						toastr.warning(rslt.message);				
					}
					//TAP ACTIVE CODE
					$('.nav-tabs a[href="#checker_view"]').tab('show');
					$("#save_btn").html("Submit");
					$('#save_btn').attr('disabled',false);
				}
			});
		}
	}
}

//form inputs and form table hide and show
function form_input_hide_show(){
	$("#toolbar").hide();
	$("#form_div,#wbs_element_div,#show_form_div").show();
}
//function for form input data append to table view
function tab_form_data_append(search_month,per_area_arr,proj_list_arr,esi,pf){
	//FIRST REMOVE AND APPEND
	$('#personal_div span[id^="tab_personal_code"],#project_div span[id^="tab_project"],#month_div span[id^="tab_search_month"],#esi_div span[id^="tab_with_esi"],#pf_div span[id^="tab_with_pf"]').remove();

	$("#personal_div").append("<span id = 'tab_personal_code'>"+per_area_arr+"</span>");
	$("#project_div").append("<span id = 'tab_project'>"+proj_list_arr+"</span>");
	$("#month_div").append("<span id = 'tab_search_month'>"+search_month+"</span>");
	$("#esi_div").append("<span id = 'tab_with_esi'>"+esi+"</span>");
	$("#pf_div").append("<span id = 'tab_with_pf'>"+pf+"</span>");
}

function close_formfun(){
	check_misc_payment('input_table',"save");	
	$('.select2').select2({placeholder: '---- Select ----',});
}

//function select call for using select2 based dropdown list
function select_call(){
	setTimeout(function(){ 
		$('.select2').select2({allowClear: true,placeholder: "--- Select ---",});
		$('.select2-tags').select2({
			allowClear: true,
			tags: true,
			placeholder: "--- Select ---",
			tokenSeparators: [',']
		});
		$(".select2_user").select2({
			placeholder: "--- Select ---",
			allowClear: true,
			tags: true
		});
	}, 500);
}

//DR CODE START FOR TABLE ERROR THROUGH CHECK FUNCTION @1SEP22@
function dt_call_error(attr_id,msg,type){
	if(type){ 
		$("input[data-id = '"+attr_id+"']").next('span').remove();     	     	
		$("input[data-id = '"+attr_id+"']").after("<span class='"+attr_id+" error'></span>");   	
		$("input[data-id = '"+attr_id+"']").closest('tr').find('span.'+attr_id).text(msg);
	}else{
		$("input[data-id = '"+attr_id+"']").removeClass('error');
	   	$("input[data-id = '"+attr_id+"']").next('span').remove();    	
	}	
}
//DR CODE END FOR TABLE ERROR THROUGH CHECK FUNCTION @1SEP22@

//IF TABLE ERROR THROUGH WHEN OTHER INPUTS ARE ADD TO READONLY DR @24SEP22@
function read_only_input(label_name,err_td_id,status){
	var tr_input     = $('#input_table tbody').find($("input[data-id='"+err_td_id+"']")).closest('tr').find('input');
	$(tr_input).each(function(){
		var data_id  = $(this).attr('data-id');
		if(data_id !== err_td_id && data_id !== undefined){
			if(status){
				$(this).attr("readonly", "readonly");
			}else{
				$(this).attr("readonly", false);
			}
		}
	});
}
//IF TABLE ERROR THROUGH WHEN OTHER INOUTS ARE ADD TO READONLY DR @24SEP22@
//TABLE ERROR FUNCTION
function call_error(attr_id,msg,type){
	if(type){ 
		$('#'+attr_id).next('span').remove();     	     	
		$('#'+attr_id).after("<span class='"+attr_id+" error'></span>");   	
		$('#'+attr_id).closest('tr').find('span.'+attr_id).text(msg);
	}else{
		$('#'+attr_id).removeClass('error');
	   	$('#'+attr_id).next('span').remove();    	
	}	
}
//TABLE ERROR FUNCTION
</script>
<?php $this->load->view("partial/footer"); ?>