File: /home/cafsindia/uds.cafsinfotech.in/application/views_bk/pay_structure/pay_js.php
<script type="text/javascript">
$(document).ready(function (){
$('.modal-dialog').draggable({ handle: ".modal-header" });
//error through for payroll filter not mapping
<?php echo $error_info; ?>
<?php echo $toastr_fadeout ?>
var datalist_validate = '<?php echo $datalist_validate; ?>';
//Datalist selected value fetch
$(document).on('change', 'input'+datalist_validate, function() {
var selected_value = $(this).val();
var list = $(this).attr('list');
var attr_id = list.replace('list_', '');
var data_value = $('#'+list+' option[value=\"' + selected_value + '\"]').attr('data-value');
$('#'+attr_id).val(data_value);
});
/* LOAD SCRIPT */
<?php
echo "$document_load_script";
?>
//DR CODE FOR DOCUMENT ON LOAD TIME ACTIVITY NO HIDE AND PICKLIST FETCH DATA EMPTY
//array for check payroll exist (used to access a edit and view button)
var struct_set_pick = <?php echo json_encode($pay_add_filter_pick_column); ?>;
var payroll_exist_arr = <?php echo json_encode($payroll_exist_arr); ?>;
var mi_exist_arr = <?php echo json_encode($mi_exist_arr); ?>;
//var struct_edit_pick = <?php //echo json_encode($pay_edit_arr); ?>;
var category_list = <?php echo json_encode($category_list); ?>;
var pro_tax_list = <?php echo json_encode($pro_tax_list); ?>;
var status_list = <?php echo json_encode($status_list); ?>;
var day_cond_list = <?php echo json_encode($day_cond_list); ?>;
var day_count_list = <?php echo json_encode($day_count_list); ?>;
var category_arr = <?php echo json_encode($category_arr); ?>;
var pro_tax_arr = <?php echo json_encode($pro_tax_arr); ?>;
var status_arr = <?php echo json_encode($status_arr); ?>;
var day_cond_arr = <?php echo json_encode($day_cond_arr); ?>;
var day_count_arr = <?php echo json_encode($day_count_arr); ?>;
$("#add").on('click', function(e){
//for dynamic add column from pay structure table (pay structure check validation add variable data)
<?php echo $pay_check_col; ?>;
//dynamic validation check from(pay structure table)
if(<?php echo $vaildation_add_chk; ?>){
$("#add_pay_struct_data #category,#tax_location,#from_date,#effective_date,#day_condition,#day_count,#pf_limit,#esi_limit,#prime_id").val('');
$("#add_pay_struct_data #to_date").val('31-12-2099');
select_option();
$("#add_pay_struct_data").show();
$("#search_pay_struct_data,#ear_ded_pay_struct_data,#ear_ded_button").hide();
$("#add_pay_struct_data #category,#tax_location,#from_date,#effective_date,#day_condition,#day_count,#pf_limit,#esi_limit").attr("readonly",false);
//pay structure already exist check and then if not exist then show a earning and deduction wages table create
}else{
toastr.error("Please Choose All Show Fields..!");
}
});
//search by pay structure on click function
$("#search").on('click', function(e){
search_pay_structure(struct_set_pick);
//search_pay_structure();
});
$("#pay_struct_save").on("click",function() {
var click_details = $("#add_pay_struct_data tbody").find('tr');
let action = "save";
var prime_id = $(click_details).find("td").find("#prime_id").val();
//function for save a pay structure and pay structure line data
save_pay_structure(click_details,action,prime_id);
});
//onclick function for add pf and esi gross based on onclick by a amount and pf and esi yes no option
$(document).on('focusin', '#amount', function(e){
$(this).data('val', $(this).val());
}).on('change','#amount', function(e){
var click_id = $(this).attr("id");
var click_row = $(this);
var old_val = Number($(this).data("val"));
});
//onclick function for add pf and esi gross based on onclick by a amount and pf and esi yes no option
$(document).on('change','#pf_applicable,#esi_applicable', function (e) {
var click_id = $(this).attr("id");
var click_row = $(this);
var new_val = $(this).val();
var old_val = $(this).attr('data-val');
$(this).attr('data-val', new_val);
var exempt_id = '';
if(parseInt(new_val) === 1){
if(click_id === 'pf_applicable'){
exempt_id = 'pf_exempt';
}else
if(click_id === 'esi_applicable'){
exempt_id = 'esi_exempt';
}
$('#'+exempt_id).val(2);
$('#'+exempt_id).attr('checked',false);
}
});
$(document).on('change','#pf_exempt,#esi_exempt,#lwf_exempt', function(e) {
var change_id = $(this).attr("id");
var change_val = "";
var prime_id = $("#add_pay_struct_table tbody").find('tr').find("td").find("#prime_id").val();
if(change_id === "lwf_exempt"){
if(this.checked) {
$('#'+change_id).val(1);
}else{
$('#'+change_id).val(2);
}
}else{
if(change_id === "pf_exempt"){
var change_val = 'pf_applicable';
}else
if(change_id === "esi_exempt"){
var change_val = 'esi_applicable';
}
if(this.checked) {
if(change_val){
$('#'+change_id).val(1);
$("#ear_pay_struct_data tbody").find("tr").find("td").find('#'+change_val).val(2);
}
}else{
//FUNCTION 25AUG22 CALL FOR IF UNCHECK BY USER THEN PREVIOUS VALUE APPEND
prev_exempt_val_append(prime_id,change_val);
$('#'+change_id).val(2);
}
}
select_option();
});
//----- DR CODE FOR TABLE (UPARROW) CLICK SHOULD ABOVE INPUT FOCUS and (DOWNARROW) CLICK SHOULD (BELOW INPUT) FOCUS THIAS 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;
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;
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;
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;
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
$("a.import").click(function(event){
event.preventDefault();
var action = $(this).attr('data-btn-submit');
var title = $(this).attr('title');
var control = $(this).attr('href');
var form_id = "save_import";
view_form_data(action,title,control,form_id);
});
});
//-------------------------------- FUNCTION MODE START ------------------------------------------------
//function select call for using select2 based dropdown list
function select_option(){
//setTimeout(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
// dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
//}, 100);
}
function get_activity(wbs_element,personal_code){
var send_url = '<?php echo site_url("$controller_name/get_activity");?>';
$.ajax({
type: 'POST',
url: send_url,
data:{wbs_element:wbs_element,personal_code:personal_code},//for dynamic filter column based to post a data from(pay structure table) based on pay structure filter settings
beforeSend: function () {
$('#activity_no').next('span').attr('id', 'activity_no_span');
$('#activity_no_span').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data) {
// var rslt = JSON.parse(data);
$('#activity_no_span,#activity_no_div').empty();
$("#list_activity_no").html(data);
}
});
}
//function for fetch a wbs and position onchange based dropdown list
function fetch_drop_list(input_name,input_data){
var send_url = '<?php echo site_url("$controller_name/fetch_drop_list");?>'
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {input_name:input_name,input_data:input_data};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: send_url,
data:encData,
contentType: 'text/plain',//for dynamic filter column based to post a data from(pay structure table) based on pay structure filter settings
beforeSend: function () {
$('#'+input_name).next('span').attr('id', input_name+'_span');
$('#'+input_name+'_span').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
success: function(data) {
var rslt = JSON.parse(data);
$('#'+input_name+'_span').empty();
if(rslt.success){
$("#"+input_name).html(rslt.depen_drop_list);
if(input_name === "activity_no"){
$("#network_id").val(rslt.network_number);
}
}
}
});
}
//date greater and lesser validation
function date_check_validation(category,personal_code,wbs_element,position,activity_no,network_id,from_date,to_date,prime_id){
var check_from_date = moment(from_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
var check_to_date = moment(to_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
if(from_date && to_date){
if(check_from_date > check_to_date){
toastr.error("To Date Should be Greater than From Date");
$('#add_pay_struct_data #from_date').val('');
return false;
}else{
//payroll exist check function
payroll_process_check(category,personal_code,wbs_element,position,activity_no,network_id,check_from_date,prime_id);
}
}
}
//FUNCTION FOR CHECK A PAYROLL PROCESS EXIST BESED ON FORM DATE AND CATEGORY
function payroll_process_check(category,personal_code,wbs_element,position,activity_no,network_id,from_date,prime_id){
var send_url = '<?php echo site_url("$controller_name/payroll_process_check");?>';
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {category:category,personal_code:personal_code,wbs_element:wbs_element,position:position,activity_no:activity_no,network_id:network_id,from_date:from_date,prime_id:prime_id};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: send_url,
data:encData,
contentType: 'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
}else{
toastr.error(rslt.message);
$('#add_pay_struct_data #from_date').val('');
return false;
}
}
});
}
//EXIST PAY STRUCTURE CHECK AND IF NOT EXIST THEN SHOW A EAR AND DED WAGE DETAILS IN TABLE
function show_pay_structure(category){
var send_url = '<?php echo site_url("$controller_name/show_pay_structure");?>'
var status_list = <?php echo json_encode($status_list); ?>;
var category_arr = <?php echo json_encode($category_arr); ?>;
var status_arr = <?php echo json_encode($status_arr); ?>;
var day_cond_arr = <?php echo json_encode($day_cond_arr); ?>;
var day_count_arr = <?php echo json_encode($day_count_arr); ?>;
//for dynamic add column from pay structure table (pay structure check validation add variable data)
<?php echo $pay_check_col; ?>;
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {<?php echo $ajax_post_data ?>,category:category};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: send_url,
data:encData,
contentType: 'text/plain',//for dynamic filter column based to post a data from(pay structure table) based on pay structure filter settings
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
//FUNCTION FOR CREATE TO APPEND A DATA TO EARNINGS AND DEDUCTION TABLE
$("#ear_ded_button").show();
ear_ded_table_create(rslt);
}else{
toastr.error(rslt.message);
//FUNCTION FOR HIDE A EARNINGS AND DEDUCTION TABLE
pay_struct_line_table_toggle();
}
}
});
}
//FUNCTION FOR SEARCH A EXIST PAY STRUCTURE
//function search_pay_structure(struct_set_pick){
function search_pay_structure(struct_set_pick){
var payroll_exist_arr = <?php echo json_encode($payroll_exist_arr); ?>;
var mi_exist_arr = <?php echo json_encode($mi_exist_arr); ?>;
var emp_type_arr = {"": "---- Employee Type ----", 1: "Internal", 2: "External"};
var send_url = '<?php echo site_url("$controller_name/search_pay_structure");?>';
//for dynamic filter column based data get from(pay structure table) based on pay structure filter settings
<?php echo $pay_check_col; ?>;
if(personal_code_val){
$("#add_pay_struct_data,#ear_ded_pay_struct_data,#ear_ded_button").hide();
$("#search_pay_struct_data").show();
//for table search input
var search = $("input[type='search']").val();
$.ajax({
type: 'POST',
url: send_url,
data:{search:search,<?php echo $ajax_post_data ?>},//for dynamic filter column based to post a data from(pay structure table) based on pay structure filter settings
beforeSend: function () {
$('#search_pay_struct_table').html('<h4 style="color:#CC3366;text-align:center;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</h4>');
},
success: function(data) {
$('#search_pay_struct_table').empty();
var rslt = JSON.parse(data);
if(rslt.success){
// toastr.success(rslt.message);
$table = $('#search_pay_struct_table').DataTable({
destroy: true,
processing: true,
lengthMenu: [[10,25,50,100,500,-1],[10,25,50,100,500,"All"]],
language:{
searchPlaceholder: "Search records",
search: "",
},
scrollX: true,
data: rslt.table_rslt,
columns: [
<?php
foreach($pay_add_filter_setting as $setting){
$label_id = $setting->label_name;
$label_name = ucwords(str_replace("_"," ",$label_id));
if($label_id !== "category" && $label_id !== "personal_code" && $label_id !== "network_id"){
echo "{ title: '$label_name',data: '$label_id',visible: $label_id"."_val === '' ? true : false,
render:function(value) {
if(value in struct_set_pick['$label_id']){
if(value === '0' || value === ''){
return '';
}else{
var drop_val = struct_set_pick['$label_id'][value];
//dr code for span wise td generate not input type like (text or others)
return \"<span id='$label_id' name='$label_id'' data-val = '\"+value+\"'>\"+drop_val+\"</span>\";
}
} else {
return value;
}
}
},";
}
}
?>
{ title: "Category",data: "category",
render:function(value) {
return "<span id='category'>"+value+"</span>"}},
{ title: "PTax Location",data: "tax_location",
render:function(value) {
return "<span id='tax_location'>"+value+"</span>"}},
{ title: "Employee Type",data: "employee_type",id: "employee_type_head", visible: false,
render:function(value) {
return "<span id='employee_type'>"+emp_type_arr[value]+"</span>"}},
{ title: "Apply Date",data: "from_date",
render:function(value) {
return "<span id='from_date'>"+moment(value ,"YYYY-MM-DD").format('DD-MM-YYYY')+"</span>"}},
{ title: "To Date",data: "to_date",
// , visible: false
render:function(value) {
return "<span id='to_date'>"+moment(value ,"YYYY-MM-DD").format('DD-MM-YYYY')+"</span>"}},
{ title: "Effective Date",data: "effective_date", visible: false,
render:function(value) {
return "<span id='effective_date'>"+moment(value ,"YYYY-MM-DD").format('DD-MM-YYYY')+"</span>"}},
{ title: "Day Condition",data: "day_condition", visible: false,
render:function(value) {
return "<span id='day_condition'>"+value+"</span>"}},
{ title: "Day Count",data: "day_count",id: "day_count_head", visible: false,
render:function(value) {
return "<span id='day_count'>"+value+"</span>"}},
{ title: "PF Limit",data: "pf_limit",id: "pf_limit_head",
render:function(value) {
return "<span id='pf_limit'>"+value+"</span>"}},
{ title: "ESI Limit",data: "esi_limit",id: "esi_limit_head",
render:function(value) {
return "<span id='esi_limit'>"+value+"</span>"}},
{ title: "Gross Amt",data: "gross",id: "gross_head",
render:function(value) {
return "<span id='gross'>"+value+"</span>"}},
{ title: "PF Gross",data: "pf_gross",id: "pf_gross_head",
render:function(value) {
return "<span id='pf_gross'>"+value+"</span>"}},
{ title: "ESI Gross",data: "esi_gross",id: "esi_gross_head",
render:function(value) {
return "<span id='esi_gross'>"+value+"</span>"}},
{ title: "Edit",data: "prime_id",
render:function(value,type,row) {
//condition for exist check
if(parseInt(mi_exist_arr[value]) || parseInt(payroll_exist_arr[value])){
return "<input type='button' id='edit' name='edit' value = 'View' class='btn btn-xs btn-success' onclick = save_pay_structure($(this),'view',"+value+")>";
}
else{
return "<input type='button' id='edit' name='edit' value = 'Edit' class='btn btn-xs btn-success' onclick = save_pay_structure($(this),'edit',"+value+")>";
}
}
},
{ title: "Copy",data: "prime_id",
render:function(value) {
//condition for exist check
return "<input type='button' id='copy' name='copy' value = 'Copy' class='btn btn-xs btn-info' onclick = save_pay_structure($(this),'copy',"+value+")>"
}
},
{ title: "Delete",data: "prime_id",
render:function(value,type,row) {
var status = parseInt(row.status);
//condition for exist check
if(parseInt(mi_exist_arr[value]) || parseInt(payroll_exist_arr[value])){
return "";
}
else{
//ACTIVE PAY STRUCTURE SHOULD ONLY ALLOW TO DELETE
if(status === 1){
return "<input type='button' id='delete' name='delete' value = 'delete' class='btn btn-xs btn-edit' onclick = delete_pay_structure($(this),"+value+")>";
}else{
return "";
}
}
}
},
]
});
//DR CODE START FOR DATATABLE EXPORT OPTION ADD 23AUG22
var table_option = "<table><tr><td id='export' style='padding:10px 6px;'></td><td id='import' style='padding:10px 6px;'></td></tr></table>";
$("#search_pay_struct_table_filter").append(table_option);
var buttons = new $.fn.dataTable.Buttons($table,{
buttons: [{
extend: 'collection',
text: 'Export',
buttons: [
{extend:'csv',exportOptions:{modifier:{order:'index',page:'all',search:'none'},columns:':visible'}},
{extend:'excel',exportOptions:{modifier:{order :'index',page: 'all',search:'none'},columns:':visible'}},
]
}]
}).container().appendTo($('#export'));
$("input[type='search']").addClass('form-control');
// $("select[name='search_pay_struct_table_length']" ).addClass('form-control input-sm');
if(rslt.ear_table_rslt){
serach_table_col_hi_show();
//FUNCTION FOR CREATE TO APPEND A DATA TO EARNINGS AND DEDUCTION TABLE
$("#ear_ded_button").hide();
ear_ded_table_create(rslt);
}
select_option();
}else{
toastr.error(rslt.message);
$("#search_pay_struct_data").hide();
//FUNCTION FOR HIDE A EARNINGS AND DEDUCTION TABLE
pay_struct_line_table_toggle();
}
}
});
}else{
toastr.error("Please Choose Any One Fields..!");
}
}
//view and save and copy pay structure function
function save_pay_structure(click_details,action,prime_id,struct_set_pick){
var struct_set_pick = <?php echo json_encode($pay_add_filter_pick_column); ?>;
var status_list = <?php echo json_encode($status_list); ?>;
var category_arr = <?php echo json_encode($category_arr); ?>;
var pro_tax_arr = <?php echo json_encode($pro_tax_arr); ?>;
var status_arr = <?php echo json_encode($status_arr); ?>;
var day_cond_arr = <?php echo json_encode($day_cond_arr); ?>;
var day_count_arr = <?php echo json_encode($day_count_arr); ?>;
var emp_type_arr = <?php echo json_encode($emp_type_arr); ?>;
//DR CODE START FOR COPY PAY STRUCTURE CONFIRM BOX ADD 23AUG22
if(action === "copy"){
if (!confirm('Are You Sure You Want to Copy this Pay Structure?')) {
return false;
}
}
//DR CODE END FOR COPY PAY STRUCTURE CONFIRM BOX ADD 23AUG22
if(action === "view"){
$("#ear_ded_button").hide();
}else{
$("#ear_ded_button").show();
}
if(action === "edit" || action === "view" || action === "copy"){
//TO CLICK BY EDIT BUTTON THEN PAY STRUCTURE SETTINGS BASED PICKLIST INPUT DATA FETCH FOR USER VIEW PURPOSE
if(prime_id){
pay_struct_search_drop_fetch(prime_id,struct_set_pick);
}
var table_data = $('#search_pay_struct_table').DataTable().row($(click_details).closest("tr")).data();
var category = table_data['category'];
var tax_location = table_data['tax_location'];
var from_date = table_data['from_date'];
from_date = moment(from_date ,"YYYY-MM-DD").format('DD-MM-YYYY');
var to_date = table_data['to_date'];
to_date = moment(to_date ,"YYYY-MM-DD").format('DD-MM-YYYY');
var effective_date = table_data['effective_date'];
effective_date = moment(effective_date ,"YYYY-MM-DD").format('DD-MM-YYYY');
var day_condition = table_data['day_condition'];
var day_count = table_data['day_count'];
var pf_limit = table_data['pf_limit'];
var esi_limit = table_data['esi_limit'];
var employee_type = table_data['employee_type'];
}else{
var category = $(click_details).find("td").find("#category").val();
var tax_location = $(click_details).find("td").find("#tax_location").val();
var from_date = $(click_details).find("td").find("#from_date").val();
var to_date = $(click_details).find("td").find("#to_date").val();
var effective_date = $(click_details).find("td").find("#effective_date").val();
var day_condition = $(click_details).find("td").find("#day_condition").val();
var day_count = $(click_details).find("td").find("#day_count").val();
var pf_limit = $(click_details).find("td").find("#pf_limit").val();
var esi_limit = $(click_details).find("td").find("#esi_limit").val();
var employee_type = $(click_details).find("td").find("#employee_type").val();
}
//for dynamic filter column from(pay structure table) based on pay structure filter setting
<?php echo $pay_check_col; ?>;
//for only work for edit operation (because we click a edit button then same add table list but data are fetched and table inputs are editable)
if(action === "edit" || action === "view" || action === "copy"){
$("#add_pay_struct_data").show();
$("#search_pay_struct_data").hide();
if(category_arr){
$("#add_pay_struct_data #category").val(category_arr[category]);
category = category_arr[category];
}
if(pro_tax_arr){
$("#add_pay_struct_data #tax_location").val(pro_tax_arr[tax_location]);
tax_location = pro_tax_arr[tax_location];
}
$("#add_pay_struct_data #employee_type").val(employee_type);
$("#add_pay_struct_data #from_date").val(from_date);
$("#add_pay_struct_data #to_date").val(to_date);
$("#add_pay_struct_data #effective_date").val(effective_date);
if(day_cond_arr){
$("#add_pay_struct_data #day_condition").val(day_cond_arr[day_condition]);
day_condition = day_cond_arr[day_condition];
}
if(day_count_arr){
$("#add_pay_struct_data #day_count").val(day_count_arr[day_count]);
day_count = day_count_arr[day_count];
}
if(status_arr){
$("#add_pay_struct_data #pf_limit").val(status_arr[pf_limit]);
$("#add_pay_struct_data #esi_limit").val(status_arr[esi_limit]);
pf_limit = status_arr[pf_limit];
esi_limit = status_arr[esi_limit];
}
$("#add_pay_struct_data #prime_id").val(prime_id);
if(action === "view"){
$("#add_pay_struct_data #category,#add_pay_struct_data #tax_location,#add_pay_struct_data #employee_type,#add_pay_struct_data #from_date,#add_pay_struct_data #to_date,#add_pay_struct_data #effective_date,#add_pay_struct_data #day_condition,#add_pay_struct_data #day_count,#add_pay_struct_data #pf_limit,#add_pay_struct_data #esi_limit").attr("readonly","readonly");
}
if(action === "edit" || action === "copy"){
$("#add_pay_struct_data #category,#add_pay_struct_data #tax_location,#add_pay_struct_data #employee_type,#add_pay_struct_data #from_date,#add_pay_struct_data #to_date,#add_pay_struct_data #effective_date,#add_pay_struct_data #day_condition,#add_pay_struct_data #day_count,#add_pay_struct_data #pf_limit,#add_pay_struct_data #esi_limit").attr("readonly",false);
}
}
if(!effective_date){
effective_date = from_date;
}
if(!day_condition){
day_condition = 2;
}
//for day condition based hide and show
var change_tab_id = "#add_pay_struct_table";
day_cond_hide_show(day_condition,change_tab_id);
select_option();
if(category && tax_location && employee_type && from_date && day_condition && pf_limit && esi_limit){
// && effective_date
/*if(parseInt(day_condition) === 1){
if(!parseInt(day_count)){
toastr.error("Please Choose all Fields From Table..!");
return false;
}
}*/
//for pay structure line table related data
let ear_table = $("#ear_pay_struct_data tbody");
let ded_table = $("#ded_pay_struct_data tbody");
var ear_obj = {};
var ded_obj = {};
ear_table.find("tr").each(function(index, element) {
if($(element).find("td").find("#wage_code").val()){
ear_obj[index] = {
wage_code: $(element).find("td").find("#wage_code").val(),
wage_name: $(element).find("td").find("#wage_name").val(),
hrms_field_name: $(element).find("td").find("#hrms_field_name").val(),
amount: $(element).find("td").find("#amount").val(),
pf_applicable: $(element).find("td").find("#pf_applicable").val(),
esi_applicable: $(element).find("td").find("#esi_applicable").val(),
pt_applicable: $(element).find("td").find("#pt_applicable").val(),
prime_pay_line_id: $(element).find("td").find("#prime_pay_line_id").val(),
prime_pay_struct_id: $(element).find("td").find("#prime_pay_struct_id").val()
};
}
});
ded_table.find("tr").each(function(index, element) {
if($(element).find("td").find("#wage_code").val()){
ded_obj[index] = {
wage_code: $(element).find("td").find("#wage_code").val(),
wage_name: $(element).find("td").find("#wage_name").val(),
hrms_field_name: $(element).find("td").find("#hrms_field_name").val(),
amount: $(element).find("td").find("#amount").val(),
pf_applicable: "",
esi_applicable: "",
pt_applicable: "",
prime_pay_line_id: $(element).find("td").find("#prime_pay_line_id").val(),
prime_pay_struct_id: $(element).find("td").find("#prime_pay_struct_id").val()
};
}
});
//JSON to string conversion for convert a ajax send json data format
var json_ear_obj = JSON.stringify(ear_obj);
var json_ded_obj = JSON.stringify(ded_obj);
var pf_exempt = $("#ear_pay_struct_table").find("tr").find("th").find("#pf_exempt").val();
var esi_exempt = $("#ear_pay_struct_table").find("tr").find("th").find("#esi_exempt").val();
var lwf_exempt = $("#ear_pay_struct_table").find("tr").find("th").find("#lwf_exempt").val();
var status = "true";
if(action === "save"){
<?php echo $pay_check_col; ?>;
if(<?php echo $vaildation_add_chk; ?>){
status = "true";
}else{
status = "false";
}
}
var send_url = '<?php echo site_url("$controller_name/save_pay_structure");?>';
if(status === "true"){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {action:action,prime_id:prime_id,category:category,tax_location:tax_location,from_date:from_date,to_date:to_date,effective_date:effective_date,day_condition:day_condition,day_count:day_count,pf_limit:pf_limit,esi_limit:esi_limit,employee_type,pf_exempt,esi_exempt,lwf_exempt,<?php echo $ajax_post_data ?>,json_ear_obj,json_ded_obj};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: send_url,
data:encData,
contentType: 'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
//FUNCTION FOR CREATE TO APPEND A DATA TO EARNINGS AND DEDUCTION TABLE
if(action === "view"){
$("#ear_ded_button").hide();
}else{
$("#ear_ded_button").show();
}
ear_ded_table_create(rslt);
}else{
toastr.error(rslt.message);
// search_pay_structure(struct_set_pick);
//FUNCTION FOR HIDE A EARNINGS AND DEDUCTION TABLE
// pay_struct_line_table_toggle();
return false;
}
//if pay structure was saved then not view that save data
if(action === "save"){
$("#add_pay_struct_data,#search_pay_struct_data,#ear_ded_pay_struct_data,#ear_ded_button").hide();
}
}
});
}else{
toastr.error("Please Choose all Mandatory Fields..!");
return false;
}
}else{
toastr.error("Please Choose all Fields From Table..!");
return false;
}
}
//delete pay structure function
function delete_pay_structure(click_details,prime_id){
$("#delete").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$("#delete").attr('disabled','disabled');
//var struct_set_pick = <?php echo json_encode($pay_add_filter_pick_column); ?>;
var status_list = <?php echo json_encode($status_list); ?>;
var category_arr = <?php echo json_encode($category_arr); ?>;
var pro_tax_arr = <?php echo json_encode($pro_tax_arr); ?>;
//TABLE DATA GET
var table_data = $('#search_pay_struct_table').DataTable().row($(click_details).closest("tr")).data();
var category = table_data['category'];
category = category_arr[category];
var tax_location = table_data['tax_location'];
tax_location = pro_tax_arr[tax_location];
var from_date = table_data['from_date'];
from_date = moment(from_date ,"YYYY-MM-DD").format('DD-MM-YYYY');
var to_date = table_data['to_date'];
to_date = moment(to_date ,"YYYY-MM-DD").format('DD-MM-YYYY');
//CONFIRMATION AJAX CALL
$.confirm({
title: 'Confirm!',
content: "Are you sure to Delete?",
type: 'red',
typeAnimated: true,
buttons: {
tryAgain: {
text: 'Ok',
btnClass: 'btn-red',
action: function(){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {prime_id:prime_id,category:category,tax_location:tax_location,from_date:from_date,to_date:to_date};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: '<?php echo site_url("$this->control_name/delete_pay_structure");?>',
data:encData,
contentType: 'text/plain',
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
search_pay_structure(struct_set_pick);
}else{
toastr.error(rslt.message);
}
$("#delete").attr('disabled',false);
$("#delete").html("Delete");
}
});
}
},
close: function(){
$("#delete").attr('disabled',false);
$("#delete").html("Delete");
}
}
});
}
//FUNCTION FOR CREATE TO APPEND A DATA TO EARNINGS AND DEDUCTION TABLE
function ear_ded_table_create(rslt){
var status_list = <?php echo json_encode($status_list); ?>;
var action = rslt.action;
$("#ear_ded_pay_struct_data").show();
$("#ear_pay_struct_data").html(rslt.ear_table_rslt);
$("#ded_pay_struct_data").html(rslt.ded_table_rslt);
$("#ear_pay_struct_data .select").append(status_list);
//DR CODE END FOR COPY THE SAME PAY STRUCTURE 22 AUG22
if(rslt.pf_exempt === 1){
$("#ear_pay_struct_data #pf_exempt").attr("checked",true);
}
if(rslt.esi_exempt === 1){
$("#ear_pay_struct_data #esi_exempt").attr("checked",true);
}
if(rslt.lwf_exempt === 1){
$("#ear_pay_struct_data #lwf_exempt").attr("checked",true);
}
var drop_select_arr = rslt.drop_select_arr;
//for select a pt and esi and pf dropdown data
$("#ear_pay_struct_data tbody").find("tr").each(function(index, element) {
var prime_line_id = $(element).find("td").find("#prime_pay_line_id").val();
var wage_code = $(element).find("td").find("#wage_code").val();
//only for earnings(formula type 1)
$(element).find("td").find("#pf_applicable").val(drop_select_arr[prime_line_id][wage_code]['pf_applicable']);
$(element).find("td").find("#esi_applicable").val(drop_select_arr[prime_line_id][wage_code]['esi_applicable']);
$(element).find("td").find("#pt_applicable").val(drop_select_arr[prime_line_id][wage_code]['pt_applicable']);
});
//DR CODE START FOR COPY THE SAME PAY STRUCTURE 22 AUG22
if(action === "copy"){
$("#add_pay_struct_data #prime_id").val(0);
$("#ear_pay_struct_data #prime_pay_line_id").val(0);
$("#ear_pay_struct_data #prime_pay_struct_id").val(0);
$("#ded_pay_struct_data #prime_pay_line_id").val(0);
$("#ded_pay_struct_data #prime_pay_struct_id").val(0);
$("#add_pay_struct_data #to_date").val('31-12-2099');
}else{
$("#add_pay_struct_data #prime_id").val(rslt.prime_id);
}
select_option();
}
//function for hide a pay structure line table
function pay_struct_line_table_toggle(){
$("#ear_ded_pay_struct_data,#ear_ded_button").hide();
$("#ear_pay_struct_data").html();
$("#ded_pay_struct_data").html();
}
//if we search a personal code then wbs and position and activity and etc(inputs are based on pay structure settings)
function pay_struct_search_drop_fetch(prime_id,struct_edit_pick){
//var struct_edit_pick = <?php echo json_encode($pay_add_filter_pick_column); ?>;
var send_url = '<?php echo site_url("$controller_name/pay_struct_search_drop_fetch");?>'
if(prime_id){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {prime_id:prime_id};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: send_url,
data:encData,
contentType: 'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
var input_rslt = rslt.input_rslt;
var act_no_list = rslt.sap_act_no_list;
<?php foreach($pay_add_filter_setting as $setting){
$prime_form_id = (int)$setting->prime_form_id;
$field_type = (int)$setting->field_type;
$label_id = $setting->label_name;
$hidden_id = $label_id."_hidden_".$prime_form_id;
if($label_id !== "category"){
echo "if(input_rslt){
var input_data = input_rslt['$label_id'];
//DR CODE START FOR WBS BASED ACTIVITY FETCH(BUT WBS NOT CHOOSE SO ACTIVITY PICKLIST LABEL EMPTY) 25AUG22
if('$label_id' === 'activity_no'){
$('#holder #activity_no').html(act_no_list);
}
//DR CODE START FOR WBS BASED ACTIVITY FETCH(BUT WBS NOT CHOOSE SO ACTIVITY PICKLIST LABEL EMPTY) 25AUG22
if('$label_id' === 'network_id'){
var option = '<option value = '+input_data+'>' + input_data + '</option>';
$('#holder #network_id').html(option);
}
$('#holder #$label_id').val(input_data);
if($field_type === 5){
$('#$label_id'+'_div').remove();
$('<div id =\"$label_id'+'_div\"><b>'+struct_edit_pick[\"$label_id\"][input_data]+' </b></div>').insertAfter('#holder #$label_id');
// style = \"color:blue;\"
}
if($field_type === 9){
$('#holder #$hidden_id').val(struct_edit_pick['$label_id'][input_data]);
$('#$label_id'+'_div').remove();
$('<div id =\"$label_id'+'_div\"><b>'+struct_edit_pick[\"$label_id\"][input_data]+'</b> <a style=cursor:pointer id=clear_btn onClick=clear_btn()>Clear</a></div>').insertAfter('#holder #$hidden_id');
// style = \"color:blue;\"
$('#$label_id'+'_div').attr('disabled','disabled');
}
}";
}
} ?>
}
}
});
}
}
//date condition hide and show
function day_cond_hide_show(day_condition,change_tab_id){
if(parseInt(day_condition) === 1){
$('#day_count_head').show();
$(''+change_tab_id+' #day_count').parent().show();
}else{
$('#day_count_head').hide();
$(''+change_tab_id+' #day_count').parent().hide();
$(''+change_tab_id+' #day_count').val('');
select_option();
}
}
//add pf and esi gross based on onclick by a amount and pf esi yes no option
function add_pf_esi_gross(click_id,click_row,old_val){
var amount = Number(($(click_row).closest("tr").find("#amount").val()));
var pf_applicable = $(click_row).closest("tr").find("#pf_applicable").val();
var esi_applicable = $(click_row).closest("tr").find("#esi_applicable").val();
var table_name = $(click_row).closest("table").attr("id");
var len = $('#'+table_name+' tr').length;
//code for get a last and before last row
var pf_gross_amt = Number(($('#'+table_name+' tr').eq(len - 2).find("td").find("#amount").val()));
var esi_gross_amt = Number(($('#'+table_name+' tr').eq(len - 1).find("td").find("#amount").val()));
if(click_id){
var tot_pf_gross_amt = 0;
var tot_esi_gross_amt = 0;
if(click_id === "amount"){
var sum_amt = amount - old_val;
if(pf_applicable === "1"){
tot_pf_gross_amt = pf_gross_amt + sum_amt;
$('#'+table_name+' tr').eq(len - 2).find("td").find("#amount").val(tot_pf_gross_amt);
$('#'+table_name+' tr').eq(len - 1).find("td").find("#amount").val(tot_esi_gross_amt);
}
if(esi_applicable === "1"){
tot_esi_gross_amt = esi_gross_amt + sum_amt;
$('#'+table_name+' tr').eq(len - 2).find("td").find("#amount").val(tot_pf_gross_amt);
$('#'+table_name+' tr').eq(len - 1).find("td").find("#amount").val(tot_esi_gross_amt);
}
}else
if(click_id === "pf_applicable"){
if(pf_applicable === "1"){
tot_pf_gross_amt = pf_gross_amt + amount;
$('#'+table_name+' tr').eq(len - 2).find("td").find("#amount").val(tot_pf_gross_amt);
}else
if(pf_applicable === "2" && old_val === "1"){
tot_pf_gross_amt = pf_gross_amt - amount;
$('#'+table_name+' tr').eq(len - 2).find("td").find("#amount").val(tot_pf_gross_amt);
}
}else
if(click_id === "esi_applicable"){
if(esi_applicable === "1"){
tot_esi_gross_amt = esi_gross_amt + amount;
$('#'+table_name+' tr').eq(len - 1).find("td").find("#amount").val(tot_esi_gross_amt);
}else
if(esi_applicable === "2" && old_val === "1"){
tot_esi_gross_amt = esi_gross_amt - amount;
$('#'+table_name+' tr').eq(len - 1).find("td").find("#amount").val(tot_esi_gross_amt);
}
}
}
}
//Add readonly option for last two row
function table_rows_readonly(){
var len = $('#ear_pay_struct_table tr').length;
$('#ear_pay_struct_table tr').eq(len - 2).each(function(index, element) {
$(element).find("td").find("#wage_code").attr("readonly","readonly");
$(element).find("td").find("#wage_name").attr("readonly","readonly");
$(element).find("td").find("#amount").attr("readonly","readonly");
$(element).find("td").find("#pf_applicable").attr("readonly","readonly");
$(element).find("td").find("#esi_applicable").attr("readonly","readonly");
$(element).find("td").find("#pt_applicable").attr("readonly","readonly");
});
$('#ear_pay_struct_table tr').eq(len - 1).each(function(index, element) {
$(element).find("td").find("#wage_code").attr("readonly","readonly");
$(element).find("td").find("#wage_name").attr("readonly","readonly");
$(element).find("td").find("#amount").attr("readonly","readonly");
$(element).find("td").find("#pf_applicable").attr("readonly","readonly");
$(element).find("td").find("#esi_applicable").attr("readonly","readonly");
$(element).find("td").find("#pt_applicable").attr("readonly","readonly");
});
}
//for import
function view_form_data(action,title,control,form_id){
$('.modal').modal({backdrop: 'static', keyboard: false});
$('.modal-body').html('<div style="text-align: center;padding:50px;color:#4b6fa2;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Please wait processing....</div>');
$.ajax({
type: 'POST',
url: control,
dataType: "html",
success: function (response){
$('.modal-title').html('<h4 class="modal-title">'+title+'</h4>');
$('.modal-body').html(response);
}
});
}
// function close_formfun(){
// $('.modal').modal('toggle');
// }
//FUNCTION FOR WBS ELEMENT CLEAR AND WBS ELEMENT BASED INPUTS ALSO CEAR
function clear_btn(){
$('div.form-group > #wbs_element_div,#activity_no_div').html('');
$('#position,#activity_no').val('');
$('div.form-group > #activity_no').html('<option value = "">--- Activity No ----</option>');
$('div.form-group > #network_id').html('<option value = "">--- Network Id ----</option>');
$('div.form-group > #wbs_element,div.form-group > #wbs_element_hidden_1944').val('');
$('#wbs_element_hidden_1944').prop('readonly', false);
}
function tax_location_append(personal_code){
var send_url = '<?php echo site_url("$controller_name/tax_location_append");?>'
var tax_array = [];
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {personal_code:personal_code};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: send_url,
data:encData,
contentType: 'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
tax_array[0] = rslt.pro_tax_list;
tax_array[1] = rslt.pro_tax_arr;
return tax_array;
}else{
toastr.error(rslt.message);
$('#add_pay_struct_data #tax_location').val('');
return false;
}
}
});
}
//DR CODE START 25AUG22 FOR PF AND ESI APPICABLE PREVIOUS VALUE FETCH BASED ON PF AND ESI EXEMPT (AND EAR TALE PRIME ID BASED)
function prev_exempt_val_append(prime_id,change_val){
var send_url = '<?php echo site_url("$controller_name/prev_exempt_val_append");?>'
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {prime_id:prime_id};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: send_url,
data:encData,
contentType: 'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
var exempt_arr = rslt.exempt_arr;
$("#ear_pay_struct_data tbody").find("tr").each(function(index, element) {
var hrms_field_name = $(element).find("td").find("#hrms_field_name").val();
$(element).find("td").find('#'+change_val).val(exempt_arr[hrms_field_name][change_val]);
});
}else{
toastr.error(rslt.message);
return false;
}
}
});
}
//DR CODE END 25AUG22 FOR PF AND ESI APPICABLE PREVIOUS VALUE FETCH BASED ON PF AND ESI EXEMPT (AND EAR TALE PRIME ID BASED)
function dataSave(prime_id,wbs_id,details){
var wbs_desc = details.text();
$("#holder #wbs_element").val(prime_id);
$("#holder #wbs_element_hidden_1944").val(wbs_id+' - '+wbs_desc);
}
</script>