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

salesfrequency.component.js 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  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 SalesFrequency extends Unibase.Platform.Core.BaseComponent {
  10. constructor() {
  11. super(...arguments);
  12. this.OrganizationId = 0;
  13. this.OrgContactId = 0;
  14. this.ContainerId = "";
  15. this.PopUpContainerId = "";
  16. this.VisibleContainerId = "";
  17. }
  18. init(formpropertyid, prop, callback) {
  19. var instance = this;
  20. instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
  21. instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
  22. }
  23. loadControl(containerid, prop) {
  24. var instance = this;
  25. instance.ContainerId = containerid;
  26. var html = instance.getSalesFrequency_html();
  27. $("#" + containerid).html(html);
  28. }
  29. getSalesFrequency_html() {
  30. let html = '<div class="row"><div class="col-sm-4" id="div_FiveInvoices">'
  31. + '<div class="card card-sm shadow-hover " id = "kpi_card" style = "height:auto;" ><div class="card-body"><span class="d-block font-15 font-weight-500 text-dark">'
  32. + ' Average Days Between Last Five Invoices </span><div class="mt-10"><span class="h4 mb-10 block text-underline">'
  33. + ' <a id="lnk_FiveInvoices"><span id="span_FiveInvoices" class="display-5 font-weight-400 text-dark">0</span></a>'
  34. + '</span><span class="text-muted font-bold block m-b"> Days</span></div></div></div ></div ><div class=" col-sm-4" id="div_fivePayments"><div class="card card-sm shadow-hover " id="kpi_card" style="height:auto;"><div class="card-body">'
  35. + '<span class="d-block font-15 font-weight-500 text-dark">'
  36. + ' Average Days Between Last Five Payments </span><div class="mt-10"><span class="h4 mb-10 block"><a id="lnk_fivePayments" class="text-underline"><span id="span_fivePayments" class="display-5 font-weight-400 text-dark">0</span></a>'
  37. + ' </span><span class="text-muted font-bold block m-b"> Days</span></div></div></div></div><div class=" col-sm-4" id="div_ReturnedCheques"><div class="card card-sm shadow-hover " id="kpi_card" style="height:auto;"><div class="card-body">'
  38. + ' <span class="d-block font-15 font-weight-500 text-dark">'
  39. + 'Returned Cheques From Past 6 Months </span><div class="mt-10"><span class="h4 mb-10 block">'
  40. + ' <a id="lnk_ReturnedCheques" class="text-underline"><span id="span_ReturnedCheques" class="display-5 font-weight-400 text-dark">0</span></a>'
  41. + ' </span><span class="text-muted font-bold block m-b">Cheques</span></div></div></div></div></div ><div class="row">'
  42. + ' <div class=" col-sm-4" id="div_AvgFiveInvoicesAmount"><div class="card card-sm shadow-hover " id="kpi_card" style="height:auto;"><div class="card-body">'
  43. + ' <span class="d-block font-15 font-weight-500 text-dark">'
  44. + 'Average Amount of Last Five Invoices</span><div class="mt-10"><span class="h4 mb-10 block text-underline">'
  45. + ' <a id="lnk_AvgFiveInvoicesAmount"><span id="span_AvgFiveInvoicesAmount" class="display-5 font-weight-400 text-dark">0</span></a>'
  46. + '</span><span class="text-muted font-bold block m-b">INR</span></div></div></div></div><div class=" col-sm-4" id="div_AvgFivePaymentsAmnt">'
  47. + ' <div class="card card-sm shadow-hover " id="kpi_card" style="height:auto;"><div class="card-body"><span class="d-block font-15 font-weight-500 text-dark">'
  48. + 'Average Amount of Last Five Payments </span><div class="mt-10"><span class="h4 mb-10 block text-underline">'
  49. + ' <a id="lnk_div_AvgFivePaymentsAmnt"><span id="span_div_AvgFivePaymentsAmnt" class="display-5 font-weight-400 text-dark">0</span></a>'
  50. + '</span><span class="text-muted font-bold block m-b">INR</span></div></div></div></div><div class=" col-sm-4" id="div_AvgClearenceDays">'
  51. + '<div class="card card-sm shadow-hover " id="kpi_card" style="height:auto;">'
  52. + '<div class="card-body"><span class="d-block font-15 font-weight-500 text-dark"> Average Clearance Days of Invoices </span><div class="mt-10">'
  53. + '<span class="h4 mb-10 block"><span id="lnk_AvgClearenceDays"><span id="span_AvgClearenceDays" class="display-5 font-weight-400 text-dark">0</span></span>'
  54. + '</span><span class="text-muted font-bold block m-b"> Days</span></div></div></div></div>';
  55. return html;
  56. }
  57. loadControlSettings(controlsettingjson, formpropertyid) {
  58. return null;
  59. }
  60. loadPropertySettings(propertysettings, formpropertyid) {
  61. return null;
  62. }
  63. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  64. return null;
  65. }
  66. getFrequency(OrgContactId, OrganizationId) {
  67. var instance = this;
  68. instance.VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  69. let OrderType = $("#" + instance.VisibleContainerId).find("#F_Widget_OrderType").val();
  70. instance.OrganizationId = OrganizationId;
  71. instance.OrgContactId = OrgContactId == 0 ? OrganizationId : OrgContactId;
  72. instance.bindKPIEvents();
  73. if (OrderType == 0) {
  74. OrderType = 1;
  75. }
  76. instance.getSF_KPIDetails(OrgContactId, OrganizationId);
  77. }
  78. bindKPIEvents() {
  79. let instance = this;
  80. instance.fileCacheHelper.loadJsFile("apps/transact/controls/orders/salesfrequency.js", function () {
  81. $("#" + instance.ContainerId).find("#div_FiveInvoices,#div_AvgFiveInvoicesAmount").unbind().click(function () {
  82. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportByUniqueId("Bizgaze_Platform_Analytics_Reports_Last_Five_Invoices_SF_Orders").then(function (res) {
  83. if (res.result != null && res.result != "") {
  84. var filter = [];
  85. filter.push({ "Key": "organizationid", "Value": instance.OrganizationId.toString(), ExpOp: 1 });
  86. Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId("Bizgaze_Platform_Analytics_Reports_Last_Five_Invoices_SF_Orders", null, filter, null);
  87. }
  88. else {
  89. instance.getKPIPopUp("Last Five Invoices", "div_Invoices");
  90. instance.getRecentInvoices();
  91. }
  92. });
  93. });
  94. $("#" + instance.ContainerId).find("#div_fivePayments,#div_AvgFivePaymentsAmnt").unbind().click(function () {
  95. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportByUniqueId("Bizgaze_Platform_Analytics_Reports_Last_Five_Payments_SF_Orders").then(function (res) {
  96. if (res.result != null && res.result != "") {
  97. var filter = [];
  98. filter.push({ "Key": "organizationid", "Value": instance.OrganizationId.toString(), ExpOp: 1 });
  99. Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId("Bizgaze_Platform_Analytics_Reports_Last_Five_Payments_SF_Orders", null, filter, null);
  100. }
  101. else {
  102. instance.getKPIPopUp("Payment Details", "div_payments");
  103. instance.getRecentPayments();
  104. }
  105. });
  106. });
  107. $("#" + instance.ContainerId).find("#div_ReturnedCheques").unbind().click(function () {
  108. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportByUniqueId("Bizgaze_Platform_Analytics_Reports_Last_Five_ReturnedCheques_SF_Orders").then(function (res) {
  109. if (res.result != null && res.result != "") {
  110. var filter = [];
  111. filter.push({ "Key": "organizationid", "Value": instance.OrganizationId.toString(), ExpOp: 1 });
  112. Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId("Bizgaze_Platform_Analytics_Reports_Last_Five_ReturnedCheques_SF_Orders", null, filter, null);
  113. }
  114. else {
  115. instance.getKPIPopUp("Returned Cheque Details", "div_payments");
  116. instance.getReturnedCheques();
  117. }
  118. });
  119. });
  120. });
  121. }
  122. getKPIPopUp(WidgetTitle, CurrentDiv) {
  123. let instance = this;
  124. instance.PopUpContainerId = '_modal_bizgaze_popup_' + moment().unix();
  125. instance.navigationHelper.popup(0, instance.PopUpContainerId, Bizgaze.Apps.Transact.Orders.SalesFrequency.Instance(), null, Unibase.Platform.Helpers.Size.ExtraLarge);
  126. $("#" + instance.PopUpContainerId).find("." + CurrentDiv).removeClass("hidden");
  127. $("#" + instance.PopUpContainerId).find(".title_widget").text(WidgetTitle);
  128. $("#" + instance.PopUpContainerId).find("#widget_list_container").empty();
  129. }
  130. noData() {
  131. let instance = this;
  132. $("#" + instance.PopUpContainerId).find(".header_list").html('<div class="alert alert-info">There is no Data</div>');
  133. $("#" + instance.PopUpContainerId).find(".span_Listsearch_count").text("0");
  134. $("#" + instance.PopUpContainerId).find(".header_list").removeClass("d-none");
  135. }
  136. getKPIData(ReportName, OrganizationId, ResultColName, elem) {
  137. let instance = this;
  138. let resultData = 0;
  139. let ReportUniqueId = "Bizgaze_Platform_Analytics_Reports_" + ReportName;
  140. let _numberHelper = Unibase.Core.Helpers.NumberHelper.Instance();
  141. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportByUniqueId(ReportUniqueId).then(function (res) {
  142. if (res.result != null && res.result != "") {
  143. var postData = {
  144. "ReportId": res.result.ReportId,
  145. "page": 1,
  146. "pageSize": 20,
  147. "Filter": [],
  148. "FilterId": 0,
  149. "InputParameters": [
  150. {
  151. "Key": "organizationid",
  152. "Value": OrganizationId.toString(),
  153. "ExpOp": 1
  154. }
  155. ],
  156. "SearchTerm": null,
  157. "DateFilter": null,
  158. "DisplayModeTypeId": 1,
  159. "FromDate": "",
  160. "ToDate": "",
  161. "IsPortletWidget": false,
  162. "IsShowAll": false,
  163. "SortColumn": ""
  164. };
  165. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportInfo(postData).then(function (report_res) {
  166. if (report_res.result != null) {
  167. if (report_res.result.ReportJsonData.Result.Data != null && report_res.result.ReportJsonData.Result.Data != "") {
  168. let val = JSON.parse(report_res.result.ReportJsonData.Result.Data);
  169. resultData = _numberHelper.roundNumber(val[0][ResultColName].toString().replace(/,/g, ''), 2);
  170. if (resultData != null && resultData != undefined) {
  171. resultData = resultData.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
  172. }
  173. $("#" + instance.ContainerId).find("#" + elem).text(resultData);
  174. }
  175. }
  176. if (resultData == 0) {
  177. $("#" + instance.ContainerId).find("#" + elem).text("0.00");
  178. }
  179. });
  180. }
  181. });
  182. }
  183. getSF_KPIDetails(OrgContactId, OrganizationId) {
  184. let instance = this;
  185. let AvgInvoiceDays = 0;
  186. let AvgPaymentDays = 0;
  187. let AvgPaidAmount = 0;
  188. let AvgInvoiceAmount = 0;
  189. let ReturnedCheques = 0;
  190. let AvgClearanceDays = 0;
  191. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getSalesFrequency(OrgContactId, OrganizationId).then(function (response) {
  192. let data = response.result;
  193. let _numberHelper = Unibase.Core.Helpers.NumberHelper.Instance();
  194. if (data != "" && data != null) {
  195. AvgInvoiceDays = _numberHelper.roundNumber(data.AveInvoiceDays, 2);
  196. AvgPaymentDays = _numberHelper.roundNumber(data.AvePaymentsDays, 2);
  197. AvgPaidAmount = _numberHelper.DelimiterNumber(_numberHelper.roundNumber(data.AvePaidAmount, 2));
  198. AvgInvoiceAmount = _numberHelper.DelimiterNumber(_numberHelper.roundNumber(data.AveInvoiceAmount, 2));
  199. ReturnedCheques = _numberHelper.roundNumber(data.ReturnedCheques, 2);
  200. AvgClearanceDays = _numberHelper.roundNumber(data.AveClearanceDays, 2);
  201. $("#" + instance.ContainerId).find("#span_FiveInvoices").text(AvgInvoiceDays);
  202. $("#" + instance.ContainerId).find("#span_fivePayments").text(AvgPaymentDays);
  203. $("#" + instance.ContainerId).find("#span_div_AvgFivePaymentsAmnt").text(AvgPaidAmount);
  204. $("#" + instance.ContainerId).find("#span_AvgFiveInvoicesAmount").text(AvgInvoiceAmount);
  205. $("#" + instance.ContainerId).find("#span_ReturnedCheques").text(ReturnedCheques);
  206. $("#" + instance.ContainerId).find("#span_AvgClearenceDays").text(AvgClearanceDays);
  207. }
  208. instance.getKPIData("InvoiceDays_SF_OrdersKPIWidget", OrganizationId, "invoicedays", "span_FiveInvoices");
  209. instance.getKPIData("PaymentDays_SF_OrdersKPIWidget", OrganizationId, "paymentsdays", "span_fivePayments");
  210. instance.getKPIData("PaidAmount_SF_OrdersKPIWidget", OrganizationId, "paidamount", "span_div_AvgFivePaymentsAmnt");
  211. instance.getKPIData("InvoiceAmount_SF_OrdersKPIWidget", OrganizationId, "invoiceamount", "span_AvgFiveInvoicesAmount");
  212. instance.getKPIData("ReturnedCheques_SF_OrdersKPIWidget", OrganizationId, "returnedcheques", "span_ReturnedCheques");
  213. instance.getKPIData("ClearanceDays_SF_OrdersKPIWidget", OrganizationId, "clearancedays", "span_AvgClearenceDays");
  214. });
  215. }
  216. getRecentInvoices() {
  217. var instance = this;
  218. let OrderType = $("#" + instance.VisibleContainerId).find("#F_Widget_OrderType").val();
  219. Bizgaze.Apps.Transact.Managers.InvoiceManager.Instance().getRecentFiveInvoicesBySpocId(instance.OrganizationId).then(function (response) {
  220. var RecentInvoices = response.result;
  221. if (RecentInvoices == "") {
  222. instance.noData();
  223. }
  224. else {
  225. $("#" + instance.PopUpContainerId).find("#widget_list_container").html('<li class="list-group-item list-Report-RecentInvoices hidden"></li>');
  226. var html = '';
  227. for (var i = 0; i < RecentInvoices.length; i++) {
  228. var InvoiceItem = RecentInvoices[i];
  229. html += '<li class="list-group-item"><div class="row ml-2"><span class="col-sm-2">' + InvoiceItem.InvoiceNo + '</span><span class="col-sm-2">' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(InvoiceItem.InvoiceDate) + '</span><span class="col-sm-2">' + InvoiceItem.RefNo + '</span><span class="col-sm-2">' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(InvoiceItem.RefDate) + '</span><span class="col-sm-2">' + InvoiceItem.LobShortCode + '</span><span class="col-sm-2">' + InvoiceItem.TotalAmount + '</span></div></li>';
  230. }
  231. $("#" + instance.PopUpContainerId).find(".list-Report-RecentInvoices:last").after(html);
  232. $("#" + instance.PopUpContainerId).find(".span_List_count").text(RecentInvoices.length);
  233. }
  234. });
  235. }
  236. getRecentPayments() {
  237. var instance = this;
  238. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().getLastFivePaymentsByContactId(instance.OrganizationId).then(function (response) {
  239. var PendingPayments = response.result;
  240. if (PendingPayments == "") {
  241. instance.noData();
  242. }
  243. else {
  244. $("#" + instance.PopUpContainerId).find("#widget_list_container").html('<li class="list-group-item list-Report-RecentPayments hidden"></li>');
  245. var html = '';
  246. for (var i = 0; i < response.result.length; i++) {
  247. var PaymentItem = PendingPayments[i];
  248. var ContactName = PaymentItem.OrganizationName != null ? PaymentItem.OrganizationName : PaymentItem.OrgContactName;
  249. html += '<li class="list-group-item"><div class="row "><span class="col-sm-3"><span>' + PaymentItem.PaymentNo + '</span><br /><span>' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(PaymentItem.PaymentDate) + '</span></span><span class="col-sm-2"><span>' + PaymentItem.RefNo + '</span><br /><span>' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(PaymentItem.RefDate, 'DD MMM YYYY') + '</span></span><span class="col-sm-2">' + PaymentItem.PaymentModeName + '</span><span class="col-sm-3">' + ContactName + '</span><span class="col-sm-2">' + PaymentItem.TotalAmount + '</span></div></li>';
  250. }
  251. $("#" + instance.PopUpContainerId).find(".list-Report-RecentPayments:last").after(html);
  252. $("#" + instance.PopUpContainerId).find(".span_List_count").text(PendingPayments.length);
  253. }
  254. });
  255. }
  256. getReturnedCheques() {
  257. var instance = this;
  258. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().getReturnedChequesBySpocId(instance.OrganizationId).then(function (response) {
  259. var RejectedCheques = response.result;
  260. if (RejectedCheques == "") {
  261. instance.noData();
  262. }
  263. else {
  264. $("#" + instance.PopUpContainerId).find("#widget_list_container").html('<li class="list-group-item list-Report-returnedpayments hidden"></li>');
  265. var html = '';
  266. for (var i = 0; i < response.result.length; i++) {
  267. var PaymentItem = RejectedCheques[i];
  268. var ContactName = PaymentItem.OrganizationName != null ? PaymentItem.OrganizationName : PaymentItem.OrgContactName;
  269. html += '<li class="list-group-item"><div class="row "><span class="col-sm-3"><span>' + PaymentItem.PaymentNo + '</span><br /><span>' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(PaymentItem.PaymentDate) + '</span></span><span class="col-sm-2"><span>' + PaymentItem.RefNo + '</span><br /><span>' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(PaymentItem.RefDate, 'DD MMM YYYY') + '</span></span><span class="col-sm-2">' + PaymentItem.PaymentModeName + '</span><span class="col-sm-3">' + ContactName + '</span><span class="col-sm-2">' + PaymentItem.TotalAmount + '</span></div></li>';
  270. }
  271. $("#" + instance.PopUpContainerId).find(".list-Report-returnedpayments:last").after(html);
  272. $("#" + instance.PopUpContainerId).find(".span_List_count").text(RejectedCheques.length);
  273. }
  274. });
  275. }
  276. static Instance() {
  277. if (this.instance === undefined) {
  278. this.instance = new SalesFrequency();
  279. }
  280. return this.instance;
  281. }
  282. }
  283. Controls.SalesFrequency = SalesFrequency;
  284. })(Controls = Transact.Controls || (Transact.Controls = {}));
  285. })(Transact = Apps.Transact || (Apps.Transact = {}));
  286. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  287. })(Bizgaze || (Bizgaze = {}));