/** * Author: Thilina Hasantha */ /** * PaydayAdapter */ function PaydayAdapter(endPoint,tab,filter,orderBy) { this.initAdapter(endPoint,tab,filter,orderBy); } PaydayAdapter.inherits(AdapterBase); PaydayAdapter.method('getDataMapping', function() { return [ "id", "name" ]; }); PaydayAdapter.method('getHeaders', function() { return [ { "sTitle": "ID" ,"bVisible":false}, { "sTitle": "Select Pay Frequency"} ]; }); PaydayAdapter.method('getFormFields', function() { return [ [ "name", {"label":"Name","type":"text","validation":""}] ]; }); /* PaydayAdapter.method('showActionButtons' , function() { return false; }); */ PaydayAdapter.method('getAddNewLabel', function() { return "Run Payroll"; }); PaydayAdapter.method('createTable', function(elementId) { $("#payday_all").off(); this.uber('createTable',elementId); $("#payday_all").off().on('click',function(){ if($(this).is(':checked')){ $('.paydayCheck').prop('checked', true); }else{ $('.paydayCheck').prop('checked', false); } }) }); PaydayAdapter.method('getActionButtonsHtml', function(id,data) { var editButton = ''; var html = '
_edit_
'; html = html.replace('_edit_',editButton); html = html.replace(/_id_/g,id); html = html.replace(/_BASE_/g,this.baseUrl); return html; }); PaydayAdapter.method('getActionButtonHeader', function() { return { "sTitle": '', "sClass": "center" }; }); /** * PayrollAdapter */ function PayrollAdapter(endPoint,tab,filter,orderBy) { this.initAdapter(endPoint,tab,filter,orderBy); } PayrollAdapter.inherits(AdapterBase); PayrollAdapter.method('getDataMapping', function() { return [ "id", "name", "pay_period", "department", "date_start", "date_end", "status" ]; }); PayrollAdapter.method('getHeaders', function() { return [ { "sTitle": "ID","bVisible":false }, { "sTitle": "Name" }, { "sTitle": "Pay Frequency"}, { "sTitle": "Department"}, { "sTitle": "Date Start"}, { "sTitle": "Date End"}, { "sTitle": "Status"} ]; }); PayrollAdapter.method('getFormFields', function() { return [ [ "id", {"label":"ID","type":"hidden"}], [ "name", {"label":"Name","type":"text"}], [ "pay_period", {"label":"Pay Frequency","type":"select","remote-source":["PayFrequency","id","name"],"sort":"none"}], [ "deduction_group", {"label":"Calculation Group","type":"select","remote-source":["DeductionGroup","id","name"],"sort":"none"}], [ "payslipTemplate", {"label":"Payslip Template","type":"select","remote-source":["PayslipTemplate","id","name"]}], [ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"],"sort":"none"}], [ "date_start", {"label":"Start Date","type":"date","validation":""}], [ "date_end", {"label":"End Date","type":"date","validation":""}], //[ "column_template", {"label":"Report Column Template","type":"select","remote-source":["PayrollColumnTemplate","id","name"]}], [ "columns", {"label":"Payroll Columns","type":"select2multi","remote-source":["PayrollColumn","id","name"]}], [ "status", {"label":"Status","type":"select","source":[["Draft","Draft"],["Completed","Completed"]],"sort":"none"}] ]; }); PayrollAdapter.method('postRenderForm', function(object, $tempDomObj) { if(object != null && object != undefined && object.id != undefined && object.id != null){ $tempDomObj.find("#pay_period").attr('disabled','disabled'); $tempDomObj.find("#department").attr('disabled','disabled'); //$tempDomObj.find("#date_start").attr('disabled','disabled'); //$tempDomObj.find("#date_end").attr('disabled','disabled'); //$tempDomObj.find("#column_template").attr('disabled','disabled'); } }); PayrollAdapter.method('process', function(id, status) { modJs = modJsList['tabPayrollData']; modJs.setCurrentPayroll(id); $("#Payroll").hide(); $("#PayrollData").show(); $("#PayrollDataButtons").show(); if(status == 'Completed'){ $(".completeBtnTable").hide(); $(".saveBtnTable").hide(); }else{ $(".completeBtnTable").show(); $(".saveBtnTable").show(); } modJs.get([]); }); PayrollAdapter.method('getActionButtonsHtml', function(id,data) { var editButton = ''; var processButton = ''; var deleteButton = ''; var cloneButton = ''; var html = '
_edit__process__clone__delete_
'; if(this.showAddNew){ html = html.replace('_clone_',cloneButton); }else{ html = html.replace('_clone_',''); } if(this.showDelete){ html = html.replace('_delete_',deleteButton); }else{ html = html.replace('_delete_',''); } if(this.showEdit){ html = html.replace('_edit_',editButton); }else{ html = html.replace('_edit_',''); } /* if(data[6] != "Completed"){ html = html.replace('_process_',processButton); }else{ html = html.replace('_process_',''); } */ html = html.replace('_process_',processButton); html = html.replace(/_id_/g,id); html = html.replace(/_status_/g,data[6]); html = html.replace(/_BASE_/g,this.baseUrl); return html; }); PayrollAdapter.method('get', function(callBackData) { $("#PayrollData").hide(); $("#PayrollForm").hide(); $("#PayrollDataButtons").hide(); $("#Payroll").show(); modJsList['tabPayrollData'].setCurrentPayroll(null); this.uber('get',callBackData); }); /** * PayrollDataAdapter */ function PayrollDataAdapter(endPoint) { this.initAdapter(endPoint); this.cellDataUpdates = {}; this.payrollId = null; } PayrollDataAdapter.inherits(TableEditAdapter); PayrollDataAdapter.method('validateCellValue', function(element, evt, newValue) { modJs.addCellDataUpdate(element.data('colId'),element.data('rowId'),newValue); return true; }); PayrollDataAdapter.method('setCurrentPayroll', function(val) { this.payrollId = val; }); PayrollDataAdapter.method('addAdditionalRequestData' , function(type, req) { if(type == 'updateData'){ req.payrollId = this.payrollId; }else if(type == 'updateAllData'){ req.payrollId = this.payrollId; }else if(type == 'getAllData'){ req.payrollId = this.payrollId; } return req; }); PayrollDataAdapter.method('modifyCSVHeader', function(header) { header.unshift(""); return header; }); PayrollDataAdapter.method('getCSVData' , function() { var csv = ""; for(var i=0;i#_delete_##_edit_#
#_renderFunction_#
', "validation":"none", "render":function(item){ var output = "Variable:"+item.name; return output; } }]; return [ [ "id", {"label":"ID","type":"hidden"}], [ "name", {"label":"Name","type":"text","validation":""}], [ "calculation_hook", {"label":"Predefined Calculations","type":"select2","allow-null":true,"null-label":"None","remote-source":["CalculationHook","code","name"]}], [ "salary_components", {"label":"Salary Components","type":"select2multi","remote-source":["SalaryComponent","id","name"]}], [ "deductions", {"label":"Calculation Method","type":"select2multi","remote-source":["Deduction","id","name"]}], [ "add_columns", {"label":"Columns to Add","type":"select2multi","remote-source":["PayrollColumn","id","name"]}], [ "sub_columns", {"label":"Columns to Subtract","type":"select2multi","remote-source":["PayrollColumn","id","name"]}], [ "colorder", {"label":"Column Order","type":"text","validation":"number"}], [ "editable", {"label":"Editable","type":"select","source":[["Yes","Yes"],["No","No"]]}], [ "enabled", {"label":"Enabled","type":"select","source":[["Yes","Yes"],["No","No"]]}], [ "default_value", {"label":"Default Value","type":"text","validation":""}], fucntionColumnList, [ "calculation_function", {"label":"Function","type":"text","validation":"none"}] ]; }); /** * PayrollColumnTemplateAdapter */ function PayrollColumnTemplateAdapter(endPoint) { this.initAdapter(endPoint); } PayrollColumnTemplateAdapter.inherits(AdapterBase); PayrollColumnTemplateAdapter.method('getDataMapping', function() { return [ "id", "name" ]; }); PayrollColumnTemplateAdapter.method('getHeaders', function() { return [ { "sTitle": "ID" ,"bVisible":true}, { "sTitle": "Name"} ]; }); PayrollColumnTemplateAdapter.method('getFormFields', function() { return [ [ "id", {"label":"ID","type":"hidden"}], [ "name", {"label":"Name","type":"text","validation":""}], [ "columns", {"label":"Payroll Columns","type":"select2multi","remote-source":["PayrollColumn","id","name"]}] ]; }); /* * PayrollEmployeeAdapter */ function PayrollEmployeeAdapter(endPoint,tab,filter,orderBy) { this.initAdapter(endPoint,tab,filter,orderBy); } PayrollEmployeeAdapter.inherits(AdapterBase); PayrollEmployeeAdapter.method('getDataMapping', function() { return [ "id", "employee", "pay_frequency", "deduction_group", "currency" ]; }); PayrollEmployeeAdapter.method('getHeaders', function() { return [ { "sTitle": "ID" ,"bVisible":false}, { "sTitle": "Employee" }, { "sTitle": "Pay Frequency"}, { "sTitle": "Calculation Group"}, { "sTitle": "Currency"}, ]; }); PayrollEmployeeAdapter.method('getFormFields', function() { return [ [ "id", {"label":"ID","type":"hidden"}], [ "employee", {"label":"Employee","type":"select2","remote-source":["Employee","id","first_name+last_name"]}], [ "pay_frequency", {"label":"Pay Frequency","type":"select2","remote-source":["PayFrequency","id","name"]}], [ "currency", {"label":"Currency","type":"select2","remote-source":["CurrencyType","id","code"]}], [ "deduction_group", {"label":"Calculation Group","type":"select2","allow-null":true,"null-label":"None","remote-source":["DeductionGroup","id","name"]}], [ "deduction_exemptions", {"label":"Calculation Exemptions","type":"select2multi","remote-source":["Deduction","id","name"],"validation":"none"}], [ "deduction_allowed", {"label":"Calculations Assigned","type":"select2multi","remote-source":["Deduction","id","name"],"validation":"none"}] ]; }); PayrollEmployeeAdapter.method('getFilters', function() { return [ [ "employee", {"label":"Employee","type":"select2","remote-source":["Employee","id","first_name+last_name"]}] ]; }); /** * DeductionAdapter */ function DeductionAdapter(endPoint,tab,filter,orderBy) { this.initAdapter(endPoint,tab,filter,orderBy); } DeductionAdapter.inherits(AdapterBase); DeductionAdapter.method('getDataMapping', function() { return [ "id", "name", "deduction_group" ]; }); DeductionAdapter.method('getHeaders', function() { return [ { "sTitle": "ID" ,"bVisible":false}, { "sTitle": "Name" }, { "sTitle": "Calculation Group"} ]; }); DeductionAdapter.method('getFormFields', function() { var rangeAmounts = [ "rangeAmounts", {"label":"Calculation Process","type":"datagroup", "form":[ [ "lowerCondition", {"label":"Lower Limit Condition","type":"select","source":[["No Lower Limit","No Lower Limit"],["gt","Greater than"],["gte","Greater than or Equal"]]}], [ "lowerLimit", {"label":"Lower Limit","type":"text","validation":"float"}], [ "upperCondition", {"label":"Upper Limit Condition","type":"select","source":[["No Upper Limit","No Upper Limit"],["lt","Less than"],["lte","Less than or Equal"]]}], [ "upperLimit", {"label":"Upper Limit","type":"text","validation":"float"}], [ "amount", {"label":"Value","type":"text","validation":""}] ], "html":'
#_delete_##_edit_#
#_renderFunction_#
', "validation":"none", "custom-validate-function":function (data){ var res = {}; res['valid'] = true; if(data.lowerCondition == 'No Lower Limit'){ data.lowerLimit = 0; } if(data.upperCondition == 'No Upper Limit'){ data.upperLimit = 0; } res['params'] = data; return res; }, "render":function(item){ var output = ""; var getSymbol = function(text){ var map = {}; map['gt'] = '>'; map['gte'] = '>='; map['lt'] = '<'; map['lte'] = '<='; return map[text]; } if(item.lowerCondition != "No Lower Limit"){ output += item.lowerLimit + " " + getSymbol(item.lowerCondition) + " "; } if(item.upperCondition != "No Upper Limit"){ output += " and "; output += getSymbol(item.upperCondition) + " " + item.upperLimit + " "; } if(output == ""){ return "Deduction is "+item.amount + " for all ranges"; }else{ return "If salary component "+output+ " deduction is "+item.amount; } return output; } }]; return [ [ "id", {"label":"ID","type":"hidden"}], [ "name", {"label":"Name","type":"text","validation":""}], [ "componentType", {"label":"Salary Component Type","type":"select2multi","allow-null":true,"remote-source":["SalaryComponentType","id","name"]}], [ "component", {"label":"Salary Component","type":"select2multi","allow-null":true,"remote-source":["SalaryComponent","id","name"]}], [ "payrollColumn", {"label":"Payroll Report Column","type":"select2","allow-null":true,"remote-source":["PayrollColumn","id","name"]}], rangeAmounts, [ "deduction_group", {"label":"Calculation Group","type":"select2","allow-null":true,"null-label":"None","remote-source":["DeductionGroup","id","name"]}] ]; }); /* * DeductionGroupAdapter */ function DeductionGroupAdapter(endPoint,tab,filter,orderBy) { this.initAdapter(endPoint,tab,filter,orderBy); } DeductionGroupAdapter.inherits(AdapterBase); DeductionGroupAdapter.method('getDataMapping', function() { return [ "id", "name", "description" ]; }); DeductionGroupAdapter.method('getHeaders', function() { return [ { "sTitle": "ID" ,"bVisible":false}, { "sTitle": "Name" }, { "sTitle": "Details" } ]; }); DeductionGroupAdapter.method('getFormFields', function() { return [ [ "id", {"label":"ID","type":"hidden"}], [ "name", {"label":"Name","type":"text","validation":""}], [ "description", {"label":"Details","type":"textarea","validation":"none"}] ]; }); /* * PayslipTemplateAdapter */ function PayslipTemplateAdapter(endPoint,tab,filter,orderBy) { this.initAdapter(endPoint,tab,filter,orderBy); } PayslipTemplateAdapter.inherits(AdapterBase); PayslipTemplateAdapter.method('getDataMapping', function() { return [ "id", "name" ]; }); PayslipTemplateAdapter.method('getHeaders', function() { return [ { "sTitle": "ID" ,"bVisible":false}, { "sTitle": "Name" } ]; }); PayslipTemplateAdapter.method('getFormFields', function() { var payslipFields = [ "data", {"label":"Payslip Fields","type":"datagroup", "form":[ [ "type", {"label":"Type","type":"select","sort":"none","source":[["Payroll Column","Payroll Column"],["Text","Text"],["Company Name","Company Name"],["Company Logo","Company Logo"], ["Separators","Separators"]]}], [ "payrollColumn", {"label":"Payroll Column","type":"select2","sort":"none","allow-null":true,"null-label":"None","remote-source":["PayrollColumn","id","name"]}], [ "label", {"label":"Label","type":"text","validation":"none"}], [ "text", {"label":"Text","type":"textarea","validation":"none"}], [ "status", {"label":"Status","type":"select","sort":"none","source":[["Show","Show"],["Hide","Hide"]]}] ], //"html":'
#_delete_##_edit_#
Type#_type_#
Label#_label_#
Text#_text_#
Font Size#_fontSize_#
Font Style#_fontStyle_#
Font Color#_fontColor_#
Status#_status_#
', "html":'
#_delete_##_edit_#
#_type_# #_label_#
#_text_#
', "validation":"none", "custom-validate-function":function (data){ var res = {}; res['valid'] = true; if(data.type == 'Payroll Column'){ if(data.payrollColumn == "NULL"){ res['valid'] = false; res['message'] = "Please select payroll column"; }else{ data.payrollColumn == "NULL"; } }else if(data.type == 'Text'){ if(data.text == ""){ res['valid'] = false; res['message'] = "Text can not be empty"; } } res['params'] = data; return res; } }]; return [ [ "id", {"label":"ID","type":"hidden"}], [ "name", {"label":"Name","type":"text","validation":""}], payslipFields ]; });