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/arrear_process/manage.php
<?php 
	$this->load->view("partial/header"); 
	$page_name      = ucwords(str_replace("_"," ",$controller_name));
	/* PAGE TITLE AND BUTTONS- START */
	$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>";
	if((int)$this->logged_user_role === 3 || (int)$this->logged_user_role === 1){
		$btn  = "Process";
	}else{
		$btn  = "View";
	}
?>
<style>
	.dt-buttons{
		float:right !important;margin:10px
	}
	.display th, .display td {
		white-space: nowrap !important;
		max-width: 500px !important;
	}
	#arr_process_table tr td:nth-child(2){
		position         : sticky !important;
		left             : 0px;
		background-color : #ffffff;
	}
	#arr_process_table tr td:nth-child(3){
		position         : sticky !important;
		left             : 49px;
		background-color : #ffffff;
	}
	#arr_process_table tr td:nth-child(4){
		position         : sticky !important;
		left             : 157px;
		background-color : #ffffff;
	}
	table.dataTable tr th:nth-child(1){
		position         : sticky !important;
		left             : 0px;
	}
	table.dataTable tr th:nth-child(2){
		position         : sticky !important;
		left             : 49px;
	}       
	table.dataTable tr th:nth-child(3){
		position         : sticky !important;
		left             : 157px;
	}
	table.dataTable tr td:nth-child(1),table.dataTable tr td:nth-child(2) {
		background-color: #ffffff;
	}	
</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" id="arrear_process">
		<?php echo form_open("$controller_name/arrear_process",array('id'=>'arrear_process_form','autocomplete'=>'off')); ?>
		<div class="form-group">
			<?php
				$form_label      = form_label('Project Id', 'project_id', array('class' => "control-label required"));
				$form_input   = "<input list='list_project_id' name='hid_project_id' value = '' class='form-control' placeholder='Search Project' autocomplete='off'><datalist id='list_project_id'>$project_list</datalist>";
				$hidden_input = form_input( array("name"=>'project_id', "id"=>'project_id',"value"=>'0',"type"=>"hidden"));
				$datalist_validate .= 'input[name="hid_project_id"],';
				echo "$form_label $hidden_input $form_input";

			?>
		</div>
		<div class="form-group">
			<?php
				$form_label   = form_label('From Wbs', 'from_wbs', array('class' => "control-label required"));
				$form_input   = "<input list='list_from_wbs' name='hid_from_wbs' value = '' class='form-control' placeholder='Search Wbs' autocomplete='off'><datalist id='list_from_wbs'></datalist>";
				$hidden_input = form_input( array("name"=>'from_wbs', "id"=>'from_wbs',"value"=>'0',"type"=>"hidden"));

				$datalist_validate .= 'input[name="hid_from_wbs"],';
				echo "$form_label $hidden_input $form_input";
			?>
		</div>
		<div class="form-group">
			<?php
				$form_label   = form_label('To Wbs', 'to_wbs', array('class' => "control-label required"));
				$form_input   = "<input list='list_to_wbs' name='hid_to_wbs' value = '' class='form-control' placeholder='Search Wbs' autocomplete='off'><datalist id='list_to_wbs'></datalist>";
				$hidden_input = form_input( array("name"=>'to_wbs', "id"=>'to_wbs',"value"=>'0',"type"=>"hidden"));
				$datalist_validate .= 'input[name="hid_to_wbs"],';
				echo "$form_label $hidden_input $form_input";
			?>
		</div>
		<div class="form-group">
			<?php	
				$form_label   = form_label('Month', 'month', array('class' => "control-label required"));
				$form_input   = "<input list='list_month' name='hid_month' value = '' class='form-control' placeholder=' Month' autocomplete='off'><datalist id='list_month'></datalist>";
				$hidden_input = form_input( array("name"=>'month', "id"=>'month',"value"=>'0',"type"=>"hidden"));
				$datalist_validate .= 'input[name="hid_month"],';
				echo "$form_label $hidden_input $form_input";
			?>
		</div> 
		<div class="form-group">
			<?php	
				$form_label      = form_label('Position', 'position', array('class' => "control-label"));
				$form_input   = "<input list='list_position' name='hid_position' value = '' class='form-control' placeholder='Search Position' autocomplete='off'><datalist id='list_position'></datalist>";
				$hidden_input = form_input( array("name"=>'position', "id"=>'position',"value"=>'0',"type"=>"hidden"));
				$datalist_validate .= 'input[name="hid_position"]';
				echo "$form_label $hidden_input $form_input";
			?>
		</div>
		<div class="form-group">
				<label>
					<input name='suppress_zero' id='suppress' type="checkbox" checked>Suppress Zero
				</label>				
		</div>
		<div class="form-group">
			<button class='btn btn-primary btn-xs' id="process"><i class="fa fa-paper-plane" aria-hidden="true" style='margin-right:7px;'></i> <?php echo $btn; ?> </button>
			<!-- <i class='fa fa-send-o' aria-hidden='true'></i> -->
		</div>
		<?php 
			echo form_close(); 
		?>
	</div>
