Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

reviseemployeesalary.component.js 74KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717
  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 EmployeeSalary;
  12. (function (EmployeeSalary) {
  13. class ReviseEmployeeSalary extends Unibase.Platform.Core.BaseComponent {
  14. constructor() {
  15. super(...arguments);
  16. this.emprevise_Array = [];
  17. }
  18. init(formpropertyid, prop, callback) {
  19. var container = "control-container-" + formpropertyid;
  20. var instance = this;
  21. instance.local_container = container;
  22. instance.editEarning = false;
  23. instance.findtxtcrRdr = 2;
  24. instance.rowindexid = parseInt('00001', 8);
  25. instance.flag = 0;
  26. instance.fileCacheHelper.loadJsFile('platform/core/helpers/numberhelper/numberhelper.js', function () {
  27. instance.changeAnnualctcdata();
  28. instance.revisecalculation();
  29. });
  30. let componentitems = {
  31. "Earnings": [],
  32. "Deductions": [],
  33. "Reimbursements": []
  34. };
  35. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array.push(componentitems);
  36. }
  37. loadControlSettings(controlsettingjson, formpropertyid) { }
  38. loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) { }
  39. bindEditFormDetails(formpropertyid, propval, DocPropertyName) { }
  40. loadControl(container, prop) {
  41. var instance = this;
  42. instance.rowindexid = prop.FormPropertyId;
  43. var html = "";
  44. html = `<table class="employeerevisesalaryearningdetails_table" id="employeerevisesalaryearningdetails_table" ><div class="row" mb-0 ><input type = "hidden" id = "hdn_Earningscontrol" class="value-control" value = "Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().reviseearingControlObj();"><tr class="employeesalaryearningdetails_table_header"><th class="col-sm-3"> Salary Components <span class= "text-danger">*</span> </th><th class="col-sm-3"> Calculation Type <span class= "text-danger">*</span></th><th class="col-sm-2"> Amount </th><th class="col-sm-2"> Monthly Amount </th><th class="col-sm-2"> Annually Amount </th></tr><tr></tr></div></table>`;
  45. $("#" + container).html(html);
  46. }
  47. reviseemployeesalary(employeeid) {
  48. var instance = this;
  49. var rowindexid = 0;
  50. var monthlytotal = 0;
  51. var annuallytotal = 0;
  52. if (Number(rowindexid) == 0) {
  53. instance.fileCacheHelper.loadJsFile("apps/hrms/payroll/managers/payrollmanager.js", function () {
  54. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().reviseemployeeSalaryDetails(employeeid).then(function (response) {
  55. $("#employeerevisesalaryearningdetails_table .employeerevisesalaryearningdetails-list-items").remove();
  56. if (response.result.Earnings.length != 0) {
  57. var Headtext = '<tbody><tr> <td colspan="5"> <h5>Earnings</h5></td></tr>';
  58. $("#employeerevisesalaryearningdetails_table").append(Headtext);
  59. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings = [];
  60. for (var i = 0; i < response.result.Earnings.length; i++) {
  61. var earningdata = response.result.Earnings[i];
  62. var templateid = earningdata.TemplateId;
  63. var tempname = earningdata.TemplateName;
  64. var templatename = new Option(tempname, templateid);
  65. $(".txtAutoComplete_salarytemplateid").append(templatename);
  66. var annualctc = earningdata.AnnualCTC;
  67. var employeesalarydetailsubcomponentid = earningdata.EmployeeSalaryDetailSubComponentId;
  68. $(".txt_annualctc").val(annualctc);
  69. $(".hdn_employeesalarydetailid").val(earningdata.EmployeeSalaryDetailId);
  70. var html = "";
  71. let rowindexid = employeesalarydetailsubcomponentid;
  72. var item = {
  73. calculationtype: earningdata.CalculationType,
  74. calculationtypename: earningdata.CalculationTypeName,
  75. salarytemplateid: earningdata.EmployeeSalaryDetailSubComponentId,
  76. earningtype: earningdata.EarningTypeId,
  77. earningtypename: earningdata.EarningTypeName,
  78. amount: earningdata.CalculationAmont,
  79. monthlyamount: earningdata.AmountMonthly,
  80. annualamount: earningdata.AmountAnnually,
  81. salarycomponentid: earningdata.SalaryComponentId,
  82. deductionplanid: earningdata.DeductionPlanId,
  83. reimbursementtype: earningdata.ReimbursementTypeId,
  84. isadded: true
  85. };
  86. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.push(item);
  87. var html = '<tbody><tr class="employeerevisesalaryearningdetails-list-items employeerevisesalaryearningdetails-item-active value-row li-' + rowindexid + '" tid="' + rowindexid + '" id="employeerevisesalaryearningdetails_item_TRN' + rowindexid + '" ><td> <div class="input-group w-80 rounded-0"> <select class="txtAutoComplete_Salary form-control w-75 border-top-0 border-right-0 border-left-0 rounded-0" id="txtAutoComplete_Salary_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  88. '<td> <div class="input-group w-75 rounded-0 "> <select class="ddl_CalculationType form-control border-top-0 border-right-0 border-left-0 rounded-0" id="ddl_CalculationType_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  89. '<td class="pr-40"> <input type="text" class="txt_CalculationAmount form-control text-right" id="txt_CalculationAmount_' + rowindexid + '" data-trnsactid="' + rowindexid + '" value="0"></td>' +
  90. '<td class="input-group-append"> <input type="text" id="txt_AmountMonthly_' + rowindexid + '" class="txt_AmountMonthly form-control w-100 text-right" value="0" style="pointer-events:none"> </td>' +
  91. '<td align="right" class="pl-40"> <input type="text" id = "txt_AmountAnnually_' + rowindexid + '" class="txt_AmountAnnually form-control w-100 text-right" value="0" style="pointer-events:none"> </td>';
  92. html += '</tr></tbody>';
  93. $("#employeerevisesalaryearningdetails_table").append(html);
  94. for (var j = 1; j < 4; j++) {
  95. if (earningdata.CalculationType == j + "") {
  96. var reportColumnText = new Option(earningdata.CalculationTypeName, earningdata.CalculationType, true);
  97. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').append(reportColumnText);
  98. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').val(earningdata.CalculationType).trigger('change');
  99. }
  100. }
  101. for (var k = 1; k < 33; k++) {
  102. if (earningdata.EarningTypeId == k + "") {
  103. $("#txtAutoComplete_Salary_" + employeesalarydetailsubcomponentid).append('<option value="' + earningdata.EarningTypeId + '">' + earningdata.EarningTypeName + '</option>');
  104. }
  105. }
  106. $('#txt_AmountMonthly_' + rowindexid + '').val((earningdata.AmountMonthly).toFixed(2));
  107. $('#txt_AmountAnnually_' + rowindexid + '').val((earningdata.AmountAnnually).toFixed(2));
  108. $("#txt_CalculationAmount_" + rowindexid + '').val(earningdata.CalculationAmont);
  109. }
  110. $("#employeerevisesalaryearningdetails_table:last").find(".txt_CalculationAmount").keyup(function () {
  111. let amount = $(this).val();
  112. let salarytemplateid = $(this).attr("data-trnsactid");
  113. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisesalaryitem_Calculation(salarytemplateid, amount);
  114. });
  115. $("#employeerevisesalaryearningdetails_table").removeClass('d-none');
  116. }
  117. if (response.result.Deductions.length != 0) {
  118. var Headtext = '<tbody><tr> <td colspan="5"> <h5>Deductions</h5></td></tr>';
  119. $("#employeerevisesalaryearningdetails_table").append(Headtext);
  120. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions = [];
  121. for (var i = 0; i < response.result.Deductions.length; i++) {
  122. let Deductionsdata = response.result.Deductions[i];
  123. let employeesalarydetailsubcomponentid = Deductionsdata.EmployeeSalaryDetailSubComponentId;
  124. let rowindexid = employeesalarydetailsubcomponentid;
  125. var item = {
  126. calculationtype: Deductionsdata.CalculationType,
  127. calculationtypename: Deductionsdata.CalculationTypeName,
  128. salarytemplateid: Deductionsdata.EmployeeSalaryDetailSubComponentId,
  129. earningtype: Deductionsdata.EarningTypeId,
  130. earningtypename: Deductionsdata.EarningTypeName,
  131. amount: Deductionsdata.CalculationAmont,
  132. monthlyamount: Deductionsdata.AmountMonthly,
  133. annualamount: Deductionsdata.AmountAnnually,
  134. salarycomponentid: Deductionsdata.SalaryComponentId,
  135. deductionplanid: Deductionsdata.DeductionPlanId,
  136. reimbursementtype: Deductionsdata.ReimbursementTypeId,
  137. isadded: true
  138. };
  139. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.push(item);
  140. var html = '<tbody><tr class="employeesalarydeductiondetails-list-items employeesalarydeductiondetails-item-active value-row li-' + rowindexid + '" tid="' + rowindexid + '" id="employeesalarydeductiondetails_item_TRN' + rowindexid + '" ><td> <div class="input-group w-80 rounded-0"> <select class="txtAutoComplete_Salary form-control w-75 border-top-0 border-right-0 border-left-0 rounded-0" id="txtAutoComplete_Salary_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  141. '<td> <div class="input-group w-75 rounded-0 "> <select class="ddl_CalculationType form-control border-top-0 border-right-0 border-left-0 rounded-0" id="ddl_CalculationType_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  142. '<td class="pr-40"> <input type="text" class="txt_CalculationAmount form-control text-right" id="txt_CalculationAmount_' + rowindexid + '" data-trnsactid="' + rowindexid + '" value="0"></td>' +
  143. '<td class="input-group-append"> <input type="text" id="txt_AmountMonthly_' + rowindexid + '" class="txt_AmountMonthly form-control w-100 text-right" value="0" style="pointer-events:none"> </td>' +
  144. '<td align="right" class="pl-40"> <input type="text" id = "txt_AmountAnnually_' + rowindexid + '" class="txt_AmountAnnually form-control w-100 text-right" value="0" style="pointer-events:none"> </td>';
  145. html += '</tr></tbody>';
  146. $("#employeerevisesalaryearningdetails_table").append(html);
  147. for (var j = 1; j < 4; j++) {
  148. if (Deductionsdata.CalculationType == j + "") {
  149. var reportColumnText = new Option(Deductionsdata.CalculationTypeName, Deductionsdata.CalculationType, true);
  150. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').append(reportColumnText);
  151. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').val(Deductionsdata.CalculationType).trigger('change');
  152. }
  153. }
  154. $("#txtAutoComplete_Salary_" + employeesalarydetailsubcomponentid).append('<option value="' + Deductionsdata.SalaryComponentId + '">' + Deductionsdata.EarningTypeName + '</option>');
  155. $('#txt_AmountMonthly_' + rowindexid + '').val((Deductionsdata.AmountMonthly).toFixed(2));
  156. $('#txt_AmountAnnually_' + rowindexid + '').val((Deductionsdata.AmountAnnually).toFixed(2));
  157. $("#txt_CalculationAmount_" + rowindexid + '').val(Deductionsdata.CalculationAmont);
  158. }
  159. $("#employeesalaryearningdetails_table:last").find(".txt_CalculationAmount").keyup(function () {
  160. let amount = $(this).val();
  161. let salarytemplateid = $(this).attr("data-trnsactid");
  162. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisesalaryitem_Calculation(salarytemplateid, amount);
  163. });
  164. $("#employeerevisesalaryearningdetails_table").removeClass('d-none');
  165. }
  166. if (response.result.Reimbursements.length != 0) {
  167. var Headtext = '<tbody><tr> <td colspan="5"> <h5>Reimbursements</h5></td></tr>';
  168. $("#employeerevisesalaryearningdetails_table").append(Headtext);
  169. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements = [];
  170. for (var i = 0; i < response.result.Reimbursements.length; i++) {
  171. let Reimbursementsdata = response.result.Reimbursements[i];
  172. let employeesalarydetailsubcomponentid = Reimbursementsdata.EmployeeSalaryDetailSubComponentId;
  173. let rowindexid = employeesalarydetailsubcomponentid;
  174. var item = {
  175. calculationtype: Reimbursementsdata.CalculationType,
  176. calculationtypename: Reimbursementsdata.CalculationTypeName,
  177. salarytemplateid: Reimbursementsdata.EmployeeSalaryDetailSubComponentId,
  178. earningtype: Reimbursementsdata.EarningTypeId,
  179. earningtypename: Reimbursementsdata.EarningTypeName,
  180. amount: Reimbursementsdata.CalculationAmont,
  181. monthlyamount: Reimbursementsdata.AmountMonthly,
  182. annualamount: Reimbursementsdata.AmountAnnually,
  183. salarycomponentid: Reimbursementsdata.SalaryComponentId,
  184. deductionplanid: Reimbursementsdata.DeductionPlanId,
  185. reimbursementtype: Reimbursementsdata.ReimbursementTypeId,
  186. isadded: true
  187. };
  188. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements.push(item);
  189. var html = '<tbody><tr class="employeesalaryreimbursementdetails-list-items employeesalaryreimbursementdetails-item-active value-row li-' + rowindexid + '" tid="' + rowindexid + '" id="employeesalaryreimbursementdetails_item_TRN' + rowindexid + '" ><td> <div class="input-group w-80 rounded-0"> <select class="txtAutoComplete_Salary form-control w-75 border-top-0 border-right-0 border-left-0 rounded-0" id="txtAutoComplete_Salary_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  190. '<td> <div class="input-group w-75 rounded-0 "> <select class="ddl_CalculationType form-control border-top-0 border-right-0 border-left-0 rounded-0" id="ddl_CalculationType_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  191. '<td class="pr-40"> <input type="text" class="txt_CalculationAmount form-control text-right" id="txt_CalculationAmount_' + rowindexid + '" data-trnsactid="' + rowindexid + '" value="0"></td>' +
  192. '<td class="input-group-append"> <input type="text" id="txt_AmountMonthly_' + rowindexid + '" class="txt_AmountMonthly form-control w-100 text-right" value="0" style="pointer-events:none"> </td>' +
  193. '<td align="right" class="pl-40"> <input type="text" id = "txt_AmountAnnually_' + rowindexid + '" class="txt_AmountAnnually form-control w-100 text-right" value="0" style="pointer-events:none"> </td>';
  194. html += '</tr></tbody>';
  195. $("#employeerevisesalaryearningdetails_table").append(html);
  196. for (var j = 1; j < 4; j++) {
  197. if (Reimbursementsdata.CalculationType == j + "") {
  198. var reportColumnText = new Option(Reimbursementsdata.CalculationTypeName, Reimbursementsdata.CalculationType, true);
  199. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').append(reportColumnText);
  200. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').val(Reimbursementsdata.CalculationType).trigger('change');
  201. }
  202. }
  203. for (var k = 1; k < 33; k++) {
  204. if (Reimbursementsdata.ReimbursementTypeId == k + "") {
  205. $("#txtAutoComplete_Salary_" + employeesalarydetailsubcomponentid).append('<option value="' + Reimbursementsdata.ReimbursementTypeId + '">' + Reimbursementsdata.EarningTypeName + '</option>');
  206. }
  207. }
  208. $('#txt_AmountMonthly_' + rowindexid + '').val((Reimbursementsdata.AmountMonthly).toFixed(2));
  209. $('#txt_AmountAnnually_' + rowindexid + '').val((Reimbursementsdata.AmountAnnually).toFixed(2));
  210. $("#txt_CalculationAmount_" + rowindexid + '').val(Reimbursementsdata.CalculationAmont);
  211. }
  212. $("#employeerevisesalaryearningdetails_table:last").find(".txt_CalculationAmount").keyup(function () {
  213. let amount = $(this).val();
  214. let salarytemplateid = $(this).attr("data-trnsactid");
  215. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisesalaryitem_Calculation(salarytemplateid, amount);
  216. });
  217. $("#employeerevisesalaryearningdetails_table").removeClass('d-none');
  218. }
  219. else {
  220. $("#employeerevisesalaryearningdetails_table").html("");
  221. $(".txt_annualctc").val("");
  222. }
  223. });
  224. });
  225. }
  226. var footerhtml = '<tfoot class="bg-grey-light-4"><tr><td></td><td class="px-3 py-20">Cost to Company</td><td></td><td></td><td class="text-right" id = "amountmonthly">' + monthlytotal + '</td><td class="text-right" id="amountannully">' + annuallytotal + '</td></tr></tfoot>';
  227. $("#employeerevisesalaryearningdetails_table").addClass('d-none');
  228. $("#employeerevisesalaryearningdetails_table").append(footerhtml);
  229. }
  230. bindrevisesalarydetails(empid) {
  231. var instance = this;
  232. var rowindexid = 0;
  233. var monthlytotal = 0;
  234. var annuallytotal = 0;
  235. instance.fileCacheHelper.loadJsFile("apps/hrms/payroll/managers/payrollmanager.js", function () {
  236. Bizgaze.Apps.Hrms.Payroll.Managers.PayRollManager.Instance().bindReviseSalaryDetails(empid).then(function (response) {
  237. $("#employeerevisesalaryearningdetails_table").removeClass('d-none');
  238. $("#employeerevisesalaryearningdetails_table .employeerevisesalaryearningdetails-item-active").remove();
  239. if (response.result.Earnings.length != 0) {
  240. var Headtext = '<tbody><tr> <td colspan="5"> <h5>Earnings</h5></td></tr>';
  241. $("#employeerevisesalaryearningdetails_table").append(Headtext);
  242. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings = [];
  243. for (var i = 0; i < response.result.Earnings.length; i++) {
  244. var earningdata = response.result.Earnings[i];
  245. var templateid = earningdata.TemplateId;
  246. var tempname = earningdata.TemplateName;
  247. var templatename = new Option(tempname, templateid);
  248. $(".txtAutoComplete_salarytemplateid").append(templatename);
  249. var annualctc = earningdata.AnnualCTC;
  250. var employeesalarydetailsubcomponentid = earningdata.EmployeeSalaryDetailSubComponentId;
  251. $(".txt_annualctc").val(annualctc);
  252. $(".hdn_employeesalarydetailid").val(earningdata.EmployeeSalaryDetailId);
  253. if (earningdata.ReviseCalculationType == 1) {
  254. $("#rdb_revisecalculationtype_" + earningdata.ReviseCalculationType).prop("checked", true);
  255. $("#hdnRdb_revisecalculationtype").val(earningdata.ReviseCalculationType);
  256. }
  257. else if (earningdata.ReviseCalculationType == 2) {
  258. $("#rdb_revisecalculationtype_" + earningdata.ReviseCalculationType).prop("checked", true);
  259. $("#hdnRdb_revisecalculationtype").val(earningdata.ReviseCalculationType);
  260. }
  261. $(".txt_revisepercentage").val(earningdata.RevisePercentage);
  262. var saldate = earningdata.ReviseSalaryEffectiveFrom;
  263. var date = moment(saldate).format("DD/MM/YYYY");
  264. $(".date_revisesalaryeffectivefrom").val(date);
  265. $(".hfdate_revisesalaryeffectivefrom").val(date);
  266. var payoutdate = earningdata.PayoutMonth;
  267. var paydate = moment(payoutdate).format("DD/MM/YYYY");
  268. $(".date_payoutmonth").val(paydate);
  269. $(".hfdate_payoutmonth").val(paydate);
  270. var html = "";
  271. let rowindexid = employeesalarydetailsubcomponentid;
  272. var item = {
  273. calculationtype: earningdata.CalculationType,
  274. calculationtypename: earningdata.CalculationTypeName,
  275. salarytemplateid: earningdata.EmployeeSalaryDetailSubComponentId,
  276. earningtype: earningdata.EarningTypeId,
  277. earningtypename: earningdata.EarningTypeName,
  278. amount: earningdata.CalculationAmont,
  279. monthlyamount: earningdata.AmountMonthly,
  280. annualamount: earningdata.AmountAnnually,
  281. salarycomponentid: earningdata.SalaryComponentId,
  282. deductionplanid: earningdata.DeductionPlanId,
  283. reimbursementtype: earningdata.ReimbursementTypeId,
  284. isadded: true
  285. };
  286. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.push(item);
  287. var html = '<tbody><tr class="employeerevisesalaryearningdetails-list-items employeerevisesalaryearningdetails-item-active value-row li-' + rowindexid + '" tid="' + rowindexid + '" id="employeerevisesalaryearningdetails_item_TRN' + rowindexid + '" ><td> <div class="input-group w-80 rounded-0"> <select class="txtAutoComplete_Salary form-control w-75 border-top-0 border-right-0 border-left-0 rounded-0" id="txtAutoComplete_Salary_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  288. '<td> <div class="input-group w-75 rounded-0 "> <select class="ddl_CalculationType form-control border-top-0 border-right-0 border-left-0 rounded-0" id="ddl_CalculationType_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  289. '<td class="pr-40"> <input type="text" class="txt_CalculationAmount form-control text-right" id="txt_CalculationAmount_' + rowindexid + '" data-trnsactid="' + rowindexid + '" value="0"></td>' +
  290. '<td class="input-group-append"> <input type="text" id="txt_AmountMonthly_' + rowindexid + '" class="txt_AmountMonthly form-control w-100 text-right" value="0" style="pointer-events:none"> </td>' +
  291. '<td align="right" class="pl-40"> <input type="text" id = "txt_AmountAnnually_' + rowindexid + '" class="txt_AmountAnnually form-control w-100 text-right" value="0" style="pointer-events:none"> </td>';
  292. html += '</tr></tbody>';
  293. $("#employeerevisesalaryearningdetails_table").append(html);
  294. for (var j = 1; j < 4; j++) {
  295. if (earningdata.CalculationType == j + "") {
  296. var reportColumnText = new Option(earningdata.CalculationTypeName, earningdata.CalculationType, true);
  297. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').append(reportColumnText);
  298. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').val(earningdata.CalculationType).trigger('change');
  299. }
  300. }
  301. for (var k = 1; k < 33; k++) {
  302. if (earningdata.EarningTypeId == k + "") {
  303. $("#txtAutoComplete_Salary_" + employeesalarydetailsubcomponentid).append('<option value="' + earningdata.EarningTypeId + '">' + earningdata.EarningTypeName + '</option>');
  304. }
  305. }
  306. $('#txt_AmountMonthly_' + rowindexid + '').val((earningdata.AmountMonthly).toFixed(2));
  307. $('#txt_AmountAnnually_' + rowindexid + '').val((earningdata.AmountAnnually).toFixed(2));
  308. $("#txt_CalculationAmount_" + rowindexid + '').val(earningdata.CalculationAmont);
  309. }
  310. $("#employeerevisesalaryearningdetails_table:last").find(".txt_CalculationAmount").keyup(function () {
  311. let amount = $(this).val();
  312. let salarytemplateid = $(this).attr("data-trnsactid");
  313. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisesalaryitem_Calculation(salarytemplateid, amount);
  314. });
  315. $("#employeerevisesalaryearningdetails_table").removeClass('d-none');
  316. }
  317. if (response.result.Deductions.length != 0) {
  318. var Headtext = '<tbody><tr> <td colspan="5"> <h5>Deductions</h5></td></tr>';
  319. $("#employeerevisesalaryearningdetails_table").append(Headtext);
  320. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions = [];
  321. for (var i = 0; i < response.result.Deductions.length; i++) {
  322. let Deductionsdata = response.result.Deductions[i];
  323. let employeesalarydetailsubcomponentid = Deductionsdata.EmployeeSalaryDetailSubComponentId;
  324. let rowindexid = employeesalarydetailsubcomponentid;
  325. var item = {
  326. calculationtype: Deductionsdata.CalculationType,
  327. calculationtypename: Deductionsdata.CalculationTypeName,
  328. salarytemplateid: Deductionsdata.EmployeeSalaryDetailSubComponentId,
  329. earningtype: Deductionsdata.EarningTypeId,
  330. earningtypename: Deductionsdata.EarningTypeName,
  331. amount: Deductionsdata.CalculationAmont,
  332. monthlyamount: Deductionsdata.AmountMonthly,
  333. annualamount: Deductionsdata.AmountAnnually,
  334. salarycomponentid: Deductionsdata.SalaryComponentId,
  335. deductionplanid: Deductionsdata.DeductionPlanId,
  336. reimbursementtype: Deductionsdata.ReimbursementTypeId,
  337. isadded: true
  338. };
  339. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.push(item);
  340. var html = '<tbody><tr class="employeesalarydeductiondetails-list-items employeesalarydeductiondetails-item-active value-row li-' + rowindexid + '" tid="' + rowindexid + '" id="employeesalarydeductiondetails_item_TRN' + rowindexid + '" ><td> <div class="input-group w-80 rounded-0"> <select class="txtAutoComplete_Salary form-control w-75 border-top-0 border-right-0 border-left-0 rounded-0" id="txtAutoComplete_Salary_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  341. '<td> <div class="input-group w-75 rounded-0 "> <select class="ddl_CalculationType form-control border-top-0 border-right-0 border-left-0 rounded-0" id="ddl_CalculationType_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  342. '<td class="pr-40"> <input type="text" class="txt_CalculationAmount form-control text-right" id="txt_CalculationAmount_' + rowindexid + '" data-trnsactid="' + rowindexid + '" value="0"></td>' +
  343. '<td class="input-group-append"> <input type="text" id="txt_AmountMonthly_' + rowindexid + '" class="txt_AmountMonthly form-control w-100 text-right" value="0" style="pointer-events:none"> </td>' +
  344. '<td align="right" class="pl-40"> <input type="text" id = "txt_AmountAnnually_' + rowindexid + '" class="txt_AmountAnnually form-control w-100 text-right" value="0" style="pointer-events:none"> </td>';
  345. html += '</tr></tbody>';
  346. $("#employeerevisesalaryearningdetails_table").append(html);
  347. for (var j = 1; j < 4; j++) {
  348. if (Deductionsdata.CalculationType == j + "") {
  349. var reportColumnText = new Option(Deductionsdata.CalculationTypeName, Deductionsdata.CalculationType, true);
  350. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').append(reportColumnText);
  351. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').val(Deductionsdata.CalculationType).trigger('change');
  352. }
  353. }
  354. $("#txtAutoComplete_Salary_" + employeesalarydetailsubcomponentid).append('<option value="' + Deductionsdata.SalaryComponentId + '">' + Deductionsdata.EarningTypeName + '</option>');
  355. $('#txt_AmountMonthly_' + rowindexid + '').val((Deductionsdata.AmountMonthly).toFixed(2));
  356. $('#txt_AmountAnnually_' + rowindexid + '').val((Deductionsdata.AmountAnnually).toFixed(2));
  357. $("#txt_CalculationAmount_" + rowindexid + '').val(Deductionsdata.CalculationAmont);
  358. }
  359. $("#employeesalaryearningdetails_table:last").find(".txt_CalculationAmount").keyup(function () {
  360. let amount = $(this).val();
  361. let salarytemplateid = $(this).attr("data-trnsactid");
  362. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisesalaryitem_Calculation(salarytemplateid, amount);
  363. });
  364. $("#employeerevisesalaryearningdetails_table").removeClass('d-none');
  365. }
  366. if (response.result.Reimbursements.length != 0) {
  367. var Headtext = '<tbody><tr> <td colspan="5"> <h5>Reimbursements</h5></td></tr>';
  368. $("#employeerevisesalaryearningdetails_table").append(Headtext);
  369. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements = [];
  370. for (var i = 0; i < response.result.Reimbursements.length; i++) {
  371. let Reimbursementsdata = response.result.Reimbursements[i];
  372. let employeesalarydetailsubcomponentid = Reimbursementsdata.EmployeeSalaryDetailSubComponentId;
  373. let rowindexid = employeesalarydetailsubcomponentid;
  374. var item = {
  375. calculationtype: Reimbursementsdata.CalculationType,
  376. calculationtypename: Reimbursementsdata.CalculationTypeName,
  377. salarytemplateid: Reimbursementsdata.EmployeeSalaryDetailSubComponentId,
  378. earningtype: Reimbursementsdata.EarningTypeId,
  379. earningtypename: Reimbursementsdata.EarningTypeName,
  380. amount: Reimbursementsdata.CalculationAmont,
  381. monthlyamount: Reimbursementsdata.AmountMonthly,
  382. annualamount: Reimbursementsdata.AmountAnnually,
  383. salarycomponentid: Reimbursementsdata.SalaryComponentId,
  384. deductionplanid: Reimbursementsdata.DeductionPlanId,
  385. reimbursementtype: Reimbursementsdata.ReimbursementTypeId,
  386. isadded: true
  387. };
  388. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements.push(item);
  389. var html = '<tbody><tr class="employeesalaryreimbursementdetails-list-items employeesalaryreimbursementdetails-item-active value-row li-' + rowindexid + '" tid="' + rowindexid + '" id="employeesalaryreimbursementdetails_item_TRN' + rowindexid + '" ><td> <div class="input-group w-80 rounded-0"> <select class="txtAutoComplete_Salary form-control w-75 border-top-0 border-right-0 border-left-0 rounded-0" id="txtAutoComplete_Salary_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  390. '<td> <div class="input-group w-75 rounded-0 "> <select class="ddl_CalculationType form-control border-top-0 border-right-0 border-left-0 rounded-0" id="ddl_CalculationType_' + rowindexid + '" style="pointer-events:none"> </select></div></td>' +
  391. '<td class="pr-40"> <input type="text" class="txt_CalculationAmount form-control text-right" id="txt_CalculationAmount_' + rowindexid + '" data-trnsactid="' + rowindexid + '" value="0"></td>' +
  392. '<td class="input-group-append"> <input type="text" id="txt_AmountMonthly_' + rowindexid + '" class="txt_AmountMonthly form-control w-100 text-right" value="0" style="pointer-events:none"> </td>' +
  393. '<td align="right" class="pl-40"> <input type="text" id = "txt_AmountAnnually_' + rowindexid + '" class="txt_AmountAnnually form-control w-100 text-right" value="0" style="pointer-events:none"> </td>';
  394. html += '</tr></tbody>';
  395. $("#employeerevisesalaryearningdetails_table").append(html);
  396. for (var j = 1; j < 4; j++) {
  397. if (Reimbursementsdata.CalculationType == j + "") {
  398. var reportColumnText = new Option(Reimbursementsdata.CalculationTypeName, Reimbursementsdata.CalculationType, true);
  399. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').append(reportColumnText);
  400. $('#ddl_CalculationType_' + employeesalarydetailsubcomponentid + '').val(Reimbursementsdata.CalculationType).trigger('change');
  401. }
  402. }
  403. for (var k = 1; k < 33; k++) {
  404. if (Reimbursementsdata.ReimbursementTypeId == k + "") {
  405. $("#txtAutoComplete_Salary_" + employeesalarydetailsubcomponentid).append('<option value="' + Reimbursementsdata.ReimbursementTypeId + '">' + Reimbursementsdata.EarningTypeName + '</option>');
  406. }
  407. }
  408. $('#txt_AmountMonthly_' + rowindexid + '').val((Reimbursementsdata.AmountMonthly).toFixed(2));
  409. $('#txt_AmountAnnually_' + rowindexid + '').val((Reimbursementsdata.AmountAnnually).toFixed(2));
  410. $("#txt_CalculationAmount_" + rowindexid + '').val(Reimbursementsdata.CalculationAmont);
  411. }
  412. $("#employeerevisesalaryearningdetails_table:last").find(".txt_CalculationAmount").keyup(function () {
  413. let amount = $(this).val();
  414. let salarytemplateid = $(this).attr("data-trnsactid");
  415. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisesalaryitem_Calculation(salarytemplateid, amount);
  416. });
  417. $("#employeerevisesalaryearningdetails_table").removeClass('d-none');
  418. }
  419. else {
  420. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().reviseemployeesalary(empid);
  421. }
  422. });
  423. });
  424. }
  425. reviseearingControlObj(trnId) {
  426. var salarytemplateitems = new Array();
  427. var componentitems = ['Earnings', 'Deductions', 'Reimbursements'];
  428. for (var i = 0; i < componentitems.length; i++) {
  429. let itemobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0][componentitems[i]];
  430. for (var j = 0; j < itemobj.length; j++) {
  431. let templateitems = itemobj[j];
  432. let employeesalartdetailid = Number($(".hdn_employeesalarydetailid").val());
  433. let templateid = Number($(".txtAutoComplete_salarytemplateid").val());
  434. let earningtypeid = Number(templateitems.earningtype);
  435. let deductionplanid = Number(templateitems.deductionplanid);
  436. let reimbursementtype = Number(templateitems.reimbursementtype);
  437. let earningtypename = templateitems.earningtypename;
  438. let calculationtype = Number(templateitems.calculationtype);
  439. let calculationamount = templateitems.amount;
  440. let amountmonthly = templateitems.monthlyamount;
  441. let amountannually = templateitems.annualamount;
  442. let salarycomponentid = templateitems.salarycomponentid;
  443. salarytemplateitems.push({
  444. TemplateId: templateid,
  445. EarningTypeId: earningtypeid,
  446. DeductionPlanId: deductionplanid,
  447. ReimbursementTypeId: reimbursementtype,
  448. SalaryComponentId: salarycomponentid,
  449. Salarycomponents: earningtypename,
  450. CalculationType: calculationtype,
  451. CalculationAmount: calculationamount,
  452. AmountMonthly: amountmonthly,
  453. AmountAnnually: amountannually,
  454. EmployeeSalaryDetailId: isNaN(employeesalartdetailid) ? 0 : employeesalartdetailid
  455. });
  456. }
  457. }
  458. return salarytemplateitems;
  459. }
  460. changeAnnualctcdata() {
  461. $(".txt_annualctc").keyup(function () {
  462. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisectc_calculation();
  463. });
  464. }
  465. employeerevisesalaryitem_Calculation(salarytemplateid, amount) {
  466. if (Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.salarytemplateid == salarytemplateid)) {
  467. let earningobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.salarytemplateid == salarytemplateid);
  468. earningobj.amount = Number(amount);
  469. }
  470. if (Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.find(x => x.salarytemplateid == salarytemplateid)) {
  471. let deductionobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.find(x => x.salarytemplateid == salarytemplateid);
  472. deductionobj.amount = Number(amount);
  473. }
  474. if (Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements.find(x => x.salarytemplateid == salarytemplateid)) {
  475. let reimbursementobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements.find(x => x.salarytemplateid == salarytemplateid);
  476. reimbursementobj.amount = Number(amount);
  477. }
  478. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisectc_calculation();
  479. }
  480. employeerevisectc_calculation() {
  481. var annualctc = Number($(".txt_annualctc").val());
  482. let earningobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings;
  483. let deductionobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions;
  484. let reimbursementobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements;
  485. if (earningobj != null) {
  486. for (var i = 0; i < earningobj.length; i++) {
  487. let earningdata = earningobj[i];
  488. let amount = earningdata.amount;
  489. let calculationtype = earningdata.calculationtype;
  490. let earningtypeid = earningdata.earningtype;
  491. let earningtypename = earningdata.earningtypename;
  492. let salarytemplateid = earningdata.salarytemplateid;
  493. let isadded = earningdata.isadded;
  494. if (earningtypeid == 1 || earningtypeid == 17) {
  495. isadded = false;
  496. }
  497. if (calculationtype == 1) {
  498. var annualctc = Number($(".txt_annualctc").val());
  499. let annualamount = 0;
  500. let monthlyamount = 0;
  501. if (earningtypeid == 17) {
  502. let basicsalobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtypename.toLowerCase() == 'basic');
  503. let basicanualamount = basicsalobj.annualamount;
  504. annualamount = Math.round(annualctc - basicanualamount);
  505. monthlyamount = Math.round(annualamount / 12);
  506. }
  507. else {
  508. annualamount = Math.round(amount * 12);
  509. monthlyamount = amount;
  510. }
  511. let obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.salarytemplateid == salarytemplateid);
  512. if (isadded == true) {
  513. let fixedAllowanceobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtype == 17);
  514. fixedAllowanceobj.amount = fixedAllowanceobj.monthlyamount - monthlyamount;
  515. fixedAllowanceobj.monthlyamount = fixedAllowanceobj.monthlyamount - monthlyamount;
  516. fixedAllowanceobj.annualamount = fixedAllowanceobj.annualamount - annualamount;
  517. }
  518. obj.annualamount = annualamount;
  519. obj.monthlyamount = monthlyamount;
  520. obj.amount = monthlyamount;
  521. }
  522. if (calculationtype == 2) {
  523. let basicsalobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtypename.toLowerCase() == 'basic');
  524. let basicanualamount = basicsalobj.annualamount;
  525. let annualamount = Math.round(basicanualamount * (amount / 100));
  526. let monthlyamount = Math.round(annualamount / 12);
  527. let obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.salarytemplateid == salarytemplateid);
  528. if (isadded == true) {
  529. let fixedAllowanceobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtype == 17);
  530. fixedAllowanceobj.amount = fixedAllowanceobj.monthlyamount - monthlyamount;
  531. fixedAllowanceobj.monthlyamount = fixedAllowanceobj.monthlyamount - monthlyamount;
  532. fixedAllowanceobj.annualamount = fixedAllowanceobj.annualamount - annualamount;
  533. }
  534. obj.annualamount = annualamount;
  535. obj.monthlyamount = monthlyamount;
  536. }
  537. if (calculationtype == 3) {
  538. var annualctc = Number($(".txt_annualctc").val());
  539. let annualamount = Math.round(annualctc * (amount / 100));
  540. let monthlyamount = Math.round(annualamount / 12);
  541. let obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.salarytemplateid == salarytemplateid);
  542. if (isadded == true) {
  543. let fixedAllowanceobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtype == 17);
  544. fixedAllowanceobj.amount = fixedAllowanceobj.monthlyamount - monthlyamount;
  545. fixedAllowanceobj.monthlyamount = fixedAllowanceobj.monthlyamount - monthlyamount;
  546. fixedAllowanceobj.annualamount = fixedAllowanceobj.annualamount - annualamount;
  547. }
  548. obj.annualamount = annualamount;
  549. obj.monthlyamount = monthlyamount;
  550. }
  551. }
  552. }
  553. if (deductionobj != null) {
  554. for (var i = 0; i < deductionobj.length; i++) {
  555. let deductiondata = deductionobj[i];
  556. let amount = deductiondata.amount;
  557. let calculationtype = deductiondata.calculationtype;
  558. let earningtypeid = deductiondata.earningtype;
  559. let earningtypename = deductiondata.earningtypename;
  560. let salarytemplateid = deductiondata.salarytemplateid;
  561. let isadded = deductiondata.isadded;
  562. var annualctc = Number($(".txt_annualctc").val());
  563. if (calculationtype == 1) {
  564. let annualamount = 0;
  565. let monthlyamount = 0;
  566. annualamount = amount * 12;
  567. monthlyamount = amount;
  568. let obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.find(x => x.salarytemplateid == salarytemplateid);
  569. obj.annualamount = Math.round(annualamount);
  570. obj.monthlyamount = Math.round(monthlyamount);
  571. obj.amount = Math.round(monthlyamount);
  572. }
  573. if (calculationtype == 2) {
  574. let basicsalobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtypename.toLowerCase() == 'basic');
  575. let basicanualamount = basicsalobj.annualamount;
  576. let annualamount = basicanualamount * (amount / 100);
  577. let monthlyamount = annualamount / 12;
  578. let obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.find(x => x.salarytemplateid == salarytemplateid);
  579. obj.annualamount = Math.round(annualamount);
  580. obj.monthlyamount = Math.round(monthlyamount);
  581. }
  582. if (calculationtype == 3) {
  583. let annualamount = annualctc * (amount / 100);
  584. let monthlyamount = annualamount / 12;
  585. let obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.find(x => x.salarytemplateid == salarytemplateid);
  586. obj.annualamount = Math.round(annualamount);
  587. obj.monthlyamount = Math.round(monthlyamount);
  588. }
  589. }
  590. }
  591. if (reimbursementobj != null) {
  592. for (var i = 0; i < reimbursementobj.length; i++) {
  593. let reimbursementdata = reimbursementobj[i];
  594. let amount = reimbursementdata.amount;
  595. let calculationtype = reimbursementdata.calculationtype;
  596. let earningtypeid = reimbursementdata.earningtype;
  597. let earningtypename = reimbursementdata.earningtypename;
  598. let salarytemplateid = reimbursementdata.salarytemplateid;
  599. let isadded = reimbursementdata.isadded;
  600. var annualctc = Number($(".txt_annualctc").val());
  601. if (calculationtype == 1) {
  602. let annualamount = 0;
  603. let monthlyamount = 0;
  604. annualamount = amount * 12;
  605. monthlyamount = amount;
  606. let obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements.find(x => x.salarytemplateid == salarytemplateid);
  607. obj.annualamount = Math.round(annualamount);
  608. obj.monthlyamount = Math.round(monthlyamount);
  609. obj.amount = Math.round(monthlyamount);
  610. }
  611. }
  612. }
  613. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().reviseadjustmentfixedallowance();
  614. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().revisebindemployeectcdata();
  615. }
  616. reviseadjustmentfixedallowance() {
  617. var total_Deductionsannualamount = 0;
  618. var total_Deductionsmonthlyamount = 0;
  619. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.forEach(x => { total_Deductionsannualamount += x.annualamount; });
  620. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Deductions.forEach(x => { total_Deductionsmonthlyamount += x.monthlyamount; });
  621. let fixedAllowanceobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtype == 17);
  622. fixedAllowanceobj.amount = fixedAllowanceobj.monthlyamount - total_Deductionsmonthlyamount;
  623. fixedAllowanceobj.monthlyamount = fixedAllowanceobj.monthlyamount - total_Deductionsmonthlyamount;
  624. fixedAllowanceobj.annualamount = fixedAllowanceobj.annualamount - total_Deductionsannualamount;
  625. var total_Reimbursementannualamount = 0;
  626. var total_Reimbursementmonthlyamount = 0;
  627. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements.forEach(x => { total_Reimbursementannualamount += x.annualamount; });
  628. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Reimbursements.forEach(x => { total_Reimbursementmonthlyamount += x.monthlyamount; });
  629. fixedAllowanceobj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0].Earnings.find(x => x.earningtype == 17);
  630. fixedAllowanceobj.amount = fixedAllowanceobj.monthlyamount - total_Reimbursementmonthlyamount;
  631. fixedAllowanceobj.monthlyamount = fixedAllowanceobj.monthlyamount - total_Reimbursementmonthlyamount;
  632. fixedAllowanceobj.annualamount = fixedAllowanceobj.annualamount - total_Reimbursementannualamount;
  633. }
  634. revisebindemployeectcdata() {
  635. var componentitems = ['Earnings', 'Deductions', 'Reimbursements'];
  636. for (var i = 0; i < componentitems.length; i++) {
  637. var obj = Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0][componentitems[i]];
  638. for (var j = 0; j < obj.length; j++) {
  639. let data = obj[j];
  640. let amount = data.amount;
  641. let calculationtype = data.calculationtype;
  642. let earningtype = data.earningtype;
  643. let earningtypename = data.earningtypename;
  644. let salarytemplateid = data.salarytemplateid;
  645. let monthlyamount = data.monthlyamount;
  646. let annualamount = data.annualamount;
  647. $("#txt_AmountMonthly_" + salarytemplateid).val(monthlyamount);
  648. $("#txt_AmountAnnually_" + salarytemplateid).val(annualamount);
  649. $("#txt_CalculationAmount_" + salarytemplateid).val(amount);
  650. for (var k = 1; k < 4; k++) {
  651. if (calculationtype == k + "") {
  652. var reportColumnText = new Option(data.calculationtypename, data.calculationtype, true);
  653. $('#ddl_CalculationType_' + salarytemplateid + '').append(reportColumnText);
  654. $('#ddl_CalculationType_' + salarytemplateid + '').val(data.calculationtype).trigger('change');
  655. }
  656. }
  657. for (var l = 1; l < 33; l++) {
  658. if (earningtype == l + "") {
  659. $("#txtAutoComplete_Salary_" + salarytemplateid).append('<option value="' + earningtype + '">' + earningtypename + '</option>');
  660. }
  661. }
  662. }
  663. }
  664. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().grandTotal();
  665. }
  666. grandTotal() {
  667. var monthlytotal = 0;
  668. var annuallytotal = 0;
  669. var componentitems = ['Earnings', 'Deductions', 'Reimbursements'];
  670. for (var i = 0; i < componentitems.length; i++) {
  671. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0][componentitems[i]].forEach(x => { annuallytotal += x.annualamount; });
  672. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().emprevise_Array[0][componentitems[i]].forEach(x => { monthlytotal += x.monthlyamount; });
  673. }
  674. $("#AmountMonthly").text(Math.round(monthlytotal));
  675. $("#AmountAnnual").text(Math.round(annuallytotal));
  676. }
  677. revisecalculation() {
  678. $(".txt_revisepercentage").addClass("hidden");
  679. $(".txt_revisepercentage").keyup(function () {
  680. var calculationamount = Number($(".txt_revisepercentage ").val());
  681. var annualctc = Number($(".txt_annualctc").val());
  682. var amount = Number(calculationamount / 100);
  683. var salctc = Number(annualctc * amount) + annualctc;
  684. $(".txt_annualctc").val(salctc);
  685. Bizgaze.Apps.Hrms.Payroll.Controls.EmployeeSalary.ReviseEmployeeSalary.Instance().employeerevisectc_calculation();
  686. });
  687. $(".rdb_revisecalculationtype_1").click(function () {
  688. if ($(".rdb_revisecalculationtype_1").prop("checked") == true) {
  689. $(".txt_revisepercentage").removeClass("hidden");
  690. }
  691. else {
  692. $(".txt_revisepercentage").addClass("hidden");
  693. }
  694. });
  695. $(".rdb_revisecalculationtype_2").click(function () {
  696. if ($(".rdb_revisecalculationtype_2").prop("checked") == true) {
  697. $(".txt_revisepercentage").addClass("hidden");
  698. }
  699. else {
  700. $(".txt_revisepercentage").removeClass("hidden");
  701. }
  702. });
  703. }
  704. static Instance() {
  705. if (this.instance === undefined) {
  706. this.instance = new ReviseEmployeeSalary();
  707. }
  708. return this.instance;
  709. }
  710. }
  711. EmployeeSalary.ReviseEmployeeSalary = ReviseEmployeeSalary;
  712. })(EmployeeSalary = Controls.EmployeeSalary || (Controls.EmployeeSalary = {}));
  713. })(Controls = Payroll.Controls || (Payroll.Controls = {}));
  714. })(Payroll = Hrms.Payroll || (Hrms.Payroll = {}));
  715. })(Hrms = Apps.Hrms || (Apps.Hrms = {}));
  716. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  717. })(Bizgaze || (Bizgaze = {}));