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"); ?>