@sachin9822/reports-lib 0.0.211 → 0.0.213

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/karma.conf.js +44 -0
  2. package/ng-package.json +17 -0
  3. package/package.json +16 -31
  4. package/src/assets/images/BreadcrumbArrow.png +0 -0
  5. package/src/lib/assets/images/Search.svg +10 -0
  6. package/src/lib/assets/images/XMLogo.png +0 -0
  7. package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.html +27 -0
  8. package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.scss +46 -0
  9. package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.spec.ts +23 -0
  10. package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.ts +292 -0
  11. package/src/lib/components/accounting-report/accounting-report.component.html +64 -0
  12. package/src/lib/components/accounting-report/accounting-report.component.scss +24 -0
  13. package/src/lib/components/accounting-report/accounting-report.component.spec.ts +23 -0
  14. package/src/lib/components/accounting-report/accounting-report.component.ts +738 -0
  15. package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.html +46 -0
  16. package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.scss +2 -0
  17. package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.spec.ts +23 -0
  18. package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.ts +247 -0
  19. package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.html +46 -0
  20. package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.scss +3 -0
  21. package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.spec.ts +23 -0
  22. package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.ts +276 -0
  23. package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.html +51 -0
  24. package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.scss +7 -0
  25. package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.spec.ts +23 -0
  26. package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.ts +840 -0
  27. package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.html +68 -0
  28. package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.scss +65 -0
  29. package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.spec.ts +23 -0
  30. package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.ts +290 -0
  31. package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.html +25 -0
  32. package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.scss +1 -0
  33. package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.spec.ts +23 -0
  34. package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.ts +213 -0
  35. package/src/lib/components/funding-report/funding-report.component.html +49 -0
  36. package/src/lib/components/funding-report/funding-report.component.scss +1 -0
  37. package/src/lib/components/funding-report/funding-report.component.spec.ts +23 -0
  38. package/src/lib/components/funding-report/funding-report.component.ts +221 -0
  39. package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.html +26 -0
  40. package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.scss +1 -0
  41. package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.spec.ts +23 -0
  42. package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.ts +267 -0
  43. package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.html +95 -0
  44. package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.scss +54 -0
  45. package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.spec.ts +23 -0
  46. package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.ts +904 -0
  47. package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.html +49 -0
  48. package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.scss +2 -0
  49. package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.spec.ts +32 -0
  50. package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.ts +304 -0
  51. package/src/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.html +46 -0
  52. package/src/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.scss +7 -0
  53. package/src/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.ts +343 -0
  54. package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.html +25 -0
  55. package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.scss +23 -0
  56. package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.spec.ts +23 -0
  57. package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.ts +745 -0
  58. package/src/lib/models/acc-gl-details-enquiry-report/accgl-details-enquiry-reportmodel.ts +10 -0
  59. package/src/lib/models/acc-gl-details-enquiry-report/journal-voucher-entry-model.ts +20 -0
  60. package/src/lib/models/accounting-report/accounting-report-branch-group.ts +7 -0
  61. package/src/lib/models/accounting-report/accounting-report-entry-model.ts +25 -0
  62. package/src/lib/models/accounting-report/accounting-report-model.ts +7 -0
  63. package/{lib/models/accounting-report/accounting-report-sub-group.d.ts → src/lib/models/accounting-report/accounting-report-sub-group.ts} +3 -2
  64. package/{lib/models/app-config.model.d.ts → src/lib/models/app-config.model.ts} +8 -7
  65. package/src/lib/models/branch-activity-receive-report/branch-activity-receive.model.ts +18 -0
  66. package/src/lib/models/branch-activity-report/branch-activity-send-report-request-domain-model.ts +16 -0
  67. package/src/lib/models/branch-activity-report/branch-activity-send-report.ts +26 -0
  68. package/src/lib/models/cancellation-transaction-report/cancellation-transaction.model.ts +65 -0
  69. package/src/lib/models/component-loading-states.ts +5 -0
  70. package/src/lib/models/credit-limit-status-enquiry-report/credit-limit-status-enquiry.model.ts +28 -0
  71. package/{lib/models/revenue-per-transaction-report/revenue-per-transaction.model.d.ts → src/lib/models/revenue-per-transaction-report/revenue-per-transaction.model.ts} +1 -1
  72. package/src/lib/models/statement-of-account-report/statement-of-accounts.model.ts +21 -0
  73. package/src/lib/models/transaction-enquiry-report/transaction-enquiry.model.ts +127 -0
  74. package/src/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.ts +16 -0
  75. package/src/lib/models/transaction-monitoring-report/transaction-monitoring-report.ts +29 -0
  76. package/src/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.ts +46 -0
  77. package/src/lib/reports-lib-routing.module.ts +20 -0
  78. package/src/lib/reports-lib.component.spec.ts +23 -0
  79. package/src/lib/reports-lib.component.ts +20 -0
  80. package/src/lib/reports-lib.module.ts +102 -0
  81. package/src/lib/reports-lib.service.spec.ts +16 -0
  82. package/src/lib/reports-lib.service.ts +9 -0
  83. package/src/lib/services/config.service.ts +43 -0
  84. package/src/lib/services/report.service.spec.ts +16 -0
  85. package/src/lib/services/report.service.ts +463 -0
  86. package/src/lib/shared/export-generic.service.ts +557 -0
  87. package/src/lib/shared/export.service.spec.ts +16 -0
  88. package/src/lib/shared/export.service.ts +457 -0
  89. package/src/lib/shared/loader/loader.component.html +8 -0
  90. package/src/lib/shared/loader/loader.component.scss +52 -0
  91. package/src/lib/shared/loader/loader.component.ts +10 -0
  92. package/src/lib/shared/metadata/metadata.component.html +42 -0
  93. package/src/lib/shared/metadata/metadata.component.scss +95 -0
  94. package/src/lib/shared/metadata/metadata.component.spec.ts +23 -0
  95. package/src/lib/shared/metadata/metadata.component.ts +38 -0
  96. package/src/lib/shared/page-size-selector/page-size-selector.component.html +7 -0
  97. package/src/lib/shared/page-size-selector/page-size-selector.component.scss +42 -0
  98. package/src/lib/shared/page-size-selector/page-size-selector.component.spec.ts +23 -0
  99. package/src/lib/shared/page-size-selector/page-size-selector.component.ts +38 -0
  100. package/src/lib/shared/search-filter/search-filter.component.html +601 -0
  101. package/src/lib/shared/search-filter/search-filter.component.scss +203 -0
  102. package/src/lib/shared/search-filter/search-filter.component.spec.ts +23 -0
  103. package/src/lib/shared/search-filter/search-filter.component.ts +2387 -0
  104. package/src/lib/shared/shared.module.ts +13 -0
  105. package/{public-api.d.ts → src/public-api.ts} +17 -7
  106. package/src/styles/ag-grid-report-style.scss +71 -0
  107. package/src/styles/common-ag-grid-style.scss +146 -0
  108. package/src/styles/common-report-style.scss +395 -0
  109. package/src/styles/common-style.scss +615 -0
  110. package/src/test.ts +27 -0
  111. package/tsconfig.lib.json +15 -0
  112. package/tsconfig.lib.prod.json +10 -0
  113. package/tsconfig.spec.json +17 -0
  114. package/esm2020/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.mjs +0 -240
  115. package/esm2020/lib/components/accounting-report/accounting-report.component.mjs +0 -596
  116. package/esm2020/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.mjs +0 -218
  117. package/esm2020/lib/components/branch-activity-send-report/branch-activity-send-report.component.mjs +0 -243
  118. package/esm2020/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.mjs +0 -700
  119. package/esm2020/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.mjs +0 -255
  120. package/esm2020/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.mjs +0 -192
  121. package/esm2020/lib/components/funding-report/funding-report.component.mjs +0 -198
  122. package/esm2020/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.mjs +0 -244
  123. package/esm2020/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.mjs +0 -776
  124. package/esm2020/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.mjs +0 -266
  125. package/esm2020/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.mjs +0 -311
  126. package/esm2020/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.mjs +0 -631
  127. package/esm2020/lib/models/acc-gl-details-enquiry-report/accgl-details-enquiry-reportmodel.mjs +0 -2
  128. package/esm2020/lib/models/acc-gl-details-enquiry-report/journal-voucher-entry-model.mjs +0 -2
  129. package/esm2020/lib/models/accounting-report/accounting-report-branch-group.mjs +0 -2
  130. package/esm2020/lib/models/accounting-report/accounting-report-entry-model.mjs +0 -2
  131. package/esm2020/lib/models/accounting-report/accounting-report-model.mjs +0 -2
  132. package/esm2020/lib/models/accounting-report/accounting-report-sub-group.mjs +0 -2
  133. package/esm2020/lib/models/app-config.model.mjs +0 -2
  134. package/esm2020/lib/models/branch-activity-receive-report/branch-activity-receive.model.mjs +0 -2
  135. package/esm2020/lib/models/branch-activity-report/branch-activity-send-report-request-domain-model.mjs +0 -6
  136. package/esm2020/lib/models/branch-activity-report/branch-activity-send-report.mjs +0 -3
  137. package/esm2020/lib/models/cancellation-transaction-report/cancellation-transaction.model.mjs +0 -10
  138. package/esm2020/lib/models/component-loading-states.mjs +0 -7
  139. package/esm2020/lib/models/credit-limit-status-enquiry-report/credit-limit-status-enquiry.model.mjs +0 -5
  140. package/esm2020/lib/models/revenue-per-transaction-report/revenue-per-transaction.model.mjs +0 -2
  141. package/esm2020/lib/models/statement-of-account-report/statement-of-accounts.model.mjs +0 -2
  142. package/esm2020/lib/models/transaction-enquiry-report/transaction-enquiry.model.mjs +0 -8
  143. package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.mjs +0 -6
  144. package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report.mjs +0 -5
  145. package/esm2020/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.mjs +0 -3
  146. package/esm2020/lib/reports-lib-routing.module.mjs +0 -24
  147. package/esm2020/lib/reports-lib.component.mjs +0 -22
  148. package/esm2020/lib/reports-lib.module.mjs +0 -172
  149. package/esm2020/lib/reports-lib.service.mjs +0 -14
  150. package/esm2020/lib/services/config.service.mjs +0 -39
  151. package/esm2020/lib/services/report.service.mjs +0 -374
  152. package/esm2020/lib/shared/export-generic.service.mjs +0 -443
  153. package/esm2020/lib/shared/export.service.mjs +0 -379
  154. package/esm2020/lib/shared/loader/loader.component.mjs +0 -11
  155. package/esm2020/lib/shared/metadata/metadata.component.mjs +0 -51
  156. package/esm2020/lib/shared/page-size-selector/page-size-selector.component.mjs +0 -44
  157. package/esm2020/lib/shared/search-filter/search-filter.component.mjs +0 -2134
  158. package/esm2020/lib/shared/shared.module.mjs +0 -21
  159. package/esm2020/public-api.mjs +0 -41
  160. package/esm2020/sachin9822-reports-lib.mjs +0 -5
  161. package/fesm2015/sachin9822-reports-lib.mjs +0 -8402
  162. package/fesm2015/sachin9822-reports-lib.mjs.map +0 -1
  163. package/fesm2020/sachin9822-reports-lib.mjs +0 -8384
  164. package/fesm2020/sachin9822-reports-lib.mjs.map +0 -1
  165. package/index.d.ts +0 -5
  166. package/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.d.ts +0 -70
  167. package/lib/components/accounting-report/accounting-report.component.d.ts +0 -76
  168. package/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.d.ts +0 -58
  169. package/lib/components/branch-activity-send-report/branch-activity-send-report.component.d.ts +0 -69
  170. package/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.d.ts +0 -78
  171. package/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.d.ts +0 -95
  172. package/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.d.ts +0 -55
  173. package/lib/components/funding-report/funding-report.component.d.ts +0 -55
  174. package/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.d.ts +0 -57
  175. package/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.d.ts +0 -109
  176. package/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.d.ts +0 -76
  177. package/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.d.ts +0 -68
  178. package/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.d.ts +0 -71
  179. package/lib/models/acc-gl-details-enquiry-report/accgl-details-enquiry-reportmodel.d.ts +0 -8
  180. package/lib/models/acc-gl-details-enquiry-report/journal-voucher-entry-model.d.ts +0 -18
  181. package/lib/models/accounting-report/accounting-report-branch-group.d.ts +0 -6
  182. package/lib/models/accounting-report/accounting-report-entry-model.d.ts +0 -24
  183. package/lib/models/accounting-report/accounting-report-model.d.ts +0 -6
  184. package/lib/models/branch-activity-receive-report/branch-activity-receive.model.d.ts +0 -18
  185. package/lib/models/branch-activity-report/branch-activity-send-report-request-domain-model.d.ts +0 -13
  186. package/lib/models/branch-activity-report/branch-activity-send-report.d.ts +0 -24
  187. package/lib/models/cancellation-transaction-report/cancellation-transaction.model.d.ts +0 -44
  188. package/lib/models/component-loading-states.d.ts +0 -5
  189. package/lib/models/credit-limit-status-enquiry-report/credit-limit-status-enquiry.model.d.ts +0 -26
  190. package/lib/models/statement-of-account-report/statement-of-accounts.model.d.ts +0 -18
  191. package/lib/models/transaction-enquiry-report/transaction-enquiry.model.d.ts +0 -113
  192. package/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.d.ts +0 -13
  193. package/lib/models/transaction-monitoring-report/transaction-monitoring-report.d.ts +0 -23
  194. package/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.d.ts +0 -38
  195. package/lib/reports-lib-routing.module.d.ts +0 -7
  196. package/lib/reports-lib.component.d.ts +0 -8
  197. package/lib/reports-lib.module.d.ts +0 -33
  198. package/lib/reports-lib.service.d.ts +0 -6
  199. package/lib/services/config.service.d.ts +0 -20
  200. package/lib/services/report.service.d.ts +0 -80
  201. package/lib/shared/export-generic.service.d.ts +0 -50
  202. package/lib/shared/export.service.d.ts +0 -32
  203. package/lib/shared/loader/loader.component.d.ts +0 -5
  204. package/lib/shared/metadata/metadata.component.d.ts +0 -24
  205. package/lib/shared/page-size-selector/page-size-selector.component.d.ts +0 -15
  206. package/lib/shared/search-filter/search-filter.component.d.ts +0 -127
  207. package/lib/shared/shared.module.d.ts +0 -11
  208. /package/{lib → src}/assets/images/Search.svg +0 -0
  209. /package/{lib/assets/images/XMLogo.png → src/assets/images/XMCoral.png} +0 -0
  210. /package/{lib → src/lib}/assets/config/app-config.json +0 -0
  211. /package/{lib → src/lib}/assets/svg-loaders/blue-tail-spin.svg +0 -0
