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.

sapreports.js 34KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. var SPRL;
  2. (function (SPRL) {
  3. let Apps;
  4. (function (Apps) {
  5. let Sap;
  6. (function (Sap) {
  7. let Components;
  8. (function (Components) {
  9. class SapReports extends Unibase.Platform.Core.BaseComponent {
  10. cssFiles() {
  11. return ['libs/tabulator/css/tabulator.min.css', 'libs/tabulator-tables/css/bootstrap/tabulator_bootstrap4.min.css'];
  12. }
  13. jsFiles() {
  14. return ["apps/sprl/managers/sap/sapreportmanager.js", "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', 'apps/sprl/components/sap/sapreports.widget.js', 'platform/core/infos/status.js', 'libs/jquery/ui/jquery-ui.min.js', "libs/tabulator-tables/js/tabulator.min.js"];
  15. }
  16. html(id, containerid) {
  17. return `<div class="col-lg-12"><div class="Border"><div id="" class="card"><div class="clear" id="div_validationSummary"></div>
  18. <div class="card-header card-header-action"><strong class="" id="hf-widget-title">SAP Reports</strong><div id="div_ConnectedUsers" class="row hidden col-4"><label>User : </label><div class="floating-label-from-group col-sm-10"><select id="txtAutocomplete_User" class="form-control value-control" style="width:100%;" placeholder="Select" data-placeholder="Select" data-label="User" ></select><input type="hidden" value="0" id="hfAutocomplete_User"/></div></div><div class="row" id="div_fromdate"><label class="mt-5">From Date : </label><div class="floatin-label-from-group ">
  19. <input type="date" id="txt_fromdate" class="form-control floating-label-control datepicker-input hasDatepicker required" data-date-format="dd/MM/yyyy" data-isdynamic="false" placeholder="From Date *" data-placeholder="dd/mm/yyyy" data-label="From Date *">
  20. </div><input type="hidden" id="hf_FromDate"></div><div class="row" id="div_todate"><label class="mt-5">To Date : </label><div class="floatin-label-from-group ">
  21. <input type="date" id="txt_todate" class="form-control floating-label-control datepicker-input hasDatepicker required" data-date-format="dd/MM/yyyy" data-isdynamic="false" placeholder="To Date *" data-placeholder="dd/mm/yyyy" data-label="From Date *">
  22. </div><input type="hidden" id="hf_FromDate"><input type="hidden" id="hf_ToDate"></div></div><div class="card-body pa-0" id="div_sapreportbody"><ul class="list-group" id="div_sapReports"></ul></div></div></div>`;
  23. }
  24. loadUsers() {
  25. var url = _appsettings.server_url() + '/apis/v4/bizgaze/sprl/contacts/getmappingcontacts';
  26. AutoCompleteHelper.getHelper().Create($("#txtAutocomplete_User"), "#hfAutocomplete_User", url, function (response) {
  27. var data = response;
  28. });
  29. }
  30. load(id, containerid, callback) {
  31. var instance = this;
  32. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0) {
  33. $("#div_ConnectedUsers").removeClass("hidden");
  34. instance.loadUsers();
  35. }
  36. else {
  37. $("#div_ConnectedUsers").addClass("hidden");
  38. }
  39. $("#txt_fromdate").val(moment().format('YYYY-MM-DD'));
  40. $("#txt_todate").val(moment().format('YYYY-MM-DD'));
  41. instance.loadSapReports();
  42. }
  43. init(containerid) {
  44. var instance = this;
  45. instance.fileCacheHelper.loadJsFiles(["apps/sprl/components/sap/sapreports.js"], function () {
  46. instance.navigationHelper.loadSection(0, containerid, SPRL.Apps.Sap.Components.SapReports.Instance(), null, null);
  47. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0) {
  48. $("#div_ConnectedUsers").removeClass("hidden");
  49. instance.loadUsers();
  50. }
  51. else {
  52. $("#div_ConnectedUsers").addClass("hidden");
  53. }
  54. instance.loadSapReports();
  55. });
  56. }
  57. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) { }
  58. loadSapReports() {
  59. var html = "";
  60. var setting = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().settings.find(x => x.settingName == "sapcin");
  61. var sapcin = setting != undefined ? setting.settingValue : "";
  62. var contactName = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().name;
  63. var isAdmin = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin;
  64. if (sapcin != "") {
  65. var option = new Option(contactName + "(" + sapcin + ")", sapcin, true);
  66. $("#txtAutocomplete_User").append(option);
  67. }
  68. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0)
  69. sapcin = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_sapcin").Value.toString();
  70. else
  71. sapcin = $("#txtAutocomplete_User").val() != null ? $("#txtAutocomplete_User").val().toString() : "0";
  72. if ((sapcin == "" || sapcin == "0") && !isAdmin) {
  73. $("#div_todate").addClass("hidden");
  74. $("#div_fromdate").addClass("hidden");
  75. $("#div_sapreportbody").removeClass("pa-0");
  76. html = `<div class="text-center"><strong class="col-sm-10">Please Assign SAPCIN</strong></div>`;
  77. }
  78. else {
  79. $("#div_todate").removeClass("hidden");
  80. $("#div_fromdate").removeClass("hidden");
  81. $("#div_sapreportbody").addClass("pa-0");
  82. html = `<li class="list-group-item added-row"><span class="col-sm-10">Customer Limit</span><a class="btn btn-primary pull-right col-sm-2" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeSapCustomerLimit();" id="a_customerLimit">Get Report Data</a></li><li class="list-group-item"><span class="col-sm-10">Customer OverDue</span><a class="btn btn-primary pull-right col-sm-2" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeSapCustomerOverDue();" id="a_customerOverDue">Get Report Data</a></li><li class="list-group-item"><span class="col-sm-10">Debit Note</span><a class="btn btn-primary pull-right col-sm-2 a_debitNote" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeSapDebitCreditNote('DR');" id="a_debitNote">Get Report Data</a></li><li class="list-group-item"><span class="col-sm-10">Credit Note</span><a class="btn btn-primary pull-right col-sm-2 a_creditNote" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeSapDebitCreditNote('DG');" id="a_creditNote">Get Report Data</a></li><li class="list-group-item"><span class="col-sm-10">Sales Report</span><a class="btn btn-primary pull-right col-sm-2" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeSapSalesReport();" id="a_salesReport">Get Report Data</a></li><li class="list-group-item hidden"><span class="col-sm-10">Stock Api</span><a class="btn btn-primary pull-right col-sm-2" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeSapStockApi();" id="a_stock">Get Report Data</a></li><li class="list-group-item"><span class="col-sm-10">Customer OutStanding</span><a class="btn btn-primary pull-right col-sm-2" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeCustomerOutStanding();" id="a_customerOutStanding">Get Report Data</a></li><li class="list-group-item"><span class="col-sm-10">Account Statement</span><a class="btn btn-primary pull-right col-sm-2" href="javascript:;" onclick="SPRL.Apps.Sap.Components.SapReports.Instance().executeAccountStatement();" id="a_accountStatement">Get Report Data</a></li>`;
  83. }
  84. $("#div_sapReports").html(html);
  85. }
  86. showErrorMessage(message) {
  87. $(".divsapReports").html(message);
  88. }
  89. executeSapSalesReport(sapcin, fromdate, todate) {
  90. var fromDate = $("#txt_fromdate").val();
  91. var toDate = $("#txt_todate").val();
  92. var instance = this;
  93. if (fromdate == undefined) {
  94. fromdate = fromDate != "" ? fromDate : new Date();
  95. }
  96. if (todate == undefined) {
  97. todate = toDate != "" ? toDate : new Date();
  98. }
  99. var fdate = moment.utc(fromdate).format("YYYYMMDD");
  100. var tdate = moment.utc(todate).format("YYYYMMDD");
  101. instance.fileCacheHelper.loadJsFiles(["apps/sprl/managers/sap/sapreportmanager.js", 'apps/sprl/components/sap/sapreports.widget.js'], null);
  102. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0)
  103. sapcin = $("#txtAutocomplete_User").val() != null ? $("#txtAutocomplete_User").val() : "0";
  104. else
  105. sapcin = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_sapcin").Value.toString();
  106. if (sapcin == "0") {
  107. MessageHelper.Instance().showError("Please Assign Sap Cin", "div_validationSummary");
  108. return false;
  109. }
  110. else {
  111. $("#a_salesReport").text("Getting...");
  112. SPRL.Apps.Sap.Managers.SapReportManager.Instance().getSalesReport(sapcin, fdate, tdate).then(function (response) {
  113. instance.navigationHelper.popup(0, '', SPRL.Apps.Sap.Components.SapReportWidget.Instance(), null, Unibase.Platform.Helpers.Size.Large);
  114. $("#formName").text("Sales Report");
  115. if (response.status == Unibase.Data.Status.Success) {
  116. response.result = JSON.parse(response.result);
  117. var table = new Tabulator(".divsapReports", {
  118. columns: [
  119. { title: "Invoice No.", field: "VBELN", visible: true, headerSort: false, },
  120. { title: "Invoice date (creation of inv)", field: "FKDAT", visible: true, headerSort: false, },
  121. { title: "Login ID", field: "KUNRG", visible: true, headerSort: false, },
  122. { title: "Customer name", field: "NAME1", visible: true, headerSort: false, },
  123. { title: "Material Code", field: "MATNR", visible: true, headerSort: false, },
  124. { title: "Material description", field: "MAKTX", visible: true, headerSort: false, },
  125. { title: "Quantity (in sets)", field: "FKIMG", visible: true, headerSort: false, },
  126. { title: "Net Value", field: "BASICVALUE", visible: true, headerSort: false, },
  127. { title: "Tax", field: "ST", visible: true, headerSort: false, },
  128. { title: "Total Value", field: "TOTALVAL", visible: true, headerSort: false, }
  129. ],
  130. layout: "fitColumns",
  131. columnMinWidth: 100,
  132. movableColumns: true,
  133. }).setData(response.result);
  134. }
  135. else {
  136. $("#downloadDoc").hide();
  137. if (response.code.toString() == "NotFound")
  138. instance.showErrorMessage("Data not found in selected period");
  139. else
  140. instance.showErrorMessage(response.message);
  141. }
  142. $("#a_salesReport").text("Get Report Data");
  143. });
  144. }
  145. }
  146. executeSapCustomerOverDue(sapcin, date) {
  147. var instance = this;
  148. var fromDate = $("#txt_fromdate").val();
  149. if (date == undefined) {
  150. date = fromDate != "" ? fromDate : new Date();
  151. }
  152. date = moment.utc(date).format("YYYYMMDD");
  153. instance.fileCacheHelper.loadJsFiles(["apps/sprl/managers/sap/sapreportmanager.js", 'apps/sprl/components/sap/sapreports.widget.js'], null);
  154. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0)
  155. sapcin = $("#txtAutocomplete_User").val() != null ? $("#txtAutocomplete_User").val() : "0";
  156. else
  157. sapcin = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_sapcin").Value.toString();
  158. if (sapcin == "0") {
  159. MessageHelper.Instance().showError("Please Assign Sap Cin", "div_validationSummary");
  160. return false;
  161. }
  162. else {
  163. $("#a_customerOverDue").text("Getting...");
  164. SPRL.Apps.Sap.Managers.SapReportManager.Instance().getCustomerOverDue(sapcin, date).then(function (response) {
  165. instance.navigationHelper.popup(0, '', SPRL.Apps.Sap.Components.SapReportWidget.Instance(), null, Unibase.Platform.Helpers.Size.Large);
  166. $("#formName").text("Customer Over Due");
  167. if (response.status == Unibase.Data.Status.Success) {
  168. var json = JSON.parse(response.result);
  169. var html = `<li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Login ID</strong><span class="col-sm-6 spn_value">` + json.KUNNR + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Name of Customer</strong><span class="col-sm-6 spn_value">` + json.NAME1 + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Town</strong><span class="col-sm-6 spn_value">` + json.CITY + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Country</strong><span class="col-sm-6 spn_value">` + json.LANDX + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Payment not Due</strong><span class="col-sm-6 spn_value">` + json.NOT_DUE + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">01-30 Days</strong><span class="col-sm-6 spn_value">` + json.FOR_1_30 + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">31-60 Days</strong><span class="col-sm-6 spn_value">` + json.FOR_31_60 + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">61-90 Days</strong><span class="col-sm-6 spn_value">` + json.FOR_61_90 + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">91-180 Days</strong><span class="col-sm-6 spn_value">` + json.FOR_91_180 + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">181-365 Days</strong><span class="col-sm-6 spn_value">` + json.FOR_181_365 + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Over 365 Days</strong><span class="col-sm-6 spn_value">` + json.OVER_365 + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Advances</strong><span class="col-sm-6 spn_value">` + json.ADVANCES + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Net Over Due</strong><span class="col-sm-6 spn_value">` + json.NET + `</span></div></li>`;
  170. $(".divsapReports").html(html);
  171. }
  172. else {
  173. $("#downloadDoc").hide();
  174. if (response.code.toString() == "NotFound")
  175. instance.showErrorMessage("Data not found in selected period");
  176. else
  177. instance.showErrorMessage(response.message);
  178. }
  179. $("#a_customerOverDue").text("Get Report Data");
  180. });
  181. }
  182. }
  183. executeSapCustomerLimit(sapcin) {
  184. var instance = this;
  185. instance.fileCacheHelper.loadJsFiles(["apps/sprl/managers/sap/sapreportmanager.js", 'apps/sprl/components/sap/sapreports.widget.js'], null);
  186. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0)
  187. sapcin = $("#txtAutocomplete_User").val() != null ? $("#txtAutocomplete_User").val() : "0";
  188. else
  189. sapcin = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_sapcin").Value.toString();
  190. if (sapcin == "0") {
  191. MessageHelper.Instance().showError("Please Assign Sap Cin", "div_validationSummary");
  192. return false;
  193. }
  194. else {
  195. $("#a_customerLimit").text("Getting...");
  196. SPRL.Apps.Sap.Managers.SapReportManager.Instance().getCustomerLimit(sapcin).then(function (response) {
  197. instance.navigationHelper.popup(0, '', SPRL.Apps.Sap.Components.SapReportWidget.Instance(), null, Unibase.Platform.Helpers.Size.Large);
  198. $("#formName").text("Credit limit");
  199. if (response.status == Unibase.Data.Status.Success) {
  200. var json = JSON.parse(response.result);
  201. var usedCreditLimit = 0;
  202. usedCreditLimit = Number(json.SKFOR) * 100 / json.KLIMK;
  203. var html = `<li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Login ID</strong><span id="spn_kunnr" class="col-sm-6 spn_value">` + json.KUNNR + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Credit limit (Rs.)</strong><span id="spn_klimk" class="col-sm-6 spn_value">` + json.KLIMK + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Credit limit used %</strong><span class="col-sm-6 spn_value" id="spn_skForKlimk">` + usedCreditLimit.toFixed(2) + `(%)</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Credit Limit used (Rs.)</strong><span class="col-sm-6 spn_value" id="spn_SkFor">` + json.SKFOR + `</span></div></li>`;
  204. $(".divsapReports").html(html);
  205. }
  206. else {
  207. $("#downloadDoc").hide();
  208. if (response.code.toString() == "NotFound")
  209. instance.showErrorMessage("Data not found in selected period");
  210. else
  211. instance.showErrorMessage(response.message);
  212. }
  213. $("#a_customerLimit").text("Get Report Data");
  214. });
  215. }
  216. }
  217. executeSapDebitCreditNote(blart) {
  218. var instance = this;
  219. var fromDate = $("#txt_fromdate").val();
  220. var toDate = $("#txt_todate").val();
  221. var fromdate = fromDate != "" ? fromDate : new Date();
  222. var todate = toDate != "" ? toDate : new Date();
  223. var sapcin = "";
  224. var fdate = moment.utc(fromdate).format("YYYYMMDD");
  225. var tdate = moment.utc(todate).format("YYYYMMDD");
  226. instance.fileCacheHelper.loadJsFiles(["apps/sprl/managers/sap/sapreportmanager.js", 'apps/sprl/components/sap/sapreports.widget.js'], null);
  227. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0)
  228. sapcin = $("#txtAutocomplete_User").val() != null ? $("#txtAutocomplete_User").val().toString() : "0";
  229. else
  230. sapcin = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_sapcin").Value.toString();
  231. blart = blart == undefined ? "DR" : blart;
  232. if (sapcin == "0") {
  233. MessageHelper.Instance().showError("Please Assign Sap Cin", "div_validationSummary");
  234. return false;
  235. }
  236. else {
  237. var formName = "Debit Note";
  238. if (blart == "DG") {
  239. formName = "Credit Note";
  240. $("#a_creditNote").text("Getting...");
  241. }
  242. else
  243. $("#a_debitNote").text("Getting...");
  244. SPRL.Apps.Sap.Managers.SapReportManager.Instance().getDebitCreditNote(sapcin, fdate, tdate, blart).then(function (response) {
  245. instance.navigationHelper.popup(0, '', SPRL.Apps.Sap.Components.SapReportWidget.Instance(), null, Unibase.Platform.Helpers.Size.Large);
  246. $("#formName").text(formName);
  247. if (response.status == Unibase.Data.Status.Success) {
  248. var json = JSON.parse(response.result);
  249. var html = `<li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Login ID</strong><span class="col-sm-6 spn_value">` + json.KUNNR + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Document No.</strong><span class="col-sm-6 spn_value">` + json.BELNR + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Date</strong><span class="col-sm-6 spn_value">` + json.AUGDT + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Reference Doc No.</strong><span class="col-sm-6 spn_value">` + json.ZUONR + `</span></div></li><li class="list-group-item added-item"><div class="row"><strong class="col-sm-6 spn_id">Amount</strong><span class="col-sm-6 spn_value">` + json.WRBTR + `</span></div></div></li>`;
  250. $(".divsapReports").html(html);
  251. }
  252. else {
  253. $("#downloadDoc").hide();
  254. if (response.code.toString() == "NotFound")
  255. instance.showErrorMessage("Data not found in selected period");
  256. else
  257. instance.showErrorMessage(response.message);
  258. }
  259. $("#a_creditNote").text("Get Report Data");
  260. $("#a_debitNote").text("Get Report Data");
  261. });
  262. }
  263. }
  264. executeCustomerOutStanding(sapcin) {
  265. var instance = this;
  266. instance.fileCacheHelper.loadJsFiles(["apps/sprl/managers/sap/sapreportmanager.js", 'apps/sprl/components/sap/sapreports.widget.js'], null);
  267. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0)
  268. sapcin = $("#txtAutocomplete_User").val() != null ? $("#txtAutocomplete_User").val() : "0";
  269. else
  270. sapcin = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_sapcin").Value.toString();
  271. if (sapcin == "0") {
  272. MessageHelper.Instance().showError("Please Assign Sap Cin", "div_validationSummary");
  273. return false;
  274. }
  275. else {
  276. $("#a_customerOutStanding").text("Getting...");
  277. SPRL.Apps.Sap.Managers.SapReportManager.Instance().getCustomerOutStanding(sapcin).then(function (response) {
  278. instance.navigationHelper.popup(0, '', SPRL.Apps.Sap.Components.SapReportWidget.Instance(), null, Unibase.Platform.Helpers.Size.Large);
  279. $("#formName").text("Outstanding Statement");
  280. if (response.status == Unibase.Data.Status.Success) {
  281. response.result = JSON.parse(response.result);
  282. var table = new Tabulator(".divsapReports", {
  283. columns: [
  284. { title: "Login ID", field: "ZLOGINID", visible: true },
  285. { title: "Document Date", field: "ZDOCDATE", visible: true },
  286. { title: "Invoice No.", field: "ZEXINVNO", visible: true },
  287. { title: "Document Type", field: "ZTYPE", visible: true },
  288. { title: "SAP Invoice No.", field: "BELNR", visible: true },
  289. { title: "Voucher No.", field: "", visible: true },
  290. { title: "Due Date", field: "ZNETDUEDATE", visible: true },
  291. { title: "Amount", field: "ZAMOUNT", visible: true },
  292. { title: "Remarks", field: "ZTEXT", visible: true }
  293. ],
  294. layout: "fitColumns",
  295. columnMinWidth: 100,
  296. movableColumns: true,
  297. }).setData(response.result);
  298. }
  299. else {
  300. $("#downloadDoc").hide();
  301. if (response.code.toString() == "NotFound")
  302. instance.showErrorMessage("Data not found in selected period");
  303. else
  304. instance.showErrorMessage(response.message);
  305. }
  306. $("#a_customerOutStanding").text("Get Report Data");
  307. });
  308. }
  309. }
  310. executeAccountStatement(sapcin, fromdate, todate) {
  311. var instance = this;
  312. instance.fileCacheHelper.loadJsFiles(["apps/sprl/managers/sap/sapreportmanager.js", 'apps/sprl/components/sap/sapreports.widget.js'], null);
  313. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length == 0)
  314. sapcin = $("#txtAutocomplete_User").val() != null ? $("#txtAutocomplete_User").val() : "0";
  315. else
  316. sapcin = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_sapcin").Value.toString();
  317. var fromDate = $("#txt_fromdate").val();
  318. var toDate = $("#txt_todate").val();
  319. if (fromdate == undefined) {
  320. fromdate = fromDate != "" ? fromDate : new Date();
  321. }
  322. if (todate == undefined) {
  323. todate = toDate != "" ? toDate : new Date();
  324. }
  325. var fdate = moment.utc(fromdate).format("YYYYMMDD");
  326. var tdate = moment.utc(todate).format("YYYYMMDD");
  327. if (sapcin == "0") {
  328. MessageHelper.Instance().showError("Please Assign Sap Cin", "div_validationSummary");
  329. return false;
  330. }
  331. else {
  332. $("#a_accountStatement").text("Getting...");
  333. SPRL.Apps.Sap.Managers.SapReportManager.Instance().getAccountStatement(sapcin, fdate, tdate).then(function (response) {
  334. instance.navigationHelper.popup(0, '', SPRL.Apps.Sap.Components.SapReportWidget.Instance(), null, Unibase.Platform.Helpers.Size.Large);
  335. $("#formName").text("Account Statement");
  336. if (response.status == Unibase.Data.Status.Success) {
  337. response.result = JSON.parse(response.result);
  338. var table = new Tabulator(".divsapReports", {
  339. columns: [
  340. { title: "Voucher No.", field: "BELNR", visible: true },
  341. { title: "Voucher Date", field: "BUDAT", visible: true },
  342. { title: "Voucher Type", field: "BLART", visible: true },
  343. { title: "Debit Amount", field: "DMBTR", visible: true },
  344. { title: "Credit Amount", field: "WRBTR", visible: true },
  345. { title: "Cheque No.", field: "ZUONR", visible: true },
  346. { title: "Invoice No.", field: "XBLNR", visible: true },
  347. { title: "Remarks", field: "SGTEXT", visible: true },
  348. ],
  349. layout: "fitColumns",
  350. columnMinWidth: 100,
  351. movableColumns: true,
  352. }).setData(response.result);
  353. }
  354. else {
  355. $("#downloadDoc").hide();
  356. if (response.code.toString() == "NotFound")
  357. instance.showErrorMessage("Data not found in selected period");
  358. else
  359. instance.showErrorMessage(response.message);
  360. }
  361. $("#a_accountStatement").text("Get Report Data");
  362. });
  363. }
  364. }
  365. static Instance() {
  366. if (this.instance === undefined) {
  367. this.instance = new SapReports();
  368. }
  369. return this.instance;
  370. }
  371. }
  372. Components.SapReports = SapReports;
  373. })(Components = Sap.Components || (Sap.Components = {}));
  374. })(Sap = Apps.Sap || (Apps.Sap = {}));
  375. })(Apps = SPRL.Apps || (SPRL.Apps = {}));
  376. })(SPRL || (SPRL = {}));