</div>
<!-- TABLE DIV ----> 
<!-- style = "overflow-x: scroll;" -->
<div class="col-md-12" style="margin-bottom: 10px;" id = "arrear_tab_div"></div>

<script type="text/javascript">
$(document).ready(function (){	
	$('.modal-dialog').draggable({ handle: ".modal-header" });

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

	//SELECT2 FUNCTION
	$('.select2').select2({
		placeholder: '---- Select ----',
		allowClear: true,
	});
	//PROJECT ID BASED WBS OPTION -> NB [19AUG23]
	$(document).on('change','<?php echo $datalist_validate ?>',function(e){
		$("#arrear_tab_div").html('');
		var selected_value = $(this).val();
		var list           = $(this).attr('list');
		if(list === "list_project_id"){
			var selected_val = selected_value.split(" ~ ");
			var project_id   = selected_val[0];
			if(project_id){
				// Encryption
				var encKey  = '<?php echo $encKey; ?>';
				var data    = {project_id:project_id};
				var encData = encrypt(encKey,data);
				$.ajax({
					url     : '<?php echo site_url("$this->control_name/get_wbs");?>',
					type    : "POST",
					data:encData,				
					contentType: 'text/plain',
					success : function(data){
						var rslt   = JSON.parse(data);
						$("#list_to_wbs,#list_from_wbs").html('');
						if(rslt.success){
							$.each(rslt.wbs, function(i, value){
								$("#list_to_wbs,#list_from_wbs").append("<option data-value='"+value.wbs_id+"' value='"+$.trim(value.wbs_id)+"' >"+$.trim(value.wbs_desc)+"</option>");
							});
						}else{
							toastr.error(rslt.message);
						}
					},
            		beforeSend: function(){
            		    $("#list_from_wbs").attr('disabled','disabled');
            		    $("#list_to_wbs").attr('disabled','disabled');
            		    $("#span_from_wbs").remove('');
            		    $("#span_to_wbs").remove('');
            		    $("#list_from_wbs").parent().append('<span id="span_from_wbs" style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
            		    $("#list_to_wbs").parent().append('<span id="span_to_wbs" style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
            		},
            		complete: function() {                        
            		    $("#list_from_wbs").attr('disabled',false);
            		    $("#list_to_wbs").attr('disabled',false);
            		    $("#span_from_wbs").remove('');
            		    $("#span_to_wbs").remove('');
            		}
				});
			}
		}
	});
	//PROJECT,WBS BASED MONTH OPTIONS !
	$(document).on('change', 'input[name="hid_to_wbs"], input[name="hid_from_wbs"]', function(e) {
		var to_wbs     = $(this).val();
		var project_id = $("#project_id").val();
		var from_wbs   = $("#from_wbs").val();
		if(project_id && to_wbs && from_wbs){
			// Encryption
			var encKey  = '<?php echo $encKey; ?>';
			var data    = {project_id:project_id,from_wbs:from_wbs,to_wbs:to_wbs};
			var encData = encrypt(encKey,data);
			$.ajax({
				url     : '<?php echo site_url("$this->control_name/get_month");?>',
				type    : "POST",
				data:encData,				
				contentType: 'text/plain',
				success : function(data){
					var rslt = JSON.parse(data);
					$("#list_month").html('');
					if(rslt.success){
						var ss = [];
						$.each(rslt.wbs, function(i, value){
							var s = value.arr_from+"-"+value.arr_to;		
							if(jQuery.inArray(s, ss) === -1){
								$("#list_month").append("<option data-value='"+value.prime_arr_info_id+"' value='"+ value.arr_from + " To " + value.arr_to +"'>"+ value.arr_from + " To " + value.arr_to +"</option>");
							}								 
							ss.push(s);
						});
					}else{
						toastr.error(rslt.message);
					}
				},
                beforeSend: function(){
                    $("#list_month").attr('disabled','disabled');
                    $("#span_month").remove('');
                    $("#list_month").parent().append('<span id="span_month'+'" style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
                },
                complete: function() {                        
                    $("#list_month").attr('disabled',false);
                    $("#span_month").remove('');
                }
			});
		}
	});

	$(document).on("change", 'input[name="hid_month"]', function(e) {
	    var data_value = $('#list_month option[value="' + $(this).val() + '"]');
	    var prime_info = data_value.attr('data-value');
		$("#list_position").html("");
		if(project_id && from_wbs && to_wbs && month){
			// Encryption
			var encKey  = '<?php echo $encKey; ?>';
			var data    = {prime_info:prime_info};
			var encData = encrypt(encKey,data);
			$.ajax({
				url     : '<?php echo site_url("$this->control_name/get_position");?>',
				type    : "POST",
				data:encData,				
				contentType: 'text/plain',
				success : function(data){
					var rslt = JSON.parse(data);
					if(rslt.success){
						$("#list_position").append(rslt.position_list);
					}
				},
                beforeSend: function(){
                    $("#list_position").attr('disabled','disabled');
                    $("#span_position").remove('');
                    $("#list_position").parent().append('<span id="span_position" style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
                },
                complete: function() {                        
                    $("#list_position").attr('disabled',false);
                    $("#span_position").remove('');
                }
			});
		}
	});

	// //Excel Data Paste
	$(document).on('paste', 'table input', function(e){
		var $this          = $(this);
		var table_id       = $this.closest('table').attr('id');
		var paste_allowed  = 30;
		$.each(e.originalEvent.clipboardData.items, function(i, v){
			if (v.type === 'text/plain'){
				v.getAsString(function(text){
					var x    = $this.closest('td').index()-1,
					y    = $this.closest('tr').index()+1,
					obj  = {};
					text = text.trim('\r\n');
					var paste_count = text.split('\r\n').length;
					if(paste_count > paste_allowed){
						toastr.error('You can only paste up to ' + paste_allowed + ' rows.');
                    	return; 
                	}
					$.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;
							//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');
								td_input.val(v3).trigger('input');
							}
						});
					});
				});
			}
		});
	  	return false;
	});

	//datalist clear button on select
	$(document).on('change', '<?php echo $datalist_validate ?>', function(e){
	  	var selected_value = $(this).val();
	  	var list = $(this).attr('list');
	  	var attr_id = list.replace('list_', '');
	  	$('#' + attr_id).val('');
	  	$('#' + attr_id + '_div').remove();
	  	// Find the selected option and replace the previously selected option
	  	$('#' + list + ' option').each(function() {
	     	if ($(this).val() === selected_value) {
	          	var data_text = $(this).text();
	         	var data_value = $(this).attr('data-value');
	          	if (data_value) {
	            	$('#' + attr_id).val(data_value);
	              	var words = data_text.split(' ');
	              	var text = '';
	              	for (var i = 0; i < words.length; i++) {
	                  	if ((text + words[i]).length > 28) {
	                      text += '...';
	                      break;
	                  	}
	                  	text += words[i] + ' ';
	              	}
	              	// Replace the selected option
	              	var datalist_span = '<div class="datalist_name">';
	              	datalist_span += '<span id="' + attr_id + '_div" class="datalist_span">';
	              	datalist_span += '<b style="cursor:pointer;" title="' + data_text + '">' + text + '</b>';
	              	datalist_span += ' <a class="clear-btn-data" style="cursor:pointer;font-size:11px" onClick="clear_btn(\'' + attr_id + '\')"><i class="fa fa-remove" aria-hidden="true"></i></a>';
		            datalist_span += '</span></div>';
		            $("#" + attr_id).parent().append(datalist_span);
		            return false; // Exit the loop after replacing the selected option
		        }
		    }
		});
	});

	// FOR TAB PASTE!
	$(document).on('paste','[name="hid_from_wbs"],[name="hid_to_wbs"],[name="hid_project_id"],[name="hid_month"],[name="hid_position"]', function (e){
        var pastedData  = e.originalEvent.clipboardData.getData('text').trim();
    	var list        = $(this).attr('list');
    	var attr_id     = list.replace("list_","");
    	if(pastedData){
        	$('#'+attr_id).val(pastedData);
       	} 
    });

	//SERACH ENTRY TAB INPUT FORM SUBMIT FUNCTION 11OCT22 START
	$("#arrear_process_form").submit(function (e) {
		e.preventDefault();
		$("#arr_process_table").parent().show();
		$("#arrear_tab_div").show();
		arrear_process_fun("process");
  	});
	//select all checkbox
	$(document).on('click', '.select_all', function() {
    if (this.checked) {
		$('.sel_chkbox').prop('checked', true);
    } else {
		$('.sel_chkbox').prop('checked', false);
    }
  });
});
//ARREAR SERACH ENTRY TAB INPUT FORM SUBMIT FUNCTION 11OCT22 START
function arrear_process_fun(process_type){
	var id             = (process_type === "process") ? "process" : (process_type = 'reprocess', "Reprocess");
	var project_id     = $('#project_id').val();
	var from_wbs       = $('#from_wbs').val();
	var to_wbs         = $('#to_wbs').val();
	var position       = $('#position').val();
	var month          = $('#month').val();
	var $suppress      = ($("#suppress").is(":checked")) ? 1 : 0;
	if(project_id && from_wbs && to_wbs && month){
		// Encryption
		var encKey  = '<?php echo $encKey; ?>';
		var data    = {project_id:project_id,from_wbs:from_wbs,to_wbs:to_wbs,position:position,month:month,process_type:process_type};
		var encData = encrypt(encKey,data);
		$.ajax({
			type :  "POST",
			url  :  '<?php echo site_url("$this->control_name/arrear_process");?>',
			data:encData,				
			contentType: 'text/plain',
			beforeSend: function () {
				$("#"+id).html("<i class='fa fa-spinner fa-spin'></i> Processing...");
				$('#'+id).attr('disabled','disabled');
			},
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.success){
					if(parseInt(rslt.process_mode) === 2){
						toastr.info(rslt.message);
					}else{
						toastr.success(rslt.message);
					}
					$("#arrear_tab_div").html('')
					$("#arrear_tab_div").html(rslt.table_info);
					// Get the table element after it has been added to the DOM
					const tbl_name = document.getElementById('arr_process_table');
					// Remove zero-value columns from the table
					if($suppress === 1){
						removeZeroValueColumns(tbl_name);
					}				
					datatable_call();			
				}else{
					$("#arrear_tab_div").html(rslt.table_info);
					toastr.error(rslt.message);
				}
				$('#'+id).attr('disabled',false);
				$('#maker_btn').attr('disabled',false); 
				if(id === "process"){
					$("#"+id).html("<i class='fa fa-paper-plane' aria-hidden='true' style='margin-right:7px;'></i>Process");
				}else{
					$("#"+id).html('<i class="fa fa-repeat" aria-hidden="true" style="margin-right:7px;"></i> Reprocess');
				}				
			}
		});	
	}else{
		toastr.error('Please Select All Mandatory Fields.!');
		return false;
	}
}

function reprocess_fun(){
	$.confirm({
		content: 'Are you sure you want to proceed?',
	    escapeKey: 'Yes',
	    buttons: {
	        Yes: function(){
					arrear_process_fun();
	        	},
	        No: function(){
				$(function(){
					$('.select2').select2({
						placeholder: '---- Select ----',
						allowClear: true,
						dropdownParent: $('.modal-dialog')
					});
					$('.select2-tags').select2({
						tags: true,
						tokenSeparators: [',']
					});
				});
	        }
	    }
	});
};

function approve_record(status){
	$.confirm({
		content  : 'Are you sure you want to approve these records?',
	    escapeKey: 'Yes',
	    buttons  : {
	        Yes:function(){
				checker_fun(status);
	        },
	        No:function(){
				$(function(){
					$('.select2').select2({
						placeholder: '---- Select ----',
						allowClear: true,
						dropdownParent: $('.modal-dialog')
					});
					$('.select2-tags').select2({
						tags: true,
						tokenSeparators: [',']
					});
				});
	        }
	    }
	});
};


function checker_fun(status){
	var month          = $('#month').val();
	var project_id     = $("#project_id").val();
	var from_wbs       = $("#from_wbs").val();
	var to_wbs         = $("#to_wbs").val();
	var position       = $("#position").val();
	var prime_ids 	   = []; 
	var all_ids   	   = [];
	var inputElements  = document.getElementsByClassName('sel_chkbox');
	for(var i = 0; i < inputElements.length; i++){
		all_ids.push(inputElements[i].value);
		if(inputElements[i].checked){
			prime_ids.push(inputElements[i].value); 
		}
	}
	if(prime_ids.length === 0){
		toastr.error("please select Checkbox...!");
		return false;
	}
	// Encryption
	var encKey  = '<?php echo $encKey; ?>';
	var data    = {prime_ids:prime_ids,all_ids:all_ids,month:month,status:status,project_id:project_id,from_wbs:from_wbs,to_wbs:to_wbs,position:position};
	var encData = encrypt(encKey,data);
	$.ajax({
		type :  "POST",
		url  :  '<?php echo site_url("$this->control_name/checker_fun");?>',
		data:encData,				
		contentType: 'text/plain',
		beforeSend : function(){
		    var btn = status === 1 ? $('#approve_btn') : $('#reject_btn');
		    btn.html("<i class='fa fa-spinner fa-spin'></i> Processing...").attr('disabled','disabled');
		},
		success:function(data){
			var rslt = JSON.parse(data);
			$("#arrear_tab_div").html('');
			$("#arrear_tab_div").html(rslt.table_info);
		    if(rslt.success){
				toastr.success(rslt.message);				
		    }else{
		        toastr.error(rslt.message);
		    }				
		    removeZeroValueColumns(document.getElementById('arr_process_table')); //remove zero-value
			datatable_call();
			var btn = status === 1 ? $('#approve_btn') : $('#reject_btn');
			btn.attr('disabled', false).html(status === 1 ? '<i class="fa fa-check" aria-hidden="true" style="margin-right:7px;"></i>Approve' : '<i class="fa fa-ban" aria-hidden="true" style="margin-right:7px;"></i>Reject All');
		}
	});
}