@@ -0,0 +1,267 @@
1
+ import { Component, inject, OnInit } from '@angular/core';
2
+ import { RevenuePerTransactionResponseModel } from '../../models/revenue-per-transaction-report/revenue-per-transaction.model';
3
+ import { ReportService } from '../../services/report.service';
4
+ import { ExportService } from '../../shared/export.service';
5
+ import { ComponentLoadingStates } from '../../models/component-loading-states';
6
+ import { ColDef, ColumnApi, GridApi, GridReadyEvent } from 'ag-grid-community';
7
+ import { formatDate } from '@angular/common';
8
+
9
+ @Component({
10
+ selector: 'lib-revenue-per-transaction-report',
11
+ templateUrl: './revenue-per-transaction-report.component.html',
12
+ styleUrls: ['./revenue-per-transaction-report.component.scss']
13
+ })
14
+ export class RevenuePerTransactionReportComponent implements OnInit {
15
+ data: RevenuePerTransactionResponseModel[] = [];
16
+ filteredData: RevenuePerTransactionResponseModel[] = [];
17
+ user: string = "";
18
+ sysUserId: string = "";
19
+ ReportName = "Revenue Per Transaction"
20
+ reportService: ReportService = inject(ReportService);
21
+ exportService: ExportService = inject(ExportService);
22
+ reportDate: string;
23
+ fromDate: string;
24
+ toDate: string;
25
+ metaDataOne: Record<string, string>;
26
+ metaDataTwo: Record<string, string>;
27
+ ComponentLoadingState = ComponentLoadingStates;
28
+ loadingState: ComponentLoadingStates = ComponentLoadingStates.Complete;
29
+ selectedExportOption: string;
30
+ searchText: string = '';
31
+ pageSize: number = 15;
32
+ searchCriteria: [string, string][];
33
+
34
+ gridApi: GridApi;
35
+ gridColumnApi: ColumnApi;
36
+ showReport: boolean = false;
37
+ noDataFound: boolean = false;
38
+ isFormValid: boolean = false;
39
+
40
+ columnDefs: ColDef<RevenuePerTransactionResponseModel>[] = [
41
+ { field: 'businessDate', headerName: 'Business Date', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, tooltipField: 'businessDate' },
42
+ { field: 'payInDate', headerName: 'Send Date', flex: 1, headerClass: 'ag-header-cell', minWidth: 100, tooltipField: 'payInDate' },
43
+ { field: 'payOutDate', headerName: 'Receive Date', flex: 1, headerClass: 'ag-header-cell', minWidth: 100, wrapText: true, autoHeight: true, tooltipField: 'payOutDate' },
44
+ { field: 'transactionNumber', headerName: 'Transaction Number', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'transactionNumber' },
45
+ { field: 'productCode', headerName: 'Product', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'productCode' },
46
+ { field: 'sendCountry', headerName: 'Send Country', flex: 1, headerClass: 'ag-header-cell', minWidth: 120, wrapText: true, autoHeight: true, tooltipField: 'sendCountry' },
47
+ { field: 'sendAgentName', headerName: 'SendClient Name', flex: 1, headerClass: 'ag-header-cell', minWidth: 120, wrapText: true, autoHeight: true, tooltipField: 'sendAgentName' },
48
+ { field: 'sendAgentCode', headerName: 'SendClient Code', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'sendAgentCode' },
49
+ { field: 'sendAgentBranchCode', headerName: 'SendClient BranchCode', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'sendAgentBranchCode' },
50
+ { field: 'receiveCountry', headerName: 'Receive Country', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'receiveCountry' },
51
+ { field: 'receiveAgentName', headerName: 'ReceiveClient Name', flex: 1, headerClass: 'ag-header-cell', minWidth: 150, wrapText: true, autoHeight: true, tooltipField: 'receiveAgentName' },
52
+ { field: 'receiveAgentCode', headerName: 'ReceiveClient Code', flex: 1, headerClass: 'ag-header-cell', minWidth: 90, wrapText: true, autoHeight: true, tooltipField: 'receiveAgentCode' },
53
+ { field: 'payInCurrency', headerName: 'Send CcyCode', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'payInCurrency' },
54
+ { field: 'payInAmount', headerName: 'Send Amount', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payInAmount' },
55
+ { field: 'transactionCommission', headerName: 'Service Fee', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'transactionCommission' },
56
+ { field: 'usdRate', headerName: 'USD Rate', flex: 1, headerClass: 'ag-header-cell', wrapText: true, minWidth: 80, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'usdRate' },
57
+ { field: 'ezRemitSellMargin', headerName: 'XM SellMargin', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'ezRemitSellMargin' },
58
+ { field: 'ezRemitSellRate', headerName: 'XM SellRate', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'ezRemitSellRate' },
59
+ { field: 'bankSellRate', headerName: 'Bank SellRate', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'bankSellRate' },
60
+ { field: 'payOutCurrency', headerName: 'Receive CcyCode', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'payOutCurrency' },
61
+ { field: 'payOutAmount', headerName: 'Receive Amount', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payOutAmount' },
62
+ { field: 'beneDeductAmount', headerName: 'BeneDeduct Amount', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'beneDeductAmount' },
63
+ { field: 'usdRateAppliedPayout', headerName: 'USDRate @Payout', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'usdRateAppliedPayout' },
64
+ { field: 'xMsCommissionShare', headerName: "XM's Service Fee Share", flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'xmsCommissionShare' },
65
+ { field: 'xmExchangeVariation', headerName: 'XM Exchange Variation (Gain/Loss)', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'xmExchangeVariation' },
66
+ { field: 'xMsBeneDeductShare', headerName: "XM's BeneDeduct Share", flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'xmsBeneDeductShare' },
67
+ { field: 'revenuePerTransaction', headerName: 'Revenue Per Transaction', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'revenuePerTransaction' },
68
+ { field: 'totalSettleAmount', headerName: 'Total Settlement', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true,cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'totalSettleAmount' },
69
+ { field: 'transactionStatus', headerName: 'Transaction Status', flex: 1, headerClass: 'ag-header-cell', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'transactionStatus' },
70
+ ]
71
+
72
+ defaultColDef = {
73
+ sortable: true,
74
+ filter: true,
75
+ resizable: true,
76
+ minwidth: 40,
77
+ wrapHeaderText: true,
78
+ autoHeaderHeight: true,
79
+ suppressSizeToFit: false,
80
+ wrapText: true
81
+ };
82
+ constructor() { }
83
+
84
+ ngOnInit(): void {
85
+ if (sessionStorage.getItem('fossilusername')) {
86
+ this.sysUserId = sessionStorage.getItem('fossilusername')
87
+ }
88
+ else {
89
+ this.sysUserId = sessionStorage.getItem('ezremitusername');
90
+ }
91
+ this.sysUserId = this.sysUserId.replace(/^["'](.*)["']$/, '$1');
92
+ }
93
+
94
+ onGridReady(params: GridReadyEvent) {
95
+ this.gridApi = params.api;
96
+ this.gridColumnApi = params.columnApi;
97
+ }
98
+
99
+ // Currency Formatter
100
+ formatAmount(params: any): string {
101
+ if (params.value == null) return '0.000';
102
+ const num = Number(params.value);
103
+ return num.toFixed(3);
104
+ }
105
+
106
+ formatRate(params: any): string {
107
+ const value = params?.value;
108
+ if (value !== null && value !== undefined && value !== '') {
109
+ const num = Number(value);
110
+ // return (Math.trunc(num * 100000000) / 100000000).toFixed(8);
111
+ return parseFloat(value).toFixed(8);
112
+ }
113
+ return '';
114
+ }
115
+
116
+ onSearch(text: string) {
117
+ this.searchText = text;
118
+ if (this.searchText == null) {
119
+ return;
120
+ }
121
+ if (this.searchText === "") {
122
+ this.filteredData = JSON.parse(JSON.stringify(this.data));
123
+ return;
124
+ }
125
+ const data = JSON.parse(JSON.stringify(this.data));
126
+ this.filteredData = data.filter((row) =>
127
+ Object.values(row).some(val => String(val).toLowerCase().includes(this.searchText?.toLowerCase()))
128
+ )
129
+ }
130
+
131
+ handleExport(option: string) {
132
+ this.selectedExportOption = option;
133
+ if (this.selectedExportOption === 'pdf') {
134
+ this.exportToPDF();
135
+ } else if (this.selectedExportOption === 'excel') {
136
+ this.exportToExcel();
137
+ } else if (this.selectedExportOption === 'csv') {
138
+ this.exportToCSV();
139
+ } else {
140
+ alert('Please select a valid export format.');
141
+ }
142
+ }
143
+
144
+ exportToExcel(): void {
145
+ if (!this.data?.length) return;
146
+
147
+ const title = this.ReportName;
148
+ const metadata = this.exportService.generateReportMetadata([
149
+ ['Report Period ', this.fromDate + " - " + this.toDate],
150
+ ['Report User & Time', this.user?this.user+" @ "+this.reportDate:''+" @ "+this.reportDate],
151
+ ]);
152
+ // --- search criteria ---
153
+ const searchCriteria: [string, string][] = this.searchCriteria;
154
+
155
+ const { headers, rows } = this.exportService.prepareExportTable(this.data, this.columnDefs, {
156
+ currencyFields: ['payInAmount', 'payOutAmount',
157
+ 'transactionCommission', 'beneDeductAmount', 'xMsCommissionShare', 'xmExchangeVariation',
158
+ 'xMsBeneDeductShare', 'revenuePerTransaction', 'totalSettleAmount'
159
+ ],
160
+ rateFields: ['usdRate', 'ezRemitSellMargin', 'ezRemitSellRate', 'bankSellRate', 'usdRateAppliedPayout',]
161
+ });
162
+
163
+ this.exportService.exportToExcelUniversal(title, metadata, searchCriteria, headers, rows, 'Revenue_Per_Transaction.xlsx');
164
+ }
165
+
166
+ exportToCSV(): void {
167
+ if (!this.data?.length) return;
168
+
169
+ const title = this.ReportName;
170
+ const metadata = this.exportService.generateReportMetadata([
171
+ ['Report Period ', this.fromDate + " - " + this.toDate],
172
+ ['Report User & Time', this.user?this.user+" @ "+this.reportDate:''+" @ "+this.reportDate],
173
+ ]);
174
+ // --- search criteria ---
175
+ const searchCriteria: [string, string][] = this.searchCriteria;
176
+
177
+ const { headers, rows } = this.exportService.prepareExportTable(this.data, this.columnDefs, {
178
+ currencyFields: ['payInAmount', 'payOutAmount',
179
+ 'transactionCommission', 'beneDeductAmount', 'xMsCommissionShare', 'xmExchangeVariation',
180
+ 'xMsBeneDeductShare', 'revenuePerTransaction', 'totalSettleAmount'
181
+ ],
182
+ rateFields: ['usdRate', 'ezRemitSellMargin', 'ezRemitSellRate', 'bankSellRate', 'usdRateAppliedPayout',]
183
+ });
184
+
185
+ this.exportService.exportToCsvUniversal(title, metadata, searchCriteria, headers, rows, 'Revenue_Per_Transaction.csv');
186
+ }
187
+
188
+ exportToPDF(): void {
189
+ if (!this.data?.length) return;
190
+
191
+ const title = this.ReportName;
192
+ const metadata = this.exportService.generateReportMetadata([
193
+ ['Report Period ', this.fromDate + " - " + this.toDate],
194
+ ['Report User & Time', this.user?this.user+" @ "+this.reportDate:''+" @ "+this.reportDate],
195
+ ]);
196
+ // --- search criteria ---
197
+ const searchCriteria: [string, string][] = this.searchCriteria;
198
+
199
+ const { headers, rows } = this.exportService.prepareExportTable(this.data, this.columnDefs, {
200
+ currencyFields: ['payInAmount', 'payOutAmount',
201
+ 'transactionCommission', 'beneDeductAmount', 'xMsCommissionShare', 'xmExchangeVariation',
202
+ 'xMsBeneDeductShare', 'revenuePerTransaction', 'totalSettleAmount'
203
+ ],
204
+ rateFields: ['usdRate', 'ezRemitSellMargin', 'ezRemitSellRate', 'bankSellRate', 'usdRateAppliedPayout',]
205
+ });
206
+
207
+ this.exportService.exportToPdfUniversal(title, metadata, searchCriteria, headers, rows, 'Revenue_Per_Transaction.pdf')
208
+ .then(() => {
209
+ console.log('PDF export completed.');
210
+ })
211
+ .catch(err => {
212
+ console.error('PDF export failed:', err);
213
+ });
214
+ }
215
+
216
+ handleSearch(criteria: any) {
217
+ this.searchCriteria = criteria.searchCriteria;
218
+ this.reportDate = new Date().toISOString();
219
+ this.reportDate = formatDate(this.reportDate, 'dd/MM/yyyy hh:mm a', 'en-US');
220
+ const modal = criteria.modal;
221
+ this.user = this.sysUserId;
222
+ this.fromDate = formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0,10);
223
+ this.toDate = formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0,10);
224
+ console.log(modal);
225
+ // Code For Meta Data
226
+ this.metaDataOne = {
227
+ 'Report Period': this.fromDate + " - " + this.toDate,
228
+ }
229
+
230
+ this.metaDataTwo = {
231
+ 'Report User & Time': this.user+" @ "+this.reportDate,
232
+ }
233
+
234
+ const searchData = {
235
+ "StartDate": modal.fromDate,
236
+ "EndDate": modal.toDate,
237
+ "SendCountryCode": modal.sendCountry,
238
+ "RecvCountryCode": modal.receiveCountry,
239
+ "sendBusinessPartnerId": modal.sendBusinessPartner,
240
+ "RecvBusinessPartenrId": modal.recvBusinessPartner,
241
+ "TransactionStatus": modal.transactionStatus.join(",")
242
+ }
243
+ this.loadingState = ComponentLoadingStates.Loading;
244
+ this.reportService.getRevenuePerTransactionReport(searchData)
245
+ .subscribe({
246
+ next: (data) => {
247
+ this.data = data;
248
+ this.filteredData = JSON.parse(JSON.stringify(this.data));
249
+ console.log(this.data);
250
+ this.noDataFound = data?.length === 0 ? true : false;
251
+ },
252
+ error: (err) => {
253
+ console.log(err);
254
+ this.loadingState = ComponentLoadingStates.Complete;
255
+ },
256
+ complete: () => {
257
+ this.showReport = true;
258
+ this.loadingState = ComponentLoadingStates.Complete;
259
+ }
260
+ })
261
+ }
262
+
263
+ handleFormValid(isValid: boolean): void {
264
+ this.isFormValid = isValid;
265
+ }
266
+
267
+ }
@@ -0,0 +1,95 @@
1
+ <lib-search-filter
2
+ [ReportName]="ReportName"
3
+ (searchClicked)="handleSearch($event)"
4
+ (formValid)="handleFormValid($event)"
5
+ >
6
+ </lib-search-filter>
7
+
8
+ <app-loader *ngIf="loadingState === ComponentLoadingState.Loading"></app-loader>
9
+ <span *ngIf="loadingState === ComponentLoadingState.Error">{{ errorMessage }}</span>
10
+ <div *ngIf="showTables && isFormValid">
11
+ <lib-metadata
12
+ [reportName]="ReportName"
13
+ [showmetaDataOne]="true"
14
+ [showmetaDataTwo]="true"
15
+ [metaDataOne]="metaDataOne"
16
+ [metaDataTwo]="metaDataTwo"
17
+ (exportEvent)="handleExport($event)"
18
+ (searchEvent)="filter($event)">
19
+ </lib-metadata>
20
+
21
+ <ag-grid-angular
22
+ class="ag-theme-alpine transaction-grid"
23
+ [rowData]="openingBalAndFunding"
24
+ [columnDefs]="columnDefs"
25
+ [pinnedBottomRowData]="[]"
26
+ [headerHeight]="32"
27
+ [defaultColDef]="defaultColDef"
28
+ [rowHeight]="28"
29
+ (gridReady)="onOpeningGridReady($event)"
30
+ style="width: 80%; height: 91px; margin: 0 auto; display: block;">
31
+ </ag-grid-angular>
32
+
33
+ <div *ngIf="(selectedClientType === 'PayIn' || selectedClientType === 'Both')">
34
+ <h3 class="details-table"><span style="margin-left: 3px;">Send Details</span></h3>
35
+ <ag-grid-angular
36
+ class="ag-theme-alpine transaction-grid"
37
+ [rowData]="sendDetails"
38
+ [columnDefs]="columnDefs"
39
+ [defaultColDef]="defaultColDef"
40
+ [rowHeight]="28"
41
+ [headerHeight]="32"
42
+ [pinnedBottomRowData]="sendPinnedBottomRow"
43
+ (gridReady)="onSendGridReady($event)"
44
+ style="width: 80%; height: 204px; margin: 0 auto; display: block;">
45
+ </ag-grid-angular>
46
+ </div>
47
+
48
+ <div *ngIf="(selectedClientType === 'PayOut' || selectedClientType === 'Both')">
49
+ <h3 class="details-table"><span style="margin-left: 3px;">Receive Details</span></h3>
50
+ <ag-grid-angular
51
+ class="ag-theme-alpine transaction-grid"
52
+ [rowData]="receiveDetails"
53
+ [columnDefs]="columnDefs"
54
+ [defaultColDef]="defaultColDef"
55
+ [rowHeight]="28"
56
+ [headerHeight]="32"
57
+ [pinnedBottomRowData]="receivePinnedBottomRow"
58
+ (gridReady)="onReceiveGridReady($event)"
59
+ style="width: 80%; height: 204px; margin: 0 auto; display: block;">
60
+ </ag-grid-angular>
61
+ </div>
62
+
63
+
64
+ <!-- Closing balance row -->
65
+ <div class="closing-balance-row">
66
+ <div class="label" title="Closing Balance">
67
+ Closing Balance
68
+ </div>
69
+
70
+ <div class="settlement"
71
+ [title]="closingBalanceSettlmentFormatted">
72
+ {{ closingBalanceSettlmentFormatted }}
73
+ </div>
74
+
75
+ <div class="value" [title]="closingBalanceInUsdFormatted">
76
+ {{ closingBalanceInUsdFormatted }}
77
+ </div>
78
+ </div>
79
+
80
+
81
+ <!-- settlement currency words row -->
82
+ <div class="closing-balance-row closing-balance-words"
83
+ *ngIf="closingBalanceSettlmentInWords">
84
+ <div class="label"
85
+ [title]="closingBalanceSettlmentCurrency + ' - ' + closingBalanceSettlmentInWords">
86
+ {{ closingBalanceSettlmentCurrency }} - {{ closingBalanceSettlmentInWords }}
87
+ </div>
88
+ </div>
89
+
90
+ <!-- existing USD words row (keep as-is) -->
91
+ <div class="closing-balance-row closing-balance-words">
92
+ <div class="label" [title]="closingBalanceCurrency + ' - ' + closingBalanceUSDInWords">
93
+ {{ closingBalanceCurrency }} - {{ closingBalanceUSDInWords }}
94
+ </div>
95
+ </div>
@@ -0,0 +1,54 @@
1
+ @import 'src/styles/ag-grid-report-style';
2
+ @import "src/styles/common-report-style.scss";
3
+
4
+ ::ng-deep .ag-theme-alpine .pinned-total-cell {
5
+ font-weight: 700 !important;
6
+ }
7
+
8
+ .details-table {
9
+ background-color: #d3d3d3;
10
+ margin: 0 auto; /* center horizontally + add small top space */
11
+ height: 32px;
12
+ align-content: center;
13
+ width: 80%;
14
+ text-align: left; /* center the heading text */
15
+ }
16
+
17
+ .transaction-grid {
18
+ display: block;
19
+ margin: 0 auto; /* center the AG Grid */
20
+ width: 80%;
21
+ }
22
+
23
+ .closing-balance-row {
24
+ display: flex;
25
+ border: 1px solid #ccc;
26
+ border-top: none;
27
+ font-size: 10px !important;
28
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
29
+ font-weight: 700;
30
+ height: 28px;
31
+ align-items: center; /* vertical centering */
32
+ width: 80%;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ .closing-balance-row .label {
37
+ flex: 4.9; /* spans width of first TWO columns (4+1) */
38
+ padding: 6px;
39
+ text-align: left;
40
+ border-right: 1px solid #ccc;
41
+ }
42
+
43
+ .closing-balance-row .settlement {
44
+ flex: 2; /* same as 3rd column (amount in settlement) */
45
+ padding: 6px;
46
+ text-align: right;
47
+ border-right: 1px solid #ccc;
48
+ }
49
+
50
+ .closing-balance-row .value {
51
+ flex: 2; /* same as 4th column (amount in USD) */
52
+ padding: 6px;
53
+ text-align: right;
54
+ }
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { StatementOfAccountsReportComponent } from './statement-of-accounts-report.component';
4
+
5
+ describe('StatementOfAccountsReportComponent', () => {
6
+ let component: StatementOfAccountsReportComponent;
7
+ let fixture: ComponentFixture<StatementOfAccountsReportComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ declarations: [ StatementOfAccountsReportComponent ]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(StatementOfAccountsReportComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });