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