Built files from Bizgaze WebServer
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

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