function entry_status_fun(){
	var month          = $('#month').val();
	var prime_ids      = []; // Declare the prime_ids variable here
	var all_ids        = [];	
	var project_id     = $("#project_id").val();
	var from_wbs       = $("#from_wbs").val();
	var to_wbs         = $("#to_wbs").val();
	var position       = $("#position").val();
	var inputElements  = document.getElementsByClassName('sel_chkbox');
	for (var i = 0; i < inputElements.length; i++) {
		all_ids.push(inputElements[i].value);
		if (inputElements[i].checked) {
			prime_ids.push(inputElements[i].value); // Add the value to the array
		}
	}
	if(prime_ids.length === 0){
		toastr.error("please select Checkbox...!");
		return false;
	}
	// Encryption
	var encKey  = '<?php echo $encKey; ?>';
	var data    = {prime_ids:prime_ids,all_ids:all_ids,month:month,project_id:project_id,from_wbs:from_wbs,to_wbs:to_wbs,position:position};
	var encData = encrypt(encKey,data);
	$.ajax({
		type: "POST",
		url : '<?php echo site_url("$this->control_name/update_entry_status");?>',
		data:encData,				
		contentType: 'text/plain',
		beforeSend : function () {
			$("#maker_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#maker_btn').attr('disabled','disabled');
		},
		success : function(data){
		    var rslt = JSON.parse(data);
		    $("#arrear_tab_div").html('');
		    switch(rslt.success){
		        case 'TRUE':
		            toastr.success(rslt.message);
		            $("#arrear_tab_div").html(rslt.table_data);
		            removeZeroValueColumns(document.getElementById('arr_process_table'));
		            datatable_call();
		            break;
		        case 'WARNING':
		            toastr.warning(rslt.message);
		            break;
		        default:
		            toastr.error(rslt.message);
		            break;
		    }
		    $('#maker_btn').attr('disabled', false).html('<i class="fa fa-paper-plane" aria-hidden="true" style="margin-right:7px;"></i>Submit');
		    // Not sure if these lines are needed
		    // $('.sel_chkbox').prop('checked', false); 
		}
	});
}

//FUNCTION FOR UPDATE TABLE (TABLE CHANGE INPUT)
function table_update(trans_id,value,id,arr_trans_id,exist_val,tr_id){
	// $('#maker_btn').attr('disabled','disabled');
	if(exist_val >= value){
		call_error(id,'',false); 
		// Encryption
		var encKey  = '<?php echo $encKey; ?>';
		var data    = {trans_id:trans_id,value:value,arr_trans_id:arr_trans_id};
		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){
					var submit_to_maker_btn = '<button id="Reprocess" onclick ="reprocess_fun()" class="btn btn-info btn-xs"><i class="fa fa-paper-plane" aria-hidden="true" style="margin-right:7px;"></i>Reprocess</button>';
					// Replace the content of the #maker_btn button inside .dt-buttons with the new button
					$("#maker_btn").replaceWith(submit_to_maker_btn);					
					$('#' + tr_id).css('background-color', '#D5F4E6');
					var table = $('#arr_process_table');		
					table.DataTable().draw();
					$("#"+id).focus();
				}else{
					toastr.error(rslt.message);
				}
			}
		});
	}else{
		// call_error(id,'value Should be Less than exist value',true); 
		$("#"+id).val(exist_val);
		// table_update(trans_id,exist_val,id,arr_trans_id,exist_val,tr_id)

	}	
}
function call_error(attr_id,msg,type){
  if(type){ 
    $('#'+attr_id).addClass('error');
    $('#'+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();     
  } 
}
function update_arr_adv(arr_id,arr_val,input_id,tr_id){
	var month         = $('#month').val();
	var prime_ids     = []; // Declare the prime_ids variable here
	var all_ids       = [];
	var inputElements = document.getElementsByClassName('sel_chkbox');
	for(var i = 0; i < inputElements.length; i++){
		all_ids.push(inputElements[i].value);
		if(inputElements[i].checked){
			prime_ids.push(inputElements[i].value); // Add the value to the array
		}
	}
	// Encryption
	var encKey  = '<?php echo $encKey; ?>';
	var data    = {arr_id:arr_id,arr_val:arr_val,all_ids:all_ids,month:month};
	var encData = encrypt(encKey,data);
	$.ajax({
		type   : "POST",
		url    : '<?php echo site_url("$this->control_name/update_arr_adv");?>',
		data:encData,				
		contentType: 'text/plain',
		success: function(data){
			var rslt = JSON.parse(data);
			if(rslt.success){
				var submit_to_maker_btn = '<button id="Reprocess" onclick ="reprocess_fun()" class="btn btn-info btn-xs"><i class="fa fa-paper-plane" aria-hidden="true" style="margin-right:7px;"></i>Reprocess</button>';
				$("#maker_btn").replaceWith(submit_to_maker_btn);
				$('#' + tr_id).css('background-color', '#D5F4E6');
				var table = $('#arr_process_table');		
				table.DataTable().draw();
				$("#"+input_id).focus();
				// toastr.success(rslt.message);
			}else{
				// toastr.error(rslt.message);
			}
		}
	});
}

function datatable_call(){
	var table = $('#arr_process_table').DataTable({
		scrollX        : true,
		scrollY        : '250px',
		dom            : 'Bfrtip',
		"bPaginate"    : false,
		fixedHeader    : true,
		language:{
			lengthMenu : "<span style='margin-top:8px;margin-left:10px;'>Display</span> _MENU_ <span style='margin-top:8px;'>Records</span>",
			searchPlaceholder: "Search records",
			search     : "",
			processing : '<div style="text-align: center; padding: 50px;color:#4b6fa2;z-index:999999999;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</div>',
		},
		buttons: [{
			extend     : 'collection',
			text       : 'Export',
			buttons    : [
				{
					extend        : 'excel',
					filename      : 'Arrear Process',
					exportOptions : {
						columns   : ':not(:first-child)',
						format    : {
							body  : function (inner, rowidx, colidx, node) {
								if($(node).hasClass('exclude-export')){
            						return '';
        						}	
								if ($(node).children("input").length > 0) {
									return $(node).children("input").first().val();
								} else {
									return inner;
								}
							}
						}
					}
				}
			]
		}]
	});	
    $('input[type=search]').addClass('form-control input-sm');
    $("select[name='table_length']" ).addClass('form-control input-sm');
	if(<?php echo $this->logged_user_role; ?> === 6 ){					
		var approve_btn    = '<button id="approve_btn" onclick = approve_record(1) class="btn btn-success btn-xs" style="margin-right:5px;float:left;margin-top:6px;"><i class="fa fa-check" aria-hidden="true" style="margin-right:7px;"></i>Approve</button><button id="reject_btn" onclick =checker_fun(2) class="btn btn-warning btn-xs" style="margin-right:5px;float:left;margin-top:6px;"><i class="fa fa-ban" aria-hidden="true" style="margin-right:7px;"></i>Reject All</button>';
		$("#arr_process_table_filter").before(approve_btn);
	}
	if(<?php echo $this->logged_user_role; ?> === 3 ){					
		var submit_to_maker_btn    = '<button id="maker_btn" onclick =entry_status_fun() class="btn btn-info btn-xs" style="margin-right:5px;float:left !important;margin-top:6px;"><i class="fa fa-paper-plane" aria-hidden="true" style="margin-right:7px;"></i>Submit to Checker</button>';
		$("#arr_process_table_filter").before(submit_to_maker_btn);
	}
}

//Call error for input wise
function call_error(attr_id,msg,type){
  if(type){ 
    $('#'+attr_id).addClass('error');
    $('#'+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();     
  } 
}
//CLEAR 
function clear_btn(attr_id){
	$("#arrear_tab_div").html('');
	if(attr_id === 'wbs_element'){                
		$('#network_id').val('');
	}
	else
	if(attr_id === 'project_id'){
		$('#'+attr_id+'_div,#from_wbs_div,#to_wbs_div,#month_div,#position_div').remove();
		$('#'+attr_id).val('');
		$('#from_wbs,#to_wbs,#month,#position').val('');
		$('input[name="hid_'+attr_id+'"],input[name="hid_from_wbs"],input[name="hid_to_wbs"],input[name="hid_month"],input[name="hid_position"]').val('');
	}else
	if(attr_id === 'from_wbs'){
		$('#'+attr_id+'_div,#to_wbs_div,#month_div,#position_div').remove();
		$('#'+attr_id).val('');
		$('#to_wbs,#month,#position').val('');
		$('input[name="hid_'+attr_id+'"],input[name="hid_to_wbs"],input[name="hid_month"],input[name="hid_position"]').val('');
	}else
	if(attr_id === 'to_wbs'){
		$('#'+attr_id+'_div,#month_div,#position_div').remove();
		$('#'+attr_id).val('');
		$('#month,#position').val('');
		$('input[name="hid_'+attr_id+'"],input[name="hid_month"],input[name="hid_position"]').val('');
	}else
	if(attr_id === 'month'){
		$('#'+attr_id+'_div,#position_div,#position_div').remove();
		$('#'+attr_id).val('');
		$('#month,#position').val('');
		$('input[name="hid_'+attr_id+'"],input[name="hid_position"]').val('');
	}else{
		$('#'+attr_id+'_div').remove();
		$('#'+attr_id).val('');
		$('input[name="hid_'+attr_id+'"]').val('');
	}	
}
function removeZeroValueColumns(table) {
	const tbody = table.querySelector('tbody');
	if (!tbody) {
		return; // Table body not found, cannot remove columns
	}
	const numRows = tbody.rows.length;
	const numColumns = table.rows[0].cells.length;
	const columnsToRemove = [];
	var inputRemove = [];

  	// Function to get the total sum of numeric values in a column (excluding input values and non-numeric values)
	function getColumnSum(columnIndex) {
		let sum = 0;
		for (let i = 0; i < numRows; i++) {
			const cell = tbody.rows[i].cells[columnIndex];
			const cellValue = parseFloat(cell.textContent);
			if (!isNaN(cellValue)) {
				sum += cellValue;
			}
		}
		return sum;
	}
	
 	// Iterate through columns (excluding the first one) to find zero-value columns
	for (let i = 1; i < numColumns; i++) {		
		const headerText = $('#arr_process_table thead tr th:eq(' + i + ')').text();
		 // Skip the column if the header contains "ARR ADV"
		if (headerText.toUpperCase().includes('ARR ADV')) {
			continue;
		}
		const columnSum = getColumnSum(i);
		if(columnSum === 0){
			columnsToRemove.push(i);
		}
	}

  	// Remove zero-value columns from the table (excluding the first one)
	for (let i = columnsToRemove.length - 1; i >= 0; i--) {
		const colIndex = columnsToRemove[i];
		const headerCellText = table.rows[0].cells[colIndex].textContent;
		let removeColumn = true;	

		// Check each data cell in the column if it contains non-numeric content
		for (let j = 0; j < numRows; j++) {
			const dataCell = tbody.rows[j].cells[colIndex];
			if (isNaN(parseInt(dataCell.textContent))) {
				removeColumn = false;
				break;
			}
		}
		if (removeColumn) {
			table.rows[0].deleteCell(colIndex); // Delete header cell
			for (let j = 0; j < numRows; j++) {
				tbody.rows[j].deleteCell(colIndex); // Delete data cell in each row
			}
		}
	}
	// Iterate through each column in the table header
	$('#arr_process_table thead th').each(function(columnIndex) {
		var allZero = true;		
		// Iterate through each row in the column
		$('#arr_process_table tbody tr').each(function() {
			var inputValue = parseFloat($(this).find('td:eq(' + columnIndex + ') input').val());
			const headerText = $('#arr_process_table thead tr th:eq(' + columnIndex + ')').text();
			if (isNaN(inputValue) || inputValue !== 0 || headerText.toUpperCase().includes('ARR ADV')) {
				allZero = false;
				return false; // Exit the row iteration early if a non-zero value is found
			}
		});
		
		// If all input values were zero, add the columnIndex to the array
		if (allZero) {
			inputRemove.push(columnIndex);
		}
	});

	// Remove the header and columns from the table using the indices in the array
	for (var i = inputRemove.length - 1; i >= 0; i--) {
		var columnIndex = inputRemove[i];
		$('#arr_process_table th:eq(' + columnIndex + ')').remove(); // Remove th
		$('#arr_process_table tbody tr').each(function() {
			$(this).find('td:eq(' + columnIndex + ')').remove(); // Remove td
		});
	}
}

</script>
<style>
	.input_val{
		background-color:#D5F4E6;
	}
</style>
<?php $this->load->view("partial/footer"); ?>