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.

approveexpense.component.js 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Transact;
  6. (function (Transact) {
  7. let Controls;
  8. (function (Controls) {
  9. class ApproveExpense extends Unibase.Platform.Core.BaseComponent {
  10. constructor() {
  11. super(...arguments);
  12. this.ApproveExpenseItems = [];
  13. }
  14. init(formpropertyid, prop, callback) { }
  15. loadControlSettings(controlsettingjson, formpropertyid) { }
  16. loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) { }
  17. bindEditFormDetails(formpropertyid, propval, DocPropertyName) { }
  18. loadControl(containerid, prop) {
  19. var instance = this;
  20. instance.transactionId = prop.FormPropertyId;
  21. var html = '<div class="table-wrap">' +
  22. '<div class="table-responsive approveexpenseitem"></div></div>' +
  23. '<input type="hidden" id="hdn_approveexpenseitemcontrol" class="value-control" value="Bizgaze.Apps.Transact.Controls.ApproveExpense.Instance().ApproveExpenseItemObject();"/>';
  24. $("#" + containerid).html(html);
  25. Bizgaze.Apps.Transact.Controls.ApproveExpense.Instance().bindloginuser();
  26. Bizgaze.Apps.Transact.Controls.ApproveExpense.Instance().approveexpenseitemdetails();
  27. }
  28. bindloginuser() {
  29. let UserId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  30. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  31. var fromdate = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_fromdate").Value;
  32. var _fromdate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(fromdate);
  33. Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
  34. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getContactByUserId(UserId).then(function (response) {
  35. let contactId = response.result.ContactId;
  36. let organizationName = response.result.ContactName;
  37. let contact = new Option(organizationName, contactId.toString(), true);
  38. $(".txtAutoComplete_approvalby").append(contact);
  39. $(".txtAutoComplete_approvalby").val(contactId).trigger("change");
  40. $(".date_fromdate").val(fromdate).attr("disabled", "disabled");
  41. $(".hfdate_fromdate").val(_fromdate);
  42. $(".date_fromdate").closest('.floating-label-form-group').addClass('floating-label-form-group-with-value');
  43. });
  44. });
  45. }
  46. approveexpenseitemdetails() {
  47. var instance = this;
  48. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  49. var expenseId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_expenseid").Value);
  50. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  51. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().approveexpenseitemlist(expenseId).then(function (response) {
  52. var html = '';
  53. html += '<table class="table mb-0">' +
  54. '<thead>' +
  55. '<tr>' +
  56. '<th> Category Name </th>' +
  57. '<th> Expense Amount </th>' +
  58. '<th> Claim Amount </th>' +
  59. '<th> Description </th>' +
  60. '<th> Balance </th>' +
  61. '</tr>' +
  62. '</thead>' +
  63. '<tbody>';
  64. for (var i = 0; i < response.result.length; i++) {
  65. const expenseItemId = response.result[i].expenseitemid;
  66. const expenseId = response.result[i].expenseid;
  67. html += `<tr id="expenseItemRow_${expenseItemId}">
  68. <input type="hidden" class="hf_expenseid" value="${expenseId}" />
  69. <input type="hidden" class="hf_expenseitemid" value="${expenseItemId}" />
  70. <td class="txt_categoryname" id="categoryname_${expenseItemId}">${response.result[i].categoryname}</td>
  71. <td class="txt_expenseamount" id="expenseAmount_${expenseItemId}">${response.result[i].expamount}</td>
  72. <td> <input type="text" placeholder="Enter Claim Amount" class="form-control txt_claimamount txt_disable_${expenseItemId} required" id="claimAmount_${expenseItemId}" value = "${response.result[i].claimamount}" onkeyup="Bizgaze.Apps.Transact.Controls.ApproveExpense.Instance().ClaimAmountValidation(${expenseItemId},${response.result[i].expamount});" > </td>
  73. <td> <input type="text" placeholder="Enter Description" class="form-control txt_descriptionn txt_disable_${expenseItemId}" id="Descriptionn_${expenseItemId}" value = "${response.result[i].description}" > </td>
  74. <td> <input type="text" class="form-control txt_balance txt_disable_${expenseItemId}" value = ${response.result[i].balanceamount} id="txt_balance_${expenseItemId}" disabled > </td>
  75. </tr>`;
  76. }
  77. html += '</tbody>' +
  78. '</table>';
  79. $(".approveexpenseitem").append(html);
  80. for (var i = 0; i < response.result.length; i++) {
  81. if (response.result[i].checkexpenseitem == true) {
  82. const expenseItemId = response.result[i].expenseitemid;
  83. $(`#Descriptionn_${expenseItemId}`).prop("disabled", false);
  84. $(`#claimAmount_${expenseItemId}`).prop("disabled", false);
  85. $(`#checkExpenseItem_${expenseItemId}`).prop("checked", true);
  86. }
  87. }
  88. });
  89. });
  90. }
  91. ClaimAmountValidation(expenseitemid, expamount) {
  92. var claimAmount = Number($(`#claimAmount_${expenseitemid}`).val());
  93. if (claimAmount <= expamount) {
  94. var balance = (expamount - claimAmount).toFixed(2);
  95. $(`#txt_balance_${expenseitemid}`).val(balance);
  96. }
  97. else {
  98. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Claim Amount Cannot Be Greater Than ExpenseAmount");
  99. $(`#txt_balance_${expenseitemid}`).val(0);
  100. $(`#claimAmount_${expenseitemid}`).val("");
  101. $(`#claimAmount_${expenseitemid}`).addClass("required");
  102. return false;
  103. }
  104. }
  105. ApproveExpenseItemObject() {
  106. const instance = this;
  107. var data = new Array();
  108. let isClaimValid = true;
  109. $(".approveexpenseitem").find("tbody tr").each(function () {
  110. var balanceamount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find('.txt_balance').val()), 2);
  111. var ClaimAmount = Number($(this).find('.txt_claimamount').val());
  112. if (ClaimAmount == 0) {
  113. const containerid = instance.navigationHelper.getLastContainerId();
  114. const errEl = $(`#${containerid} .form-error-message`).attr('id');
  115. MessageHelper.Instance().showError("Claim Amount Should Be Greater Than Zero", errEl);
  116. isClaimValid = false;
  117. return false;
  118. }
  119. else {
  120. data.push({
  121. ClaimAmount: Number($(this).find('.txt_claimamount').val()),
  122. BalanceAmount: Number(balanceamount),
  123. Description: $(this).find('.txt_descriptionn').val(),
  124. ExpAmount: Number($(this).find('.txt_expenseamount').text()),
  125. ExpenseItemId: Number($(this).find('.hf_expenseitemid').val()),
  126. ExpenseId: Number($(this).find('.hf_expenseid').val()),
  127. CheckExpenseItem: $(this).find(".chk_approveexpenseitem").prop("checked"),
  128. });
  129. }
  130. });
  131. if (!isClaimValid) {
  132. return false;
  133. }
  134. return data;
  135. }
  136. refreshpage() {
  137. var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
  138. detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  139. detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  140. detailobj._containerId = this.navigationHelper.getLastContainerId();
  141. var idetailObj = detailobj;
  142. detailobj.loadPortlets(idetailObj);
  143. }
  144. static Instance() {
  145. if (this.instance === undefined) {
  146. this.instance = new ApproveExpense();
  147. }
  148. return this.instance;
  149. }
  150. }
  151. Controls.ApproveExpense = ApproveExpense;
  152. })(Controls = Transact.Controls || (Transact.Controls = {}));
  153. })(Transact = Apps.Transact || (Apps.Transact = {}));
  154. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  155. })(Bizgaze || (Bizgaze = {}));