var Bizgaze; (function (Bizgaze) { let Apps; (function (Apps) { let Hrms; (function (Hrms) { let Payroll; (function (Payroll) { class CtcCalculation extends Unibase.Platform.Core.BaseComponent { jsFiles() { return ['platform/core/helpers/numberhelper/numberhelper.js', 'apps/hrms/enums/componenttypes.js', 'apps/hrms/enums/earningtypes.js', 'apps/hrms/enums/calculationtype.js', '/apps/hrms/payroll/controls/salarytemplate.component.js', 'apps/hrms/payroll/controls/employeesalary/employeesalarydetails.component.js']; } getcomponentHtml() { return `
Earnings
Add Component
Salary Components Calculation Type Monthly Amount Annual Amount
Cost to Company
`; } itemobj(data) { var item = { payslipname: data.PaySlipName, calculationtypeid: data.CalculationTypeId, calculationtypename: data.CalculationTypeName, salarycomponentid: data.SalaryComponentId, earningtypeid: data.EarningTypeId == undefined ? 0 : data.EarningTypeId, amount: data.Amount == undefined ? 0 : data.Amount, rowindexid: data.ComponentTypeId == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings ? data.EarningTypeId : data.SalaryComponentId, maxamount: data.MaxAmount, templateid: data.TemplateId == undefined ? 0 : data.TemplateId, templateitemid: data.TemplateItemId == undefined ? 0 : data.TemplateItemId, monthlyamount: data.AmountMonthly == undefined ? 0 : data.AmountMonthly, annualamount: data.AmountAnnually == undefined ? 0 : data.AmountAnnually, componenttypeid: data.ComponentTypeId == undefined ? 0 : data.ComponentTypeId, issystemgenerated: data.IsSystemGenerated == undefined ? false : data.IsSystemGenerated, rowid: 0 }; if (data.CalculationTypeId == 1) { item.monthlyamount = data.Amount == undefined ? 0 : data.Amount; } if (data.ComponentTypeId == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Reimbursements && item.templateid == 0) { item.monthlyamount = 0; item.amount = 0; } return item; } ctc_calculation(comp_obj) { var instance = this; var annualctc = Number($(".txt_annualctc").val()); if (annualctc == 0) { } if (comp_obj != null) { for (var i = 0; i < comp_obj.length; i++) { let data = comp_obj[i]; let amount = data.amount; let calculationtypeid = data.calculationtypeid; let earningtypeid = data.earningtypeid; let salarycomponentid = data.salarycomponentid; let monthlyamount = data.monthlyamount; if (calculationtypeid == Bizgaze.Apps.Hrms.Enums.CalculationType.FixedAmount) { let obj = comp_obj.find(x => x.salarycomponentid == salarycomponentid); obj.annualamount = Math.round(monthlyamount * 12); obj.monthlyamount = Math.round(monthlyamount); } if (calculationtypeid == Bizgaze.Apps.Hrms.Enums.CalculationType.PercentageOfBasic) { let basicsalobj = comp_obj.find(x => x.earningtypeid == Bizgaze.Apps.Hrms.Enums.EarningTypes.Basic && x.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings); let basicanualamount = basicsalobj.annualamount; let annualamount = Math.round(basicanualamount * (amount / 100)); let monthlyamount = Math.round(annualamount / 12); let obj = comp_obj.find(x => x.salarycomponentid == salarycomponentid); obj.annualamount = annualamount; obj.monthlyamount = monthlyamount; } if (calculationtypeid == Bizgaze.Apps.Hrms.Enums.CalculationType.PercentageOfCTC) { let annualamount = Math.round(annualctc * (amount / 100)); let monthlyamount = Math.round(annualamount / 12); let obj = comp_obj.find(x => x.salarycomponentid == salarycomponentid); obj.annualamount = annualamount; obj.monthlyamount = monthlyamount; } } instance.adjustmentfixedallowance(comp_obj); instance.bindctcdata(comp_obj); } } adjustmentfixedallowance(ctc_Array) { var instance = this; var total_annualamount = 0; var total_monthlyamount = 0; var annualctc = Number($(".txt_annualctc").val()); ctc_Array.filter(x => x.earningtypeid != Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance && x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions && x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes).forEach(x => { total_monthlyamount += x.monthlyamount; }); ctc_Array.filter(x => x.earningtypeid != Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance && x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions && x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes).forEach(x => { total_annualamount += x.annualamount; }); let fixedAllowanceobj = ctc_Array.find(x => x.earningtypeid == Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance && x.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings); if (fixedAllowanceobj != undefined) { let balancemonthlyamount = (Math.round(annualctc / 12)) - Math.round(total_monthlyamount); let balanceannualamount = Math.round(annualctc) - Math.round(total_annualamount); fixedAllowanceobj.annualamount = Math.round(balanceannualamount); fixedAllowanceobj.monthlyamount = Math.round(balancemonthlyamount); } } bindcomponenthtml(data, ctc_Array, isfixedallowance) { var instance = this; let rowindexid = data.rowindexid; var txtsakaryComponet_html = ""; if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings && Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance != rowindexid) { txtsakaryComponet_html = `
`; } else { txtsakaryComponet_html = `
`; } var CalculationType = ""; CalculationType = `
% of CTC
`; if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions || data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes) { CalculationType = `
`; } var monthlyamount = ` `; if (data.issystemgenerated == true && data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions || data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes) { CalculationType = `Fixed amount
`; monthlyamount = `

0

`; } if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes) { monthlyamount = ` `; } $('.pencil-edit').click(function () { $('txt_incometax').removeAttr('disabled'); $(this).removeClass('fa-pencil').addClass('fa-close'); }); var html1 = ` ${txtsakaryComponet_html}
${CalculationType}
${monthlyamount}

`; if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings) { $("#salaryearningdetails_table:last").append(html1); if (Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance != rowindexid) { var instance = this; instance.autocomplete(rowindexid); } } if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions || data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes) { $('.tb_Deductions').removeClass('hidden'); $("#salarydeductiondetails_table:last").append(html1); } if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Reimbursements) { $('.tb_Reimbusments').removeClass('hidden'); $("#salaryreimbursementdetails_table:last").append(html1); } $("#salaryearningdetails_table,#salarydeductiondetails_table,#salaryreimbursementdetails_table").find(".txt_CalculationAmount,.txt_AmountMonthly").unbind().blur(function () { let id = $(this).attr("data-trnsactid"); instance.salaryitem_Calculation(Number(id), ctc_Array); }); $('#ddl_CalculationType_' + rowindexid).change(function () { let id = $(this).val(); $('#txt_CalculationAmount_' + rowindexid).val(0); instance.changecalculationtype(id, rowindexid, ctc_Array); }); if (data.calculationtypeid == Bizgaze.Apps.Hrms.Enums.CalculationType.PercentageOfBasic || data.calculationtypeid == Bizgaze.Apps.Hrms.Enums.CalculationType.PercentageOfCTC) { $("#txt_AmountMonthly_" + rowindexid).attr("disabled", "disabled"); $("#txt_AmountMonthly_" + rowindexid).css("color", "#495057"); } $(".txt_AmountMonthly,.txt_CalculationAmount").on("keypress", function (event) { var charCode = (event.which) ? event.which : event.keyCode; if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; }); instance.bindctcdata(ctc_Array); if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings && data.earningtypeid == Bizgaze.Apps.Hrms.Enums.EarningTypes.Basic && isfixedallowance) { try { Bizgaze.Apps.Hrms.Payroll.Controls.SalaryTemplate.Instance().SalaryEarningdetails(Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance); } catch (e) { } } if ($(window).width() < 767) { $('.salary_template_CreateForm_card').find('.salary_template_CreateForm_Table').removeClass('w-100').addClass('w-600p'); $('#salaryearningdetails_table').find(`.CalculationType_${rowindexid} div`).removeClass('w-50').addClass('w-70'); } else { $('.salary_template_CreateForm_card').find('.salary_template_CreateForm_Table').removeClass('w-600p').addClass('w-100'); $('#salaryearningdetails_table').find(`.CalculationType_${rowindexid} div`).removeClass('w-70').addClass('w-50'); } } autocomplete(earningtypeid) { var url = _appsettings.server_url() + '/apis/v4/bizgaze/hrms/payroll/salarycomponentsbyearningtypeidautocomplete/earningtypeid/' + earningtypeid; AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Salary_" + earningtypeid, $("#hfAutoCompleteId_SalaryComponents_" + earningtypeid), url, null); $("#txtAutoComplete_Salary_" + earningtypeid).unbind().change(function () { let id = $(this).val(); try { Bizgaze.Apps.Hrms.Payroll.Controls.SalaryTemplate.Instance().getsalarycomponentbyid(id); } catch (e) { Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.EmployeeSalaryDetails.Instance().getsalarycomponentbyid(id); } }); } changecalculationtype(id, rowindexid, ctc_Array) { var instance = this; if (id == 1) { $('#txt_CalculationAmount_' + rowindexid).addClass('hidden'); } else { $('#txt_CalculationAmount_' + rowindexid).removeClass('hidden'); } instance.salaryitem_Calculation(rowindexid, ctc_Array); } bindctcdata(obj) { var instance = this; instance.grandTotal(obj); for (var i = 0; i < obj.length; i++) { let data = obj[i]; let amount = data.amount; let monthlyamount = data.monthlyamount; let annualamount = data.annualamount; let rowindexid = data.rowindexid; if (data.calculationtypeid == Bizgaze.Apps.Hrms.Enums.CalculationType.FixedAmount) { $("#txt_CalculationAmount_" + rowindexid).addClass('hidden'); $(".ddlCalculationType_" + rowindexid).addClass('w-100'); $(".ddlCalculationType_" + rowindexid).removeClass('w-50'); } else { $("#txt_CalculationAmount_" + rowindexid).removeClass('hidden'); $(".ddlCalculationType_" + rowindexid).addClass('w-50'); $(".ddlCalculationType_" + rowindexid).removeClass('w-100'); } if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings && Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance != rowindexid) { var reportColumnText1 = new Option(data.payslipname, data.earningtypeid, true); $("#txtAutoComplete_Salary_" + rowindexid).html(reportColumnText1); $("#txtAutoComplete_Salary_" + rowindexid).val(data.earningtypeid); $('#ddl_CalculationType_' + rowindexid).val(data.calculationtypename); $('#ddl_CalculationType_' + rowindexid).text(data.calculationtypename); } else if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions || data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes) { $("#txtAutoComplete_Salary_" + rowindexid).val(data.payslipname); $("#txtAutoComplete_Salary_" + rowindexid).text(data.payslipname); $('#ddl_CalculationType_' + rowindexid).val(data.calculationtypeid); } else if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Reimbursements || Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance == rowindexid) { $("#txtAutoComplete_Salary_" + rowindexid).val(data.payslipname); $("#txtAutoComplete_Salary_" + rowindexid).text(data.payslipname); $('#ddl_CalculationType_' + rowindexid).val(data.calculationtypename); $('#ddl_CalculationType_' + rowindexid).text(data.calculationtypename); $('#span_maxamount_' + rowindexid).text(data.maxamount); } if (Bizgaze.Apps.Hrms.Enums.EarningTypes.FixedAllowance == rowindexid) $('.div_componentname_' + rowindexid).text('Monthly CTC - Sum of all other components'); if (data.componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Reimbursements) { $('.div_componentname_' + rowindexid).html('Max Amount: ' + data.amount + ' '); $('#span_maxamount_' + rowindexid).text(data.maxamount); } $("#hf_earningtypeid_" + rowindexid).val(data.earningtypeid); $("#txt_AmountMonthly_" + rowindexid).val(monthlyamount); $("#txt_AmountMonthly_" + rowindexid).text(monthlyamount); $("#txt_AmountAnnually_" + rowindexid).val(annualamount); $("#txt_AmountAnnually_" + rowindexid).text(annualamount); $("#txt_CalculationAmount_" + rowindexid).val(amount); } } grandTotal(ctc_Array) { var instance = this; var monthlytotal = 0; var annuallytotal = 0; ctc_Array.filter(x => x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions && x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes).forEach(x => { annuallytotal += x.annualamount; }); ctc_Array.filter(x => x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions && x.componenttypeid != Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes).forEach(x => { monthlytotal += x.monthlyamount; }); $(".total_monthly_amount").text(Math.round(monthlytotal)); $(".total_annual_amount").text(Math.round(annuallytotal)); } salaryitem_Calculation(rowindexid, ctc_Array) { var instance = this; var calculationAmount = $("#txt_CalculationAmount_" + rowindexid).val(); var amountMonthly = $("#txt_AmountMonthly_" + rowindexid).val(); if (calculationAmount == undefined) { calculationAmount = 0; } let id = rowindexid; let obj = ctc_Array.find(x => x.rowindexid == id); if (obj != undefined) { if (obj.calculationtypeid == Bizgaze.Apps.Hrms.Enums.CalculationType.FixedAmount) { obj.amount = Number(amountMonthly); } else obj.amount = Number(calculationAmount); obj.monthlyamount = Number(amountMonthly); if (Bizgaze.Apps.Hrms.Enums.ComponentTypes.Reimbursements == obj.componenttypeid) { if (obj.maxamount < Number(amountMonthly)) { obj.monthlyamount = obj.maxamount; obj.amount = obj.maxamount; } } else if (Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions == obj.componenttypeid) { if (Number($('#ddl_CalculationType_' + rowindexid).val()) != undefined) { obj.calculationtypeid = Number($('#ddl_CalculationType_' + rowindexid).val()); } } instance.ctc_calculation(ctc_Array); } } } Payroll.CtcCalculation = CtcCalculation; })(Payroll = Hrms.Payroll || (Hrms.Payroll = {})); })(Hrms = Apps.Hrms || (Apps.Hrms = {})); })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {})); })(Bizgaze || (Bizgaze = {}));