Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

updatepayrundetails.component.js 41KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Hrms;
  6. (function (Hrms) {
  7. let Payroll;
  8. (function (Payroll) {
  9. let Controls;
  10. (function (Controls) {
  11. let PayRun;
  12. (function (PayRun) {
  13. class UpdatePayRunDetails extends Unibase.Platform.Core.BaseComponent {
  14. constructor() {
  15. super(...arguments);
  16. this.strtxt = "";
  17. this.employeeid = "";
  18. }
  19. init(formpropertyid, prop, callback) { }
  20. loadControl(containerid, prop) {
  21. var instance = this;
  22. instance.transactionId = prop.FormPropertyId;
  23. instance.fileCacheHelper.loadJsFiles(['apps/hrms/enums/earningtypes.js', 'apps/hrms/enums/componenttypes.js', 'apps/hrms/enums//statutorytypes.js'], null);
  24. var html = `<div class="ul_updatepayrundetails">
  25. <div class="updatepayrunearningdetails">
  26. <div class='row text-dark font-weight-600'>
  27. <div class='col-md-6'>(+) EARNINGS</div>
  28. <div class='col-md-6'>AMOUNT</div>
  29. </div>
  30. <ul id="earningTypesList"></ul>
  31. <ul id="transactionList"></ul>
  32. <a href="javascript:;" id="addNewEarningBtn" class="btn btn-primary btn-sm mt-10" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().addTransaction();" data-count="0"> + Add New</a>
  33. <input type="hidden" id="hdn_updatepayrundetailscontrol" class="value-control" value="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().UpdatePayRunEarningsObject();"/>
  34. </div>`;
  35. html += `<div class="updatepayrundeductiondetails">
  36. <div class='row text-dark font-weight-600'>
  37. <div class='col-md-6'>(-) DEDUCTIONS</div>
  38. <div class='col-md-6'>AMOUNT</div>
  39. </div>
  40. <div class='row font-weight-600'>
  41. <div class='col-md-6'>Pre-Tax Deductions</div>
  42. <div class='col-md-6'></div>
  43. </div>
  44. <ul id="PreTaxDeductionList"></ul>
  45. <div class='row font-weight-600'>
  46. <div class='col-md-6'>Taxes</div>
  47. <div class='col-md-6'></div>
  48. </div>
  49. <ul id="DeductionTaxesList"></ul>
  50. <div class='row font-weight-600'>
  51. <div class='col-md-6'>Post-Tax Deductions</div>
  52. <div class='col-md-6'></div>
  53. </div>
  54. <ul id="DeductionList"></ul>
  55. <ul id="DeductiontransactionList"></ul>
  56. <a href="javascript:;" id="addNewDeductionBtn" class="btn btn-primary btn-sm mt-10" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().addDeduction();" data-count="0"> + Add New</a>
  57. <input type="hidden" id="hdn_updatepayrundetailscontrol" class="value-control" value="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().UpdatePayRunDeductionsObject();"/>
  58. </div>`;
  59. $("#" + containerid).html(html);
  60. Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().getPayRunEmployee();
  61. }
  62. loadControlSettings(controlsettingjson, formpropertyid) { }
  63. loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) { }
  64. bindEditFormDetails(formpropertyid, propval, DocPropertyName) { }
  65. getPayRunEmployee() {
  66. var instance = this;
  67. var payrunemployeeid = +$(".active-employee-item").find("#hf_widgetitem_Id").val();
  68. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/hrms/payroll/managers/payrollmanager.js", function () {
  69. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().getemployee(payrunemployeeid).then(function (responce) {
  70. instance.employeeid = responce.result.EmployeeId;
  71. $("._employee").val(instance.employeeid);
  72. var empname = responce.result.FirstName;
  73. var employee = new Option(empname, instance.employeeid);
  74. $(".txtAutoComplete_employeeid").append(employee);
  75. $(".number_netpay").val(responce.result.NetPay);
  76. Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().GetPayRunEarningDetails(payrunemployeeid);
  77. });
  78. });
  79. }
  80. GetPayRunEarningDetails(payrunemployeeid) {
  81. var instance = this;
  82. instance.strtxt = '';
  83. instance.fileCacheHelper.loadJsFile("apps/hrms/payroll/managers/payrollmanager.js", function () {
  84. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().getpayrunemployeesalarycomponents(payrunemployeeid).then(function (response) {
  85. Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().bindHtml(response.result);
  86. });
  87. });
  88. }
  89. bindHtml(data) {
  90. $("#earningTypesList").empty();
  91. $("#PreTaxDeductionList").empty();
  92. $("#DeductionTaxesList").empty();
  93. $("#DeductionList").empty();
  94. var instance = this;
  95. var html = '';
  96. for (var i = 0; i < data.length; i++) {
  97. var componenttypeid = data[i].ComponentTypeId;
  98. var salaryComponentId = data[i].SalaryComponentId;
  99. html = Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().getHtml(data[i]);
  100. if (componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings || componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Reimbursements) {
  101. $("#earningTypesList").after(html);
  102. }
  103. if (componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.PreTaxDeductions && data[i].StatutoryTypeId != Bizgaze.Apps.Hrms.Enums.StatutoryTypes.ProfessionalTax) {
  104. $("#PreTaxDeductionList").after(html);
  105. }
  106. if (componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.Taxes || data[i].StatutoryTypeId == Bizgaze.Apps.Hrms.Enums.StatutoryTypes.ProfessionalTax) {
  107. $("#DeductionTaxesList").after(html);
  108. }
  109. if (componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.PostTaxDeductions) {
  110. $("#DeductionList").after(html);
  111. }
  112. instance.strtxt += "|" + salaryComponentId;
  113. }
  114. instance.strtxt = instance.strtxt.slice(1);
  115. }
  116. getHtml(data) {
  117. var html = '';
  118. html = `<li class='row my-10 listitems_component_${data.SalaryComponentId} liupdatepayrunearningdetails li_updatepayrundetails'>
  119. <input type="hidden" class='hf_earningtypeid' value='${data.ComponentTypeId}'/>
  120. <input type="hidden" class='hf_salarycomponentid' value='${data.SalaryComponentId}'/>
  121. <input type="hidden" class='hf_isactive' value='${data.IsAdded}'/>`;
  122. if (!data.IsAdded)
  123. html += `<div class='col-md-5'><input type="text" class="form-control txt_earningname" value='${data.PaySlipName}' disabled /></div>
  124. <div class='col-md-5'><input type="text" class="form-control txt_amount" disabled value='${data.Amount}'></div>
  125. <div class='col-md-2'></div>
  126. </li>`;
  127. else
  128. html += `<div class='col-md-5'><input type="text" class="form-control txt_earningname" value='${data.PaySlipName}' disabled /></div>
  129. <div class='col-md-5'><input type="text" class="form-control txt_amount" value='${data.Amount}'></div>
  130. <div class='col-md-2'><a href="javascript:;" class="btn btn-sm btn-outline-danger btn-icon btn-with-icon" onclick="Bizgaze.Apps.Hrms.Payroll.Controls.PayRun.UpdatePayRunDetails.Instance().deleteEarningType(${data.SalaryComponentId})"><span class="btn-icon-wrap"><i class="las la-trash font-22"></i></span></a></div>
  131. </li>`;
  132. return html;
  133. }
  134. taxComment() {
  135. var oldTaxAmount = Number($(".hf_pre_taxamount").val());
  136. var newTaxAmount = Number($(".txt_new_taxamount").val());
  137. if (oldTaxAmount != newTaxAmount) {
  138. $(".div_taxreason").removeClass("hidden");
  139. }
  140. else {
  141. $(".div_taxreason").addClass("hidden");
  142. $(".txt_taxreason").val('');
  143. }
  144. }
  145. deleteEarningType(id) {
  146. const instance = this;
  147. instance.updateEarningsTypeArr(id);
  148. $(`.listitems_component_${id}`).remove();
  149. $(`#earningTypeItem_${id}`).remove();
  150. }
  151. updateEarningsTypeArr(id) {
  152. const instance = this;
  153. const expenseTypeId = $(`#hfAutoCompleteId_SalaryComponents_${id}`).val();
  154. instance.strtxt = instance.strtxt.split('|');
  155. instance.strtxt = instance.strtxt.filter(v => v != expenseTypeId).join('|');
  156. }
  157. UpdatePayRunEarningsObject() {
  158. var data = new Array();
  159. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  160. var payRunId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_payrunid").Value;
  161. $(".ul_updatepayrundetails").find(".li_updatepayrundetails").each(function () {
  162. var earningType = Number($(this).find('.hf_earningtypeid').val());
  163. data.push({
  164. EarningName: $(this).find('.txt_earningname').val(),
  165. Amount: Number($(this).find('.txt_amount').val()),
  166. EarningType: earningType != null ? earningType : 0,
  167. PayRunId: payRunId,
  168. PayRunEmployeeId: +$(".active-employee-item").find("#hf_widgetitem_Id").val(),
  169. IsAdded: $(this).find('.hf_isactive').val(),
  170. SalaryComponentId: Number($(this).find('.hf_salarycomponentid').val()),
  171. });
  172. });
  173. return data;
  174. }
  175. addTransaction() {
  176. const instance = this;
  177. let listCount = +$('#addNewEarningBtn').attr('data-count');
  178. var html = `<li class='row my-10 liupdatepayrunearningdetails li_updatepayrundetails ' id="earningTypeItem_${listCount}" >
  179. <div class='col-md-5'>
  180. <select class="form-control hf_salarycomponentid" 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>
  181. <div class='col-md-5'><input type="text" class="form-control txt_amount"/></div>
  182. <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.UpdatePayRunDetails.Instance().deleteEarningType(${listCount})"><span class="btn-icon-wrap"><i class="las la-trash font-22"></i></span></a></div>
  183. </li>`;
  184. $("#transactionList").append(html);
  185. instance.autocompleteComponent(listCount, Bizgaze.Apps.Hrms.Enums.ComponentTypes.Earnings);
  186. $('#addNewEarningBtn').attr('data-count', listCount + 1);
  187. }
  188. addDeduction() {
  189. const instance = this;
  190. let listCount = +$('#addNewDeductionBtn').attr('data-count');
  191. var html = `<li class='row my-10 liupdatepayrundeductiondetails li_updatepayrundetails' id="deductionTypeItem_${listCount}" >
  192. <input type="hidden" class='hf_isactive' value='true'/>
  193. <div class='col-md-5'>
  194. <select class="form-control hf_salarycomponentid" id ="txtAutoComplete_deductionSalary_${listCount}" data-placeholder="Select"></select><input type="hidden" class='hf_earningtypeid' value='0'/><input type="hidden" id="hfAutoCompleteId_deductionSalaryComponents_${listCount}" class="hf_deductiontypeid" /></div>
  195. <div class='col-md-5'><input type="text" class="form-control txt_amount"/></div>
  196. <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.UpdatePayRunDetails.Instance().deleteDeductionType(${listCount})"><span class="btn-icon-wrap"><i class="las la-trash font-22"></i></span></a></div>
  197. </li>`;
  198. $("#DeductiontransactionList").append(html);
  199. instance.autocompleteComponent(listCount, Bizgaze.Apps.Hrms.Enums.ComponentTypes.PostTaxDeductions);
  200. $('#addNewDeductionBtn').attr('data-count', listCount + 1);
  201. }
  202. autocompleteComponent(rowindexid, componenttypeid) {
  203. const instance = this;
  204. let componentname = $(`#hfAutoCompleteId_SalaryComponents_${rowindexid}`);
  205. let componentname1 = `#txtAutoComplete_Salary_${rowindexid}`;
  206. if (componenttypeid == Bizgaze.Apps.Hrms.Enums.ComponentTypes.PostTaxDeductions) {
  207. componentname = $(`#hfAutoCompleteId_deductionSalaryComponents_${rowindexid}`);
  208. componentname1 = `#txtAutoComplete_deductionSalary_${rowindexid}`;
  209. }
  210. var url = _appsettings.server_url() + '/apis/v4/bizgaze/hrms/payroll/getsalarycomponentautocomplete/componenttypeid/' + componenttypeid + '/salarycomponentids/' + instance.strtxt + '/earningtypeid/' + 0;
  211. AutoCompleteHelper.getHelper().Create(componentname1, componentname, url, function (response) {
  212. $(`#txtAutoComplete_Salary_${rowindexid}`).off('select2:select').on('select2:select', function () {
  213. const expenseTypeId = $(this).val();
  214. if (!$.isArray(instance.strtxt)) {
  215. instance.strtxt = instance.strtxt.split('|');
  216. instance.strtxt.push(expenseTypeId);
  217. instance.strtxt = instance.strtxt.join('|');
  218. }
  219. });
  220. $(componentname1).off('select2:clear').on('select2:clear', function () {
  221. instance.updateEarningsTypeArr(rowindexid);
  222. });
  223. });
  224. }
  225. deleteDeductionType(id) {
  226. const instance = this;
  227. instance.updateDeductionsTypeArr(id);
  228. $(`#deductionTypeItem_${id}`).remove();
  229. $(`.listitems_component_${id}`).remove();
  230. }
  231. updateDeductionsTypeArr(id) {
  232. const instance = this;
  233. const expenseTypeId = $(`#hfAutoCompleteId_deductionSalaryComponents_${id}`).val();
  234. instance.strtxt = instance.strtxt.split('|');
  235. instance.strtxt = instance.strtxt.filter(v => v != expenseTypeId).join('|');
  236. }
  237. printPayslip(payrunEmployeeId) {
  238. var instance = this;
  239. var payrunEmployeeIda = $("#hf_widgetitem_Id").val();
  240. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/hrms/payroll/managers/payrollmanager.js", "platform/core/helpers/printhelper/printhelper.js"], function () {
  241. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().payslipPrint(payrunEmployeeId).then(function (response) {
  242. Unibase.Platform.Helpers.PrintHelper.Instance().printPopup(response.result.PrintHTML);
  243. });
  244. });
  245. }
  246. printPopup(data) {
  247. var mywindow = window.open('', 'my Print', 'height=400,width=850');
  248. var content = '<html><head><title>Print</title><link rel="stylesheet" href="lib/bizgaze/print.css" /><link rel="stylesheet" href="lib/bootstrap/bootstrap-theme.min.css" /></head><body>';
  249. content += data;
  250. content += "<script>print();</script>";
  251. content += '</body></html>';
  252. mywindow.document.write(content);
  253. return true;
  254. }
  255. getEmployeeCount() {
  256. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  257. var payrunId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_payrunid").Value;
  258. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/hrms/payroll/managers/payrollmanager.js", "platform/core/helpers/printhelper/printhelper.js"], function () {
  259. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().getEmployeeCount(payrunId).then(function (response) {
  260. if (response.result.length != 0) {
  261. var employeeCount = response.result[0];
  262. $(".number_empcount").val(employeeCount);
  263. }
  264. else {
  265. $(".number_empcount").val(0);
  266. }
  267. });
  268. });
  269. }
  270. ConfirmPayrun() {
  271. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  272. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  273. var stage = String(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_shortcode").Value);
  274. if ((stage == "APD") || (stage == "INP")) {
  275. $(detailContainer).find('.DetailSetting_' + '' + InstalledAppId + '' + '_Confirm').parent('li').removeClass('hidden');
  276. }
  277. else {
  278. $(detailContainer).find('.DetailSetting_' + '' + InstalledAppId + '' + '_Confirm').parent('li').addClass('hidden');
  279. }
  280. }
  281. stageChange() {
  282. var instance = this;
  283. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  284. var versionGuid = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_versionguid").Value;
  285. var stageId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_stageid").Value;
  286. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  287. var stage = String(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_shortcode").Value);
  288. if (stage == "DFT") {
  289. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForApproval').parent('li').removeClass('hidden');
  290. }
  291. else {
  292. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForApproval').parent('li').addClass('hidden');
  293. }
  294. $(".DetailSetting_" + installedAppId + "_SubmitForApproval").click(function () {
  295. instance.fileCacheHelper.loadJsFile('apps/hrms/payroll/managers/payrollmanager.js', function () {
  296. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().stageChange(installedAppId, versionGuid, stageId).then(function (response) {
  297. MessageHelper.Instance().showSuccess(response.message, "div_message");
  298. let obj = Unibase.Themes.Compact.Components.Details.Instance();
  299. obj._recordId = Unibase.Themes.Compact.Components.Details.Instance()._recordId;
  300. obj._installedAppId = Unibase.Themes.Compact.Components.Details.Instance()._installedAppId;
  301. Unibase.Themes.Compact.Components.Details.Instance().loadPortlets(obj);
  302. });
  303. });
  304. });
  305. }
  306. GetPayRunDetails(employeeid) {
  307. var instance = this;
  308. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  309. var toDate = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_todate").Value;
  310. var fromDate = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_fromdate").Value;
  311. var Fdate = moment(fromDate, "DD/MM/YYYY").format("DD-MM-YYYY");
  312. var Tdate = moment(toDate, "DD/MM/YYYY").format("DD-MM-YYYY");
  313. instance.fileCacheHelper.loadJsFile('apps/hrms/payroll/managers/payrollmanager.js', function () {
  314. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().getPayRunDetails(employeeid, Fdate, Tdate).then(function (response) {
  315. });
  316. });
  317. }
  318. esiNumberValidation(e, id) {
  319. let inputVal = e.target.value;
  320. let isLastElemet = e.originalEvent.data;
  321. if (isLastElemet === null) {
  322. return;
  323. }
  324. let lastElemG = inputVal[inputVal.length - 1];
  325. let hasSpecialChar = true;
  326. const charCodeSpec = inputVal.charCodeAt(inputVal.length - 1);
  327. if ((charCodeSpec >= 33 && charCodeSpec <= 47) || (charCodeSpec >= 58 && charCodeSpec <= 64) || (charCodeSpec >= 91 && charCodeSpec <= 96) || (charCodeSpec >= 123 && charCodeSpec <= 126)) {
  328. hasSpecialChar = false;
  329. }
  330. let isAlphaSlash = true;
  331. const charCode = inputVal.charCodeAt(inputVal.length - 1);
  332. if (!(charCode >= 65 && charCode <= 90 || charCode >= 97 && charCode <= 122 || charCode === 47)) {
  333. isAlphaSlash = false;
  334. }
  335. if (!hasSpecialChar || lastElemG === " " || isAlphaSlash) {
  336. const slipt = inputVal.slice(0, inputVal.length - 1);
  337. $(`#${id}`).val(slipt);
  338. return;
  339. }
  340. if (inputVal.length > 21) {
  341. const slipt = inputVal.slice(0, inputVal.length - 1);
  342. $(`#${id}`).val(slipt);
  343. return;
  344. }
  345. let textLen = inputVal.length;
  346. if (textLen === 3 || textLen == 6 || textLen == 13 || textLen == 17) {
  347. const lasChar = inputVal.charCodeAt(inputVal.length - 1);
  348. if (lasChar != '-') {
  349. let lastTemp = inputVal[inputVal.length - 1];
  350. inputVal = inputVal.slice(0, inputVal.length - 1) + "-" + lastTemp;
  351. }
  352. }
  353. let temp = inputVal;
  354. if (textLen == 2 || textLen == 5 || textLen == 12 || textLen == 16) {
  355. temp += "-";
  356. }
  357. $(`#${id}`).val(temp);
  358. }
  359. epfNumberValidation(e, id) {
  360. console.log(id);
  361. let inputVal = e.target.value;
  362. let isLastElemet = e.originalEvent.data;
  363. if (isLastElemet === null) {
  364. return;
  365. }
  366. let lastElemG = inputVal[inputVal.length - 1];
  367. let hasSpecialChar = true;
  368. const charCode = inputVal.charCodeAt(inputVal.length - 1);
  369. if ((charCode >= 33 && charCode <= 47) || (charCode >= 58 && charCode <= 64) || (charCode >= 91 && charCode <= 96) || (charCode >= 123 && charCode <= 126)) {
  370. hasSpecialChar = false;
  371. }
  372. if (!hasSpecialChar || lastElemG === " ") {
  373. const slipt = inputVal.slice(0, inputVal.length - 1);
  374. $(`#${id}`).val(slipt);
  375. return;
  376. }
  377. if (inputVal.length > 27) {
  378. const slipt = inputVal.slice(0, inputVal.length - 1);
  379. $(`#${id}`).val(slipt);
  380. return;
  381. }
  382. let modText = "";
  383. if (inputVal.length <= 6) {
  384. let lastElem = inputVal[inputVal.length - 1];
  385. let isNumberSlash = true;
  386. const charCode = inputVal.charCodeAt(inputVal.length - 1);
  387. if (!(charCode >= 48 && charCode <= 57 || charCode === 47)) {
  388. isNumberSlash = false;
  389. }
  390. if (isNumberSlash) {
  391. const slipt = inputVal.slice(0, inputVal.length - 1);
  392. $(`#${id}`).val(slipt);
  393. return;
  394. }
  395. ;
  396. if (inputVal.length == 3 || inputVal.length == 7) {
  397. if (inputVal[inputVal.length - 1] != "/") {
  398. let lastTemp = inputVal[inputVal.length - 1];
  399. inputVal = inputVal.slice(0, inputVal.length - 1) + "/" + lastTemp;
  400. }
  401. }
  402. let temp = inputVal.toUpperCase();
  403. if (inputVal.length == 2 || inputVal.length == 6) {
  404. temp += "/";
  405. }
  406. $(`#${id}`).val(temp);
  407. }
  408. else {
  409. if (inputVal.length === 7) {
  410. if (inputVal[inputVal.length - 1] != "/") {
  411. let lastTemp = inputVal[inputVal.length - 1];
  412. inputVal = inputVal.slice(0, inputVal.length - 1) + "/" + lastTemp;
  413. }
  414. }
  415. let lastElem = inputVal[inputVal.length - 1];
  416. let isAlphaSlash = true;
  417. const charCode = inputVal.charCodeAt(inputVal.length - 1);
  418. if (!(charCode >= 65 && charCode <= 90 || charCode >= 97 && charCode <= 122 || charCode === 47)) {
  419. isAlphaSlash = false;
  420. }
  421. if (isAlphaSlash) {
  422. const slipt = inputVal.slice(0, inputVal.length - 1);
  423. $(`#${id}`).val(slipt);
  424. return;
  425. }
  426. if (inputVal.length == 15 || inputVal.length == 19) {
  427. if (inputVal[inputVal.length - 1] != "/") {
  428. let lastTemp = inputVal[inputVal.length - 1];
  429. inputVal = inputVal.slice(0, inputVal.length - 1) + "/" + lastTemp;
  430. }
  431. }
  432. let temp = inputVal;
  433. if (inputVal.length == 14 || inputVal.length == 18) {
  434. temp += "/";
  435. }
  436. $(`#${id}`).val(temp);
  437. }
  438. }
  439. payrunEpfNumberValidation(e, id) {
  440. console.log(id);
  441. let inputVal = e.target.value;
  442. let isLastElemet = e.originalEvent.data;
  443. if (isLastElemet === null) {
  444. return;
  445. }
  446. let lastElemG = inputVal[inputVal.length - 1];
  447. let hasSpecialChar = true;
  448. const charCode = inputVal.charCodeAt(inputVal.length - 1);
  449. if ((charCode >= 33 && charCode <= 47) || (charCode >= 58 && charCode <= 64) || (charCode >= 91 && charCode <= 96) || (charCode >= 123 && charCode <= 126)) {
  450. hasSpecialChar = false;
  451. }
  452. if (!hasSpecialChar || lastElemG === " ") {
  453. const slipt = inputVal.slice(0, inputVal.length - 1);
  454. $(`#${id}`).val(slipt);
  455. return;
  456. }
  457. if (inputVal.length > 18) {
  458. const slipt = inputVal.slice(0, inputVal.length - 1);
  459. $(`#${id}`).val(slipt);
  460. return;
  461. }
  462. let modText = "";
  463. if (inputVal.length <= 6) {
  464. let lastElem = inputVal[inputVal.length - 1];
  465. let isNumberSlash = true;
  466. const charCode = inputVal.charCodeAt(inputVal.length - 1);
  467. if (!(charCode >= 48 && charCode <= 57 || charCode === 47)) {
  468. isNumberSlash = false;
  469. }
  470. if (isNumberSlash) {
  471. const slipt = inputVal.slice(0, inputVal.length - 1);
  472. $(`#${id}`).val(slipt);
  473. return;
  474. }
  475. ;
  476. if (inputVal.length == 3 || inputVal.length == 7) {
  477. if (inputVal[inputVal.length - 1] != "/") {
  478. let lastTemp = inputVal[inputVal.length - 1];
  479. inputVal = inputVal.slice(0, inputVal.length - 1) + "/" + lastTemp;
  480. }
  481. }
  482. let temp = inputVal.toUpperCase();
  483. if (inputVal.length == 2 || inputVal.length == 6) {
  484. temp += "/";
  485. }
  486. $(`#${id}`).val(temp);
  487. }
  488. else {
  489. if (inputVal.length === 7) {
  490. if (inputVal[inputVal.length - 1] != "/") {
  491. let lastTemp = inputVal[inputVal.length - 1];
  492. inputVal = inputVal.slice(0, inputVal.length - 1) + "/" + lastTemp;
  493. }
  494. }
  495. let lastElem = inputVal[inputVal.length - 1];
  496. let isAlphaSlash = true;
  497. const charCode = inputVal.charCodeAt(inputVal.length - 1);
  498. if (!(charCode >= 65 && charCode <= 90 || charCode >= 97 && charCode <= 122 || charCode === 47)) {
  499. isAlphaSlash = false;
  500. }
  501. if (isAlphaSlash) {
  502. const slipt = inputVal.slice(0, inputVal.length - 1);
  503. $(`#${id}`).val(slipt);
  504. return;
  505. }
  506. if (inputVal.length == 15) {
  507. if (inputVal[inputVal.length - 1] != "/") {
  508. let lastTemp = inputVal[inputVal.length - 1];
  509. inputVal = inputVal.slice(0, inputVal.length - 1) + "/" + lastTemp;
  510. }
  511. }
  512. let temp = inputVal;
  513. if (inputVal.length == 14) {
  514. temp += "/";
  515. }
  516. $(`#${id}`).val(temp);
  517. }
  518. }
  519. static Instance() {
  520. if (this.instance === undefined) {
  521. this.instance = new UpdatePayRunDetails();
  522. }
  523. return this.instance;
  524. }
  525. }
  526. PayRun.UpdatePayRunDetails = UpdatePayRunDetails;
  527. })(PayRun = Controls.PayRun || (Controls.PayRun = {}));
  528. })(Controls = Payroll.Controls || (Payroll.Controls = {}));
  529. })(Payroll = Hrms.Payroll || (Hrms.Payroll = {}));
  530. })(Hrms = Apps.Hrms || (Apps.Hrms = {}));
  531. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  532. })(Bizgaze || (Bizgaze = {}));