var Bizgaze;
(function (Bizgaze) {
let Apps;
(function (Apps) {
let Hrms;
(function (Hrms) {
let Payroll;
(function (Payroll) {
let Controls;
(function (Controls) {
let PayRun;
(function (PayRun) {
class TerminateEmployee extends Unibase.Platform.Core.BaseComponent {
constructor() {
super(...arguments);
this.strtxt = "0";
this.strDeductionstxt = "0";
this.t_VisibleContainerId = "";
this.delete_Array = [];
}
init(formpropertyid, prop, callback) {
var container = "control-container-" + formpropertyid;
var instance = this;
instance.fileCacheHelper.loadJsFiles(['platform/core/helpers/numberhelper/numberhelper.js'], function () {
let listCount = +$('#addNewEarningBtn').attr('data-count');
instance.calculatenetpay();
});
}
loadControl(containerid, prop) {
var instance = this;
instance.transactionId = prop.FormPropertyId;
instance.t_VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().delete_Array = [];
var html = `
`;
$("#" + containerid).html(html);
Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().getPayRunEmployeedetails();
Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().getpayrunemployeesalarycomponents();
}
loadControlSettings(controlsettingjson, formpropertyid) { }
loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) { }
bindEditFormDetails(formpropertyid, propval, DocPropertyName) { }
calculatenetpay() {
$(".txt_lopdays").keyup(function () {
var lopdays = Number($(".txt_lopdays").val());
var payabledays = Number($(".txt_payabledays").val());
var actualdays = Number($(".txt_actualpayabledays").val());
var actual_days = actualdays - lopdays;
$(".txt_actualpayabledays").val(actual_days);
var netpay = Number($(".number_netpay").val());
var totalnetpay = Math.round(netpay / payabledays);
$(".number_netpay").val(Math.round(totalnetpay * actual_days));
});
}
getPayRunEmployeedetails() {
var instance = this;
var payrunemployeeid = +$(".active-employee-item").find("#hf_widgetitem_Id").val();
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/hrms/payroll/managers/payrollmanager.js", function () {
Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().getemployee(payrunemployeeid).then(function (responce) {
var employeeid = responce.result.EmployeeId;
$("._employee").val(employeeid);
var empname = responce.result.FirstName;
var employee = new Option(empname, employeeid);
$(".txtAutoComplete_employeeid").append(employee);
$(".txtAutoComplete_employeeid").prop("disabled", true);
$(".number_netpay").val(responce.result.NetPay);
$(".txt_payabledays").val(responce.result.PayableDays);
$(".txt_actualpayabledays").val(responce.result.ActualPayabledays);
$(".txt_lopdays").val(responce.result.LOPDays);
});
});
}
getpayrunemployeesalarycomponents() {
var instance = this;
let listCount = +$('#addNewEarningBtn').attr('data-count');
var payrunemployeeid = +$(".active-employee-item").find("#hf_widgetitem_Id").val();
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/hrms/payroll/managers/payrollmanager.js", function () {
Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().getemployeeterminatesalarycomponents(payrunemployeeid).then(function (response) {
for (var i = 0; i < response.result.length; i++) {
var data = response.result[i];
var earningTypeId = data.SalaryComponentId;
var html = `
`;
var componenttypeid = data.ComponentTypeId;
instance.strtxt = instance.strtxt.split('|');
instance.strtxt.push(data.SalaryComponentId);
instance.strtxt = instance.strtxt.join('|');
$('#addNewDeductionBtn').attr('data-count', listCount + 1);
if (componenttypeid == 1) {
$("#transactionList").append(html);
}
else {
$("#DeductionList").append(html);
}
}
});
});
}
addearnings() {
const instance = this;
let listCount = +$('#addNewEarningBtn').attr('data-count');
var html = `
`;
$("#transactionList").append(html);
instance.autocompleteEarningType(listCount);
$('#addNewEarningBtn').attr('data-count', listCount + 1);
}
autocompleteEarningType(id) {
const instance = this;
var url = _appsettings.server_url() + '/apis/v4/bizgaze/hrms/payroll/getearningforterminationautocomplete/componenttypeid/' + 1 + '/salarycomponentids/' + instance.strtxt + '/earningtypeid/' + 0;
AutoCompleteHelper.getHelper().Create(`#txtAutoComplete_Salary_${id}`, $(`#hfAutoCompleteId_SalaryComponents_${id}`), url, function () {
$(`#txtAutoComplete_Salary_${id}`).off('select2:select').on('select2:select', function () {
const earningTypeId = $(this).val();
if (!$.isArray(instance.strtxt)) {
instance.strtxt = instance.strtxt.split('|');
instance.strtxt.push(earningTypeId);
instance.strtxt = instance.strtxt.join('|');
}
});
$(`#txtAutoComplete_Salary_${id}`).off('select2:clear').on('select2:clear', function () {
instance.updateEarningsType(id);
});
});
}
deleteEarningType(SalaryComponentId) {
const instance = this;
let earamount = Number($('#txt_earningamount_' + SalaryComponentId).val());
if (earamount == 0) {
$(`#earningTypeItem_${SalaryComponentId}`).remove();
}
var item = {
amount: earamount,
SalaryComponentId: SalaryComponentId
};
Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().delete_Array.push(item);
instance.updateEarningsType(SalaryComponentId);
$(`#earningTypeItem_${SalaryComponentId}`).remove();
}
updateEarningsType(id) {
const instance = this;
const earningTypeId = $(`#hfAutoCompleteId_SalaryComponents_${id}`).val();
instance.strtxt = instance.strtxt.split('|');
instance.strtxt = instance.strtxt.filter(v => v != earningTypeId).join('|');
}
employeeearningobject() {
var earningobject = new Array();
var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
var payRunId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_payrunid").Value;
$(".ul_terminateemployeedetails").find(".li_terminateemployeeearningdetails").each(function () {
var earningType = Number($(this).find('.hf_earningtypeid').val());
earningobject.push({
EarningName: $(this).find(".txtAutoComplete_Salary").text(),
Amount: Number($(this).find(".txt_amount").val()),
EarningType: earningType != null ? earningType : 0,
PayRunId: payRunId,
PayRunEmployeeId: +$(".active-employee-item").find("#hf_widgetitem_Id").val(),
IsActive: $(this).find('.hf_isactive').val(),
SalaryComponentId: Number($(this).find('.hf_earningtypeid').val()),
deletedata: Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().delete_Array,
});
});
return earningobject;
}
isNumberKey(evt) {
let instance = this;
if (evt.type == "paste") {
let pastedData = evt.clipboardData.getData('text');
let regExp = /[a-zA-Z]/g;
if (regExp.test(pastedData)) {
evt.preventDefault();
return false;
}
}
else if (evt.type == "input") {
const inputVal = $("#" + instance.t_VisibleContainerId).find(evt.currentTarget).val();
$("#" + instance.t_VisibleContainerId).find(evt.currentTarget).val(inputVal.replace(/\D/g, ''));
}
else {
if (evt.which != 8 && evt.which != 0 && (evt.which < 48 || evt.which > 57)) {
return false;
}
}
return true;
}
addDeduction() {
const instance = this;
let listCount = +$('#addNewDeductionBtn').attr('data-count');
var html = `
`;
$("#DeductiontransactionList").append(html);
instance.autocompleteDeductionType(listCount);
$('#addNewDeductionBtn').attr('data-count', listCount + 1);
}
autocompleteDeductionType(id) {
const instance = this;
var url = _appsettings.server_url() + '/apis/v4/bizgaze/hrms/payroll/getearningforterminationautocomplete/componenttypeid/' + 3 + '/salarycomponentids/' + instance.strDeductionstxt + '/earningtypeid/' + 0;
AutoCompleteHelper.getHelper().Create(`#txtAutoComplete_deductionSalary_${id}`, $(`#hfAutoCompleteId_deductionSalaryComponents_${id}`), url, function () {
$(`#txtAutoComplete_deductionSalary_${id}`).off('select2:select').on('select2:select', function () {
const deductionTypeId = $(this).val();
if (!$.isArray(instance.strDeductionstxt)) {
instance.strDeductionstxt = instance.strDeductionstxt.split('|');
instance.strDeductionstxt.push(deductionTypeId);
instance.strDeductionstxt = instance.strDeductionstxt.join('|');
}
});
$(`#txtAutoComplete_deductionSalary_${id}`).off('select2:clear').on('select2:clear', function () {
instance.updateDeductionsType(id);
});
});
}
deleteDeductionType(SalaryComponentId) {
const instance = this;
let earamount = Number($('#txt_earningamount_' + SalaryComponentId).val());
if (earamount == 0) {
$(`#earningTypeItem_${SalaryComponentId}`).remove();
}
var item = {
amount: earamount,
SalaryComponentId: SalaryComponentId
};
Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().delete_Array.push(item);
instance.updateDeductionsType(SalaryComponentId);
$(`#earningTypeItem_${SalaryComponentId}`).remove();
}
updateDeductionsType(id) {
const instance = this;
const deductionTypeId = $(`#hfAutoCompleteId_deductionSalaryComponents_${id}`).val();
instance.strDeductionstxt = instance.strDeductionstxt.split('|');
instance.strDeductionstxt = instance.strDeductionstxt.filter(v => v != deductionTypeId).join('|');
}
static Instance() {
if (this.instance === undefined) {
this.instance = new TerminateEmployee();
}
return this.instance;
}
}
PayRun.TerminateEmployee = TerminateEmployee;
})(PayRun = Controls.PayRun || (Controls.PayRun = {}));
})(Controls = Payroll.Controls || (Payroll.Controls = {}));
})(Payroll = Hrms.Payroll || (Hrms.Payroll = {}));
})(Hrms = Apps.Hrms || (Apps.Hrms = {}));
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
})(Bizgaze || (Bizgaze = {}));