123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- 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 = `<div class="ul_terminateemployeedetails">
- <div class="terminateemployeeearningdetails">
- <div class='row text-dark font-weight-600'>
- <div class='col-md-6'>Additional Earnings</div>
- <div class='col-md-6'>AMOUNT</div>
- </div>
- <ul id="earningTypesList"></ul>
- <ul id="transactionList"></ul>
- <a href="javascript:;" id="addNewEarningBtn" class="btn btn-primary btn-sm mt-10" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().addearnings();" data-count="0"> + Add Earning</a>
- <input type="hidden" id="hdn_termenateemployeeearningcontrol" class="value-control"
- value="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().employeeearningobject();"/></div>`;
- html += ` <div class="terminateemployeedeductiondetails">
- <div class='row text-dark font-weight-600'>
- <div class='col-md-6'>Deductions</div>
- <div class='col-md-6'>AMOUNT</div>
- </div>
- <ul id="DeductionList"></ul>
- <ul id="DeductiontransactionList"></ul>
- <a href="javascript:;" id="addNewDeductionBtn" class="btn btn-primary btn-sm mt-10" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().addDeduction();" data-count="0">+ Add Deduction</a><input type="hidden" id="hdn_terminateemployeedeductioncontrol" class="value-control"
- value="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().employeedeductionobject();"/></div></div></div>`;
- $("#" + 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 = `<li class="row my-10 liupdatepayrunearningdetails li_terminateemployeeearningdetails" id="earningTypeItem_${earningTypeId}">
- <input type="hidden" class='hf_earningtypeid' value='${earningTypeId}'/>
- <input type="hidden" class='hf_isactive' value='true'/>
- <input type="hidden" id="hfAutoCompleteId_SalaryComponents_${earningTypeId}" data-earningid=${earningTypeId} class="hf_earningtypeid" value="${earningTypeId}"/>
- <div class='col-md-5'><input type="text" class="form-control txt_earningname_${data.SalaryComponentId}" value='${response.result[i].PaySlipName}' /></div>
- <div class='col-md-5'><input type="text" id="txt_earningamount_${data.SalaryComponentId}" class="form-control txt_amount" value='${response.result[i].Amount}'></div>
- <div class='col-md-2 text-right'><a href="javascript:;" class="btn btn-sm btn-outline-danger btn-icon btn-with-icon" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().${data.ComponentTypeId == 1 ? "deleteEarningType" : "deleteDeductionType"}(${data.SalaryComponentId})"><span class="btn-icon-wrap"><i class="las la-trash font-22"></i></span></a><input type="hidden" id="hdn_termenateemployeeearningcontrol" class="value-control"
- value="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().employeeearningobject();"/></div>
- </li>`;
- 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 = `<li class='row my-10 literminateemployeeearningdetails li_terminateemployeeearningdetails' id="earningTypeItem_${listCount}" >
- <div class='col-md-5'>
- <select class="form-control hf_salarycomponentid" class="txtAutoComplete_Salary" id ="txtAutoComplete_Salary_${listCount}" data-placeholder="Select"></select><input type="hidden" id="hfAutoCompleteId_SalaryComponents_${listCount}" class="hf_earningtypeid" /><input type="hidden" class='hf_isactive' value='true'/></div>
- <div class='col-md-5'><input type="text" id="txt_earningamount_${listCount}" class="form-control txt_amount" onpaste = "return Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().isNumberKey(event)" oninput = "return Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().isNumberKey(event)"/></div>
- <div class='col-md-2 text-right'><a href="javascript:;" class="btn btn-sm btn-outline-danger btn-icon btn-with-icon" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().deleteEarningType(${listCount})"><span class="btn-icon-wrap"><i class="las la-trash font-22"></i></span></a></div>
- </li>`;
- $("#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 = `<li class='row my-10 literminateemployeedeductiondetails li_terminateemployeeearningdetails' id="earningTypeItem_${listCount}">
- <input type="hidden" class='hf_isactive' value='true'/>
- <div class='col-md-5'>
- <select class="form-control hf_salarycomponentid" class="txtAutoComplete_deductionSalary" id ="txtAutoComplete_deductionSalary_${listCount}" data-placeholder="Select"></select><input type="hidden" id="hfAutoCompleteId_deductionSalaryComponents_${listCount}" class="hf_earningtypeid" /></div>
- <div class='col-md-5'><input type="text" id="txt_earningamount_${listCount}" class="form-control txt_deductionamount_${listCount} txt_amount" onpaste = "return Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().isNumberKey(event)" oninput = "return Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().isNumberKey(event)"/></div>
- <div class='col-md-2 text-right'><a href="javascript:;" class="btn btn-sm btn-outline-danger btn-icon btn-with-icon" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.TerminateEmployee.Instance().deleteDeductionType(${listCount})"><span class="btn-icon-wrap"><i class="las la-trash font-22"></i></span></a></div>
- </li>`;
- $("#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 = {}));
|