Built files from Bizgaze WebServer
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

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 = {}));