@things-factory/operato-wms 6.2.101 → 6.2.102

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 (186) hide show
  1. package/package.json +4 -4
  2. package/dist-server/graphql/index.js +0 -11
  3. package/dist-server/graphql/index.js.map +0 -1
  4. package/dist-server/graphql/resolvers/board-setting/board-settings.js +0 -76
  5. package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +0 -1
  6. package/dist-server/graphql/resolvers/board-setting/index.js +0 -6
  7. package/dist-server/graphql/resolvers/board-setting/index.js.map +0 -1
  8. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js +0 -87
  9. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js.map +0 -1
  10. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js +0 -138
  11. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js.map +0 -1
  12. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js +0 -124
  13. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js.map +0 -1
  14. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +0 -158
  15. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +0 -1
  16. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +0 -90
  17. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js.map +0 -1
  18. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js +0 -36
  19. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js.map +0 -1
  20. package/dist-server/graphql/resolvers/custom/elccl/index.js +0 -11
  21. package/dist-server/graphql/resolvers/custom/elccl/index.js.map +0 -1
  22. package/dist-server/graphql/resolvers/custom/kimeda/index.js +0 -6
  23. package/dist-server/graphql/resolvers/custom/kimeda/index.js.map +0 -1
  24. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js +0 -42
  25. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js.map +0 -1
  26. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js +0 -35
  27. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js.map +0 -1
  28. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js +0 -23
  29. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js.map +0 -1
  30. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js +0 -23
  31. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js.map +0 -1
  32. package/dist-server/graphql/resolvers/dashboard/index.js +0 -12
  33. package/dist-server/graphql/resolvers/dashboard/index.js.map +0 -1
  34. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +0 -56
  35. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +0 -1
  36. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +0 -124
  37. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +0 -1
  38. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js +0 -35
  39. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js.map +0 -1
  40. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js +0 -56
  41. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js.map +0 -1
  42. package/dist-server/graphql/resolvers/index.js +0 -27
  43. package/dist-server/graphql/resolvers/index.js.map +0 -1
  44. package/dist-server/graphql/resolvers/inventory-comparison/index.js +0 -6
  45. package/dist-server/graphql/resolvers/inventory-comparison/index.js.map +0 -1
  46. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js +0 -78
  47. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js.map +0 -1
  48. package/dist-server/graphql/resolvers/opa-menu/index.js +0 -6
  49. package/dist-server/graphql/resolvers/opa-menu/index.js.map +0 -1
  50. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js +0 -71
  51. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js.map +0 -1
  52. package/dist-server/graphql/resolvers/other/add-release-good-products.js +0 -291
  53. package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +0 -1
  54. package/dist-server/graphql/resolvers/other/index.js +0 -8
  55. package/dist-server/graphql/resolvers/other/index.js.map +0 -1
  56. package/dist-server/graphql/resolvers/other/page-settings.js +0 -87
  57. package/dist-server/graphql/resolvers/other/page-settings.js.map +0 -1
  58. package/dist-server/graphql/resolvers/reports/costing-report.js +0 -172
  59. package/dist-server/graphql/resolvers/reports/costing-report.js.map +0 -1
  60. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +0 -200
  61. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +0 -1
  62. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js +0 -140
  63. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js.map +0 -1
  64. package/dist-server/graphql/resolvers/reports/index.js +0 -12
  65. package/dist-server/graphql/resolvers/reports/index.js.map +0 -1
  66. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +0 -232
  67. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +0 -1
  68. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js +0 -143
  69. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js.map +0 -1
  70. package/dist-server/graphql/resolvers/reports/product-label-report.js +0 -57
  71. package/dist-server/graphql/resolvers/reports/product-label-report.js.map +0 -1
  72. package/dist-server/graphql/resolvers/reports/release-inventory-report.js +0 -180
  73. package/dist-server/graphql/resolvers/reports/release-inventory-report.js.map +0 -1
  74. package/dist-server/graphql/resolvers/shipping-provider/index.js +0 -6
  75. package/dist-server/graphql/resolvers/shipping-provider/index.js.map +0 -1
  76. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +0 -20
  77. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +0 -1
  78. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js +0 -6
  79. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js.map +0 -1
  80. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +0 -65
  81. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +0 -1
  82. package/dist-server/graphql/types/board-setting/board-setting.js +0 -14
  83. package/dist-server/graphql/types/board-setting/board-setting.js.map +0 -1
  84. package/dist-server/graphql/types/board-setting/index.js +0 -9
  85. package/dist-server/graphql/types/board-setting/index.js.map +0 -1
  86. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js +0 -12
  87. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js.map +0 -1
  88. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js +0 -28
  89. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js.map +0 -1
  90. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js +0 -12
  91. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js.map +0 -1
  92. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js +0 -23
  93. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js.map +0 -1
  94. package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js +0 -20
  95. package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js.map +0 -1
  96. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js +0 -12
  97. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js.map +0 -1
  98. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js +0 -21
  99. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js.map +0 -1
  100. package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js +0 -20
  101. package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js.map +0 -1
  102. package/dist-server/graphql/types/custom/elccl/index.js +0 -30
  103. package/dist-server/graphql/types/custom/elccl/index.js.map +0 -1
  104. package/dist-server/graphql/types/custom/kimeda/index.js +0 -7
  105. package/dist-server/graphql/types/custom/kimeda/index.js.map +0 -1
  106. package/dist-server/graphql/types/dashboard/index.js +0 -17
  107. package/dist-server/graphql/types/dashboard/index.js.map +0 -1
  108. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js +0 -13
  109. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js.map +0 -1
  110. package/dist-server/graphql/types/dashboard/inventory-expiry-status.js +0 -12
  111. package/dist-server/graphql/types/dashboard/inventory-expiry-status.js.map +0 -1
  112. package/dist-server/graphql/types/dashboard/order-status-counter.js +0 -12
  113. package/dist-server/graphql/types/dashboard/order-status-counter.js.map +0 -1
  114. package/dist-server/graphql/types/index.js +0 -40
  115. package/dist-server/graphql/types/index.js.map +0 -1
  116. package/dist-server/graphql/types/inventory-comparison/index.js +0 -13
  117. package/dist-server/graphql/types/inventory-comparison/index.js.map +0 -1
  118. package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js +0 -12
  119. package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js.map +0 -1
  120. package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js +0 -16
  121. package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js.map +0 -1
  122. package/dist-server/graphql/types/opa-menu/index.js +0 -9
  123. package/dist-server/graphql/types/opa-menu/index.js.map +0 -1
  124. package/dist-server/graphql/types/opa-menu/opa-menu.js +0 -43
  125. package/dist-server/graphql/types/opa-menu/opa-menu.js.map +0 -1
  126. package/dist-server/graphql/types/other/index.js +0 -19
  127. package/dist-server/graphql/types/other/index.js.map +0 -1
  128. package/dist-server/graphql/types/other/page-setting.js +0 -34
  129. package/dist-server/graphql/types/other/page-setting.js.map +0 -1
  130. package/dist-server/graphql/types/reports/costing-report-list.js +0 -12
  131. package/dist-server/graphql/types/reports/costing-report-list.js.map +0 -1
  132. package/dist-server/graphql/types/reports/costing-report.js +0 -17
  133. package/dist-server/graphql/types/reports/costing-report.js.map +0 -1
  134. package/dist-server/graphql/types/reports/inbound-order-details-report-list.js +0 -12
  135. package/dist-server/graphql/types/reports/inbound-order-details-report-list.js.map +0 -1
  136. package/dist-server/graphql/types/reports/inbound-order-details-report.js +0 -57
  137. package/dist-server/graphql/types/reports/inbound-order-details-report.js.map +0 -1
  138. package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js +0 -12
  139. package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js.map +0 -1
  140. package/dist-server/graphql/types/reports/inbound-serial-number-report.js +0 -21
  141. package/dist-server/graphql/types/reports/inbound-serial-number-report.js.map +0 -1
  142. package/dist-server/graphql/types/reports/index.js +0 -43
  143. package/dist-server/graphql/types/reports/index.js.map +0 -1
  144. package/dist-server/graphql/types/reports/outbound-order-details-report-list.js +0 -12
  145. package/dist-server/graphql/types/reports/outbound-order-details-report-list.js.map +0 -1
  146. package/dist-server/graphql/types/reports/outbound-order-details-report.js +0 -74
  147. package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +0 -1
  148. package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js +0 -12
  149. package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js.map +0 -1
  150. package/dist-server/graphql/types/reports/outbound-serial-number-report.js +0 -23
  151. package/dist-server/graphql/types/reports/outbound-serial-number-report.js.map +0 -1
  152. package/dist-server/graphql/types/reports/product-label-report-list.js +0 -12
  153. package/dist-server/graphql/types/reports/product-label-report-list.js.map +0 -1
  154. package/dist-server/graphql/types/reports/product-label-report.js +0 -14
  155. package/dist-server/graphql/types/reports/product-label-report.js.map +0 -1
  156. package/dist-server/graphql/types/reports/release-inventory-report-list.js +0 -12
  157. package/dist-server/graphql/types/reports/release-inventory-report-list.js.map +0 -1
  158. package/dist-server/graphql/types/reports/release-inventory-report.js +0 -27
  159. package/dist-server/graphql/types/reports/release-inventory-report.js.map +0 -1
  160. package/dist-server/graphql/types/shipping-provider/index.js +0 -10
  161. package/dist-server/graphql/types/shipping-provider/index.js.map +0 -1
  162. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +0 -11
  163. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +0 -1
  164. package/dist-server/graphql/types/shipping-provider/shipping-provider.js +0 -11
  165. package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +0 -1
  166. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js +0 -9
  167. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js.map +0 -1
  168. package/dist-server/index.js +0 -7
  169. package/dist-server/index.js.map +0 -1
  170. package/dist-server/migrations/1568858861188-SeedSetting.js +0 -51
  171. package/dist-server/migrations/1568858861188-SeedSetting.js.map +0 -1
  172. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js +0 -35
  173. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js.map +0 -1
  174. package/dist-server/migrations/1623381200659-SeedStoringRule.js +0 -33
  175. package/dist-server/migrations/1623381200659-SeedStoringRule.js.map +0 -1
  176. package/dist-server/migrations/index.js +0 -12
  177. package/dist-server/migrations/index.js.map +0 -1
  178. package/dist-server/opa-app-setting-constants.js +0 -13
  179. package/dist-server/opa-app-setting-constants.js.map +0 -1
  180. package/dist-server/routes.js +0 -2
  181. package/dist-server/routes.js.map +0 -1
  182. package/dist-server/tsconfig.tsbuildinfo +0 -1
  183. package/dist-server/utils/index.js +0 -5
  184. package/dist-server/utils/index.js.map +0 -1
  185. package/dist-server/utils/report-query-util.js +0 -42
  186. package/dist-server/utils/report-query-util.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-wms",
3
- "version": "6.2.101",
3
+ "version": "6.2.102",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -78,7 +78,7 @@
78
78
  "@things-factory/barcode-ui": "^6.2.101",
79
79
  "@things-factory/biz-ui": "^6.2.101",
80
80
  "@things-factory/board-service": "^6.2.101",
81
- "@things-factory/board-ui": "^6.2.101",
81
+ "@things-factory/board-ui": "^6.2.102",
82
82
  "@things-factory/code-ui": "^6.2.101",
83
83
  "@things-factory/context-ui": "^6.2.101",
84
84
  "@things-factory/env": "^6.2.96",
@@ -95,7 +95,7 @@
95
95
  "@things-factory/import-ui-excel": "^6.2.101",
96
96
  "@things-factory/more-ui": "^6.2.101",
97
97
  "@things-factory/notification": "^6.2.101",
98
- "@things-factory/operato-tools": "^6.2.101",
98
+ "@things-factory/operato-tools": "^6.2.102",
99
99
  "@things-factory/pdf": "^6.2.96",
100
100
  "@things-factory/print-proxy-service": "^6.2.101",
101
101
  "@things-factory/print-service": "^6.2.101",
@@ -117,5 +117,5 @@
117
117
  "cypress-localstorage-commands": "^1.6.1",
118
118
  "eslint-plugin-cypress": "^2.12.1"
119
119
  },
120
- "gitHead": "fe8410605f23afd19a0770785850ada2eb261d82"
120
+ "gitHead": "de7dc909722996bd44373ef2a8ad2e6f5a0b88d6"
121
121
  }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.schema = void 0;
4
- const tslib_1 = require("tslib");
5
- const typeDefs = tslib_1.__importStar(require("./types"));
6
- const resolvers = tslib_1.__importStar(require("./resolvers"));
7
- exports.schema = {
8
- typeDefs,
9
- resolvers
10
- };
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/graphql/index.ts"],"names":[],"mappings":";;;;AAAA,0DAAmC;AACnC,+DAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,QAAQ;IACR,SAAS;CACV,CAAA","sourcesContent":["import * as typeDefs from './types'\nimport * as resolvers from './resolvers'\n\nexport const schema = {\n typeDefs,\n resolvers\n}\n"]}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.boardSettingsResolver = void 0;
4
- const auth_base_1 = require("@things-factory/auth-base");
5
- const board_service_1 = require("@things-factory/board-service");
6
- const setting_base_1 = require("@things-factory/setting-base");
7
- const shell_1 = require("@things-factory/shell");
8
- const opa_app_setting_constants_1 = require("../../../opa-app-setting-constants");
9
- exports.boardSettingsResolver = {
10
- async boardSettings(_, params, context) {
11
- const { domain } = context.state;
12
- /***********************************************************************************
13
- * Temporary solution for dashboard user type
14
- ***********************************************************************************/
15
- const user = await (0, shell_1.getRepository)(auth_base_1.User)
16
- .createQueryBuilder('USER')
17
- .leftJoinAndSelect('USER.roles', 'ROLES')
18
- .leftJoinAndSelect('ROLES.domain', 'ROLES_DOMAIN')
19
- .where('USER.id = :userId', { userId: context.state.user.id })
20
- .andWhere('ROLES_DOMAIN.id = :domainId', { domainId: domain.id })
21
- .getOne();
22
- const userType = user.roles.filter(role => role.description)[0].description;
23
- /**********************************************************************************/
24
- const HOME_BOARD = `${opa_app_setting_constants_1.HOME_DASHBOARD_PREFIX}:${userType}`;
25
- // const HOME_BOARD = `${HOME_DASHBOARD_PREFIX}:${context.state.user.userType}`
26
- const queryBuilder = (0, shell_1.getRepository)(setting_base_1.Setting).createQueryBuilder();
27
- const names = [
28
- opa_app_setting_constants_1.LOCATION_LABEL_SETTING_KEY,
29
- opa_app_setting_constants_1.PRODUCT_LABEL_SETTING_KEY,
30
- opa_app_setting_constants_1.PALLET_LABEL_SETTING_KEY,
31
- opa_app_setting_constants_1.REUSABLE_PALLET_LABEL_SETTING_KEY,
32
- HOME_BOARD,
33
- opa_app_setting_constants_1.CARTON_LABEL_SETTING_KEY,
34
- opa_app_setting_constants_1.INTENALIZED_AWB_SETTING_KEY,
35
- opa_app_setting_constants_1.ROUTE_LABEL_SETTING_KEY,
36
- opa_app_setting_constants_1.TOTE_LABEL_SETTING_KEY
37
- ];
38
- var qb = queryBuilder
39
- // .innerJoin(Board, 'Board', 'Board.id = CAST(Setting.value AS uuid)')
40
- .innerJoin(board_service_1.Board, 'Board', 'Setting.value = CAST(Board.id AS char(36))')
41
- // .innerJoin(Board, 'Board', 'Board.id = Setting.value')
42
- .select([
43
- 'Setting.id as id',
44
- 'Setting.name as name',
45
- 'Setting.value as value',
46
- 'Board.id as boardId',
47
- 'Board.name as boardName',
48
- 'Board.description as boardDescription',
49
- 'Board.thumbnail as boardThumbnail'
50
- ])
51
- .where('Setting.domain_id = :domain', { domain: context.state.domain.id });
52
- if (names && names.length)
53
- qb.andWhere('Setting.name IN (:...names)', { names });
54
- var boardSettingList = await qb.getRawMany();
55
- return boardSettingList.map(boardSetting => {
56
- var setting = {
57
- board: {}
58
- };
59
- for (let key in boardSetting) {
60
- if (key.includes('board')) {
61
- let originKey = key;
62
- key = key.replace('board', '').toLowerCase();
63
- setting.board[key] = boardSetting[originKey];
64
- }
65
- else {
66
- setting[key] = boardSetting[key];
67
- }
68
- }
69
- if (setting.name.indexOf(opa_app_setting_constants_1.HOME_DASHBOARD_PREFIX) == 0) {
70
- setting.name = opa_app_setting_constants_1.HOME_DASHBOARD_PREFIX;
71
- }
72
- return setting;
73
- });
74
- }
75
- };
76
- //# sourceMappingURL=board-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"board-settings.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/board-setting/board-settings.ts"],"names":[],"mappings":";;;AAAA,yDAAgD;AAChD,iEAAqD;AACrD,+DAAsD;AACtD,iDAAqD;AAErD,kFAU2C;AAE9B,QAAA,qBAAqB,GAAG;IACnC,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAW,EAAE,OAAwB;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC;;6FAEqF;QACrF,MAAM,IAAI,GAAS,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC;aACzC,kBAAkB,CAAC,MAAM,CAAC;aAC1B,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC;aACxC,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC;aACjD,KAAK,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;aAC7D,QAAQ,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;aAChE,MAAM,EAAE,CAAA;QAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;QAC3E,oFAAoF;QAEpF,MAAM,UAAU,GAAG,GAAG,iDAAqB,IAAI,QAAQ,EAAE,CAAA;QACzD,+EAA+E;QAE/E,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAC,sBAAO,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAChE,MAAM,KAAK,GAAG;YACZ,sDAA0B;YAC1B,qDAAyB;YACzB,oDAAwB;YACxB,6DAAiC;YACjC,UAAU;YACV,oDAAwB;YACxB,uDAA2B;YAC3B,mDAAuB;YACvB,kDAAsB;SACvB,CAAA;QAED,IAAI,EAAE,GAAG,YAAY;YACnB,uEAAuE;aACtE,SAAS,CAAC,qBAAK,EAAE,OAAO,EAAE,4CAA4C,CAAC;YACxE,yDAAyD;aACxD,MAAM,CAAC;YACN,kBAAkB;YAClB,sBAAsB;YACtB,wBAAwB;YACxB,qBAAqB;YACrB,yBAAyB;YACzB,uCAAuC;YACvC,mCAAmC;SACpC,CAAC;aACD,KAAK,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QAE5E,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;YAAE,EAAE,CAAC,QAAQ,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAEhF,IAAI,gBAAgB,GAAG,MAAM,EAAE,CAAC,UAAU,EAAE,CAAA;QAE5C,OAAO,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACzC,IAAI,OAAO,GAAQ;gBACjB,KAAK,EAAE,EAAE;aACV,CAAA;YAED,KAAK,IAAI,GAAG,IAAI,YAAY,EAAE;gBAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,SAAS,GAAG,GAAG,CAAA;oBACnB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;oBAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;iBAC7C;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;iBACjC;aACF;YAED,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iDAAqB,CAAC,IAAI,CAAC,EAAE;gBACpD,OAAO,CAAC,IAAI,GAAG,iDAAqB,CAAA;aACrC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { Setting } from '@things-factory/setting-base'\nimport { getRepository } from '@things-factory/shell'\n\nimport {\n CARTON_LABEL_SETTING_KEY,\n HOME_DASHBOARD_PREFIX,\n INTENALIZED_AWB_SETTING_KEY,\n LOCATION_LABEL_SETTING_KEY,\n PALLET_LABEL_SETTING_KEY,\n PRODUCT_LABEL_SETTING_KEY,\n REUSABLE_PALLET_LABEL_SETTING_KEY,\n ROUTE_LABEL_SETTING_KEY,\n TOTE_LABEL_SETTING_KEY\n} from '../../../opa-app-setting-constants'\n\nexport const boardSettingsResolver = {\n async boardSettings(_: any, params: any, context: ResolverContext) {\n const { domain } = context.state\n\n /***********************************************************************************\n * Temporary solution for dashboard user type\n ***********************************************************************************/\n const user: User = await getRepository(User)\n .createQueryBuilder('USER')\n .leftJoinAndSelect('USER.roles', 'ROLES')\n .leftJoinAndSelect('ROLES.domain', 'ROLES_DOMAIN')\n .where('USER.id = :userId', { userId: context.state.user.id })\n .andWhere('ROLES_DOMAIN.id = :domainId', { domainId: domain.id })\n .getOne()\n\n const userType = user.roles.filter(role => role.description)[0].description\n /**********************************************************************************/\n\n const HOME_BOARD = `${HOME_DASHBOARD_PREFIX}:${userType}`\n // const HOME_BOARD = `${HOME_DASHBOARD_PREFIX}:${context.state.user.userType}`\n\n const queryBuilder = getRepository(Setting).createQueryBuilder()\n const names = [\n LOCATION_LABEL_SETTING_KEY,\n PRODUCT_LABEL_SETTING_KEY,\n PALLET_LABEL_SETTING_KEY,\n REUSABLE_PALLET_LABEL_SETTING_KEY,\n HOME_BOARD,\n CARTON_LABEL_SETTING_KEY,\n INTENALIZED_AWB_SETTING_KEY,\n ROUTE_LABEL_SETTING_KEY,\n TOTE_LABEL_SETTING_KEY\n ]\n\n var qb = queryBuilder\n // .innerJoin(Board, 'Board', 'Board.id = CAST(Setting.value AS uuid)')\n .innerJoin(Board, 'Board', 'Setting.value = CAST(Board.id AS char(36))')\n // .innerJoin(Board, 'Board', 'Board.id = Setting.value')\n .select([\n 'Setting.id as id',\n 'Setting.name as name',\n 'Setting.value as value',\n 'Board.id as boardId',\n 'Board.name as boardName',\n 'Board.description as boardDescription',\n 'Board.thumbnail as boardThumbnail'\n ])\n .where('Setting.domain_id = :domain', { domain: context.state.domain.id })\n\n if (names && names.length) qb.andWhere('Setting.name IN (:...names)', { names })\n\n var boardSettingList = await qb.getRawMany()\n\n return boardSettingList.map(boardSetting => {\n var setting: any = {\n board: {}\n }\n\n for (let key in boardSetting) {\n if (key.includes('board')) {\n let originKey = key\n key = key.replace('board', '').toLowerCase()\n setting.board[key] = boardSetting[originKey]\n } else {\n setting[key] = boardSetting[key]\n }\n }\n\n if (setting.name.indexOf(HOME_DASHBOARD_PREFIX) == 0) {\n setting.name = HOME_DASHBOARD_PREFIX\n }\n\n return setting\n })\n }\n}\n"]}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Query = void 0;
4
- const board_settings_1 = require("./board-settings");
5
- exports.Query = Object.assign({}, board_settings_1.boardSettingsResolver);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/board-setting/index.ts"],"names":[],"mappings":";;;AAAA,qDAAwD;AAE3C,QAAA,KAAK,qBACb,sCAAqB,EACzB","sourcesContent":["import { boardSettingsResolver } from './board-settings'\n\nexport const Query = {\n ...boardSettingsResolver\n}\n"]}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.elcclDailyCollectionReport = void 0;
4
- const biz_base_1 = require("@things-factory/biz-base");
5
- const shell_1 = require("@things-factory/shell");
6
- exports.elcclDailyCollectionReport = {
7
- async elcclDailyCollectionReport(_, params, context) {
8
- try {
9
- const { tx } = context.state;
10
- let bizplaceQuery = '';
11
- if (params.filters.find((filter) => filter.name === 'bizplace')) {
12
- const bizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOneBy({
13
- id: params.filters.find(data => data.name === 'bizplace').value
14
- });
15
- bizplaceQuery = "AND rg.bizplace_id = '" + bizplace.id + "'";
16
- }
17
- let fromDate = params.filters.find(data => data.name === 'fromDate');
18
- let toDate = params.filters.find(data => data.name === 'toDate');
19
- let arrivalNotice = params.filters.find(data => data.name === 'arrivalNotice');
20
- let tzoffset = params.filters.find(data => data.name === 'tzoffset').value + ' seconds';
21
- if (!fromDate || !toDate)
22
- throw 'Invalid input';
23
- let arrivalNoticeQuery = '';
24
- if (arrivalNotice) {
25
- arrivalNoticeQuery =
26
- 'AND arrival_notice_name ILIKE ANY(ARRAY[' +
27
- arrivalNotice.value
28
- .split(',')
29
- .map(an => {
30
- return "'%" + an.trim().replace(/'/g, "''") + "%'";
31
- })
32
- .join(',') +
33
- '])';
34
- }
35
- const result = await tx.query(`
36
- with src as (
37
- select ar.name as release_good_name, COALESCE(ar.name, 'MIGRATE') as arrival_notice_name, bz.name as bizplace_name,
38
- ws.ended_at::date, delord.own_collection, delord.name as delivery_order_name, inv.pallet_id, inv.batch_id
39
- from release_goods rg
40
- inner join bizplaces bz on bz.id = rg.bizplace_id
41
- inner join worksheets ws on ws.release_good_id = rg.id and ws.type = 'LOADING'
42
- inner join order_inventories oi on oi.release_good_id = rg.id
43
- inner join inventories inv on inv.id = oi.inventory_id
44
- inner join delivery_orders delord on delord.id = oi.delivery_order_id
45
- left join order_inventories inbound_oi on inbound_oi.inventory_id = inv.id and inbound_oi.type = 'ARRIVAL_NOTICE'
46
- left join arrival_notices ar on ar.id = inbound_oi.arrival_notice_id
47
- where rg.domain_id = $1
48
- and ws.ended_at >= $2::timestamp + $4::interval
49
- and ws.ended_at <= $3::timestamp + $4::interval
50
- ${bizplaceQuery}
51
- )
52
- select bizplace_name, arrival_notice_name, ended_at, batch_id,
53
- trim(trailing ', ' from self_collect) as self_collect, trim(trailing ', ' from delivery) as delivery,
54
- trim(trailing ', ' from self_collect_summary) as self_collect_summary, trim(trailing ', ' from delivery_summary) as delivery_summary,
55
- total_self_collect, total_delivery
56
- from(
57
- select bizplace_name, arrival_notice_name, ended_at, batch_id,
58
- string_agg(self_collect, '') as self_collect,
59
- string_agg(delivery, '') delivery,
60
- string_agg(self_collect_summary, '') as self_collect_summary,
61
- string_agg(delivery_summary, '') delivery_summary,
62
- COUNT(case when own_collection = true then 1 end) as total_self_collect,
63
- COUNT(case when own_collection = false then 1 end) as total_delivery
64
- from (
65
- select arrival_notice_name, delivery_order_name, bizplace_name, ended_at::varchar, own_collection, batch_id,
66
- case when own_collection = 'true' then concat(delivery_order_name, ' (', string_agg(pallet_id, ', ' ORDER BY pallet_id), '), ') else '' end as self_collect,
67
- case when own_collection = 'false' then concat(delivery_order_name, ' (', string_agg(pallet_id, ', ' ORDER BY pallet_id), '), ') else '' end as delivery,
68
- case when own_collection = 'true' then concat(delivery_order_name, ' (', count(*), '), ') else '' end as self_collect_summary,
69
- case when own_collection = 'false' then concat(delivery_order_name, ' (', count(*), '), ') else '' end as delivery_summary
70
- from src
71
- where 1 = 1
72
- ${arrivalNoticeQuery}
73
- group by bizplace_name, arrival_notice_name, ended_at, delivery_order_name, own_collection, batch_id
74
- ) src
75
- group by bizplace_name, arrival_notice_name, ended_at, batch_id
76
- order by bizplace_name, ended_at, arrival_notice_name
77
- ) src
78
- `, [context.state.domain.id, fromDate.value, toDate.value, tzoffset]);
79
- let items = result;
80
- return items;
81
- }
82
- catch (error) {
83
- throw error;
84
- }
85
- }
86
- };
87
- //# sourceMappingURL=elccl-daily-collection-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elccl-daily-collection-report.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,iDAAgE;AAEnD,QAAA,0BAA0B,GAAG;IACxC,KAAK,CAAC,0BAA0B,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAClF,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE5B,IAAI,aAAa,GAAG,EAAE,CAAA;YACtB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE;gBACpE,MAAM,QAAQ,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC;oBACjE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK;iBAChE,CAAC,CAAA;gBACF,aAAa,GAAG,wBAAwB,GAAG,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAA;aAC7D;YAED,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YACpE,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YAChE,IAAI,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;YAC9E,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK,GAAG,UAAU,CAAA;YAEvF,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;gBAAE,MAAM,eAAe,CAAA;YAE/C,IAAI,kBAAkB,GAAG,EAAE,CAAA;YAC3B,IAAI,aAAa,EAAE;gBACjB,kBAAkB;oBAChB,0CAA0C;wBAC1C,aAAa,CAAC,KAAK;6BAChB,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,EAAE,CAAC,EAAE;4BACR,OAAO,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA;wBACpD,CAAC,CAAC;6BACD,IAAI,CAAC,GAAG,CAAC;wBACZ,IAAI,CAAA;aACP;YAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAC3B;;;;;;;;;;;;;;;YAeI,aAAa;;;;;;;;;;;;;;;;;;;;;;cAsBX,kBAAkB;;;;;;SAMvB,EACD,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAClE,CAAA;YAED,IAAI,KAAK,GAAG,MAAa,CAAA;YAEzB,OAAO,KAAK,CAAA;SACb;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { getRepository, ListParam } from '@things-factory/shell'\n\nexport const elcclDailyCollectionReport = {\n async elcclDailyCollectionReport(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n let bizplaceQuery = ''\n if (params.filters.find((filter: any) => filter.name === 'bizplace')) {\n const bizplace: Bizplace = await getRepository(Bizplace).findOneBy({\n id: params.filters.find(data => data.name === 'bizplace').value\n })\n bizplaceQuery = \"AND rg.bizplace_id = '\" + bizplace.id + \"'\"\n }\n\n let fromDate = params.filters.find(data => data.name === 'fromDate')\n let toDate = params.filters.find(data => data.name === 'toDate')\n let arrivalNotice = params.filters.find(data => data.name === 'arrivalNotice')\n let tzoffset = params.filters.find(data => data.name === 'tzoffset').value + ' seconds'\n\n if (!fromDate || !toDate) throw 'Invalid input'\n\n let arrivalNoticeQuery = ''\n if (arrivalNotice) {\n arrivalNoticeQuery =\n 'AND arrival_notice_name ILIKE ANY(ARRAY[' +\n arrivalNotice.value\n .split(',')\n .map(an => {\n return \"'%\" + an.trim().replace(/'/g, \"''\") + \"%'\"\n })\n .join(',') +\n '])'\n }\n\n const result = await tx.query(\n `\n with src as (\n select ar.name as release_good_name, COALESCE(ar.name, 'MIGRATE') as arrival_notice_name, bz.name as bizplace_name, \n ws.ended_at::date, delord.own_collection, delord.name as delivery_order_name, inv.pallet_id, inv.batch_id\n from release_goods rg\n inner join bizplaces bz on bz.id = rg.bizplace_id\n inner join worksheets ws on ws.release_good_id = rg.id and ws.type = 'LOADING'\n inner join order_inventories oi on oi.release_good_id = rg.id\n inner join inventories inv on inv.id = oi.inventory_id\n inner join delivery_orders delord on delord.id = oi.delivery_order_id \n left join order_inventories inbound_oi on inbound_oi.inventory_id = inv.id and inbound_oi.type = 'ARRIVAL_NOTICE'\n left join arrival_notices ar on ar.id = inbound_oi.arrival_notice_id\n where rg.domain_id = $1\n and ws.ended_at >= $2::timestamp + $4::interval\n and ws.ended_at <= $3::timestamp + $4::interval\n ${bizplaceQuery}\n )\n select bizplace_name, arrival_notice_name, ended_at, batch_id, \n trim(trailing ', ' from self_collect) as self_collect, trim(trailing ', ' from delivery) as delivery,\n trim(trailing ', ' from self_collect_summary) as self_collect_summary, trim(trailing ', ' from delivery_summary) as delivery_summary,\n total_self_collect, total_delivery\n from(\n select bizplace_name, arrival_notice_name, ended_at, batch_id,\n string_agg(self_collect, '') as self_collect,\n string_agg(delivery, '') delivery,\n string_agg(self_collect_summary, '') as self_collect_summary,\n string_agg(delivery_summary, '') delivery_summary,\n COUNT(case when own_collection = true then 1 end) as total_self_collect,\n COUNT(case when own_collection = false then 1 end) as total_delivery\n from (\n select arrival_notice_name, delivery_order_name, bizplace_name, ended_at::varchar, own_collection, batch_id,\n case when own_collection = 'true' then concat(delivery_order_name, ' (', string_agg(pallet_id, ', ' ORDER BY pallet_id), '), ') else '' end as self_collect,\n case when own_collection = 'false' then concat(delivery_order_name, ' (', string_agg(pallet_id, ', ' ORDER BY pallet_id), '), ') else '' end as delivery,\n case when own_collection = 'true' then concat(delivery_order_name, ' (', count(*), '), ') else '' end as self_collect_summary,\n case when own_collection = 'false' then concat(delivery_order_name, ' (', count(*), '), ') else '' end as delivery_summary\n from src\n where 1 = 1\n ${arrivalNoticeQuery}\n group by bizplace_name, arrival_notice_name, ended_at, delivery_order_name, own_collection, batch_id\n ) src\n group by bizplace_name, arrival_notice_name, ended_at, batch_id\n order by bizplace_name, ended_at, arrival_notice_name\n ) src\n `,\n [context.state.domain.id, fromDate.value, toDate.value, tzoffset]\n )\n\n let items = result as any\n\n return items\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -1,138 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.elcclDailyOrderInventoryReport = void 0;
4
- const biz_base_1 = require("@things-factory/biz-base");
5
- exports.elcclDailyOrderInventoryReport = {
6
- async elcclDailyOrderInventoryReport(_, params, context) {
7
- try {
8
- const { tx } = context.state;
9
- let bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
10
- let month = params.filters.find(data => data.name === 'month').value + '-01';
11
- let tzoffset = params.filters.find(data => data.name === 'tzoffset').value + ' seconds';
12
- if (!bizplaceFilter || !month)
13
- throw 'Invalid input';
14
- const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOneBy({
15
- id: bizplaceFilter.value
16
- });
17
- await tx.query(`
18
- create temp table temp_invHistory as (
19
- select rih.pallet_id, rih.seq,
20
- coalesce(grn.name, do2.name, rih.order_no) as order_no , rih.order_ref_no , an.delivery_order_no as do_ref_no,
21
- rih.bizplace_id, rih.ref_order_id,
22
- coalesce(grn.created_at, rg.created_at, rih.created_at) as created_at,
23
- CASE WHEN rih.transaction_type = 'PICKING' THEN COALESCE(-oi.release_qty,rih.qty) ELSE rih.qty END AS qty,
24
- inv.packing_type, inv.reusable_pallet_id, rih.transaction_type,
25
- case when rih.status = 'TERMINATED' then rih.status else 'STORED' end as status,
26
- (case when lag(case when rih.status = 'TERMINATED' then 0 else 1 end) over (partition by rih.pallet_id order by rih.seq) = (case when rih.status = 'TERMINATED' then 0 else 1 end)
27
- then 0 else 1 end) as startflag
28
- from reduced_inventory_histories rih
29
- inner join inventories inv on inv.domain_id =rih.domain_id and inv.pallet_id =rih.pallet_id
30
- left join arrival_notices an on an.id = rih.ref_order_id::uuid and an.domain_id =rih.domain_id
31
- left join goods_receival_notes grn on grn.arrival_notice_id = an.id
32
- left join release_goods rg on rg.id = rih.ref_order_id::uuid and rg.domain_id =rih.domain_id
33
- left join order_inventories oi on oi.release_good_id = rih.ref_order_id::uuid and oi.inventory_id = inv.id
34
- left join delivery_orders do2 on do2.id = oi.delivery_order_id
35
- where ((rih.transaction_type <> 'PUTAWAY' and rih.transaction_type <> 'ADJUSTMENT' and rih.transaction_type <> 'RELOCATE') or rih.qty <> 0)
36
- and rih.domain_id =$1 and rih.bizplace_id = $2
37
- and coalesce(grn.created_at, rg.created_at, rih.created_at) < $3::timestamp + '1 month' + $4::interval
38
- )
39
- `, [context.state.domain.id, bizplace.id, month, tzoffset]);
40
- await tx.query(`
41
- create temp table temp_invByPallet as (
42
- select grp.*, ivh.order_no, ivh.order_ref_no, ivh.do_ref_no from (
43
- select pallet_id, packing_type, min(created_at) as started_at, max(created_at) as ended_at, min(seq) as min_seq, max(seq) as max_seq, status from (
44
- select startData.*, sum(startflag) over (partition by pallet_id order by seq) as grp from (
45
- select * from temp_invHistory s
46
- ) startData
47
- ) endData
48
- group by pallet_id, grp, status, packing_type
49
- order by pallet_id, min_seq
50
- ) grp
51
- inner join temp_invHistory ivh on ivh.pallet_id = grp.pallet_id and ivh.seq = grp.min_seq
52
- )
53
- `);
54
- const result = await tx.query(`
55
- select monthDays.created_at, order_no, order_ref_no, do_ref_no,
56
- coalesce(carton,0) as carton,
57
- coalesce(bag,0) as bag,
58
- coalesce(basket,0) as basket,
59
- coalesce(pallet,0) as pallet,
60
- sum(carton_running_total + carton) over (order by monthDays.created_at, src.rn) as carton_running_total,
61
- sum(bag_running_total + bag) over (order by monthDays.created_at, src.rn) as bag_running_total,
62
- sum(basket_running_total + basket) over (order by monthDays.created_at, src.rn) as basket_running_total,
63
- sum(pallet_running_total + pallet) over (order by monthDays.created_at, src.rn) as pallet_running_total
64
- from (select generate_series((date '${month}')::timestamp, date_trunc('month',(date '${month}')::timestamp) + '1 month' - '1 day'::interval, interval '1 day')::date as created_at) monthDays
65
- left join (
66
- select 0 as rn, loose.*, pallet.pallet, pallet.pallet_running_total from (
67
- select (date '${month}')::timestamp as created_at, 'NA' as order_no, 'NA' as order_ref_no, 'NA' as do_ref_no,
68
- 0 as carton, 0 as bag, 0 as basket,
69
- coalesce(sum(case when packing_type = 'CARTON' then qty else 0 end),0) as carton_running_total,
70
- coalesce(sum(case when packing_type = 'BAG' then qty else 0 end),0) as bag_running_total,
71
- coalesce(sum(case when packing_type = 'BASKET' then qty else 0 end),0) as basket_running_total
72
- from temp_invHistory
73
- where created_at < (date '${month}')::timestamp and qty <> 0
74
- ) loose
75
- left join (
76
- select (date '${month}')::timestamp as created_at,
77
- 0 as pallet,
78
- coalesce(sum(case when status = 'STORED' then 1 else -1 end),0) as pallet_running_total
79
- from temp_invByPallet ivp
80
- where started_at < (date '${month}')::timestamp
81
- ) pallet on pallet.created_at = loose.created_at
82
- union
83
- select row_number() over (order by loose.created_at) as rn,
84
- loose.*, pallet.pallet, pallet.pallet_running_total from (
85
- select MIN(created_at) as created_at, order_no, order_ref_no, do_ref_no,
86
- sum(case when packing_type = 'CARTON' then qty else 0 end) as carton,
87
- sum(case when packing_type = 'BAG' then qty else 0 end) as bag,
88
- sum(case when packing_type = 'BASKET' then qty else 0 end) as basket,
89
- 0 as carton_running_total, 0 as bag_running_total, 0 as basket_running_total
90
- from
91
- (
92
- SELECT pallet_id, packing_type, created_at, order_no, order_ref_no, do_ref_no, min(qty) AS qty FROM temp_invHistory
93
- where created_at >= (date '${month}')::timestamp and qty <> 0
94
- group by pallet_id, packing_type, created_at, order_no, order_ref_no, do_ref_no
95
- order by pallet_id, created_at, order_no, order_ref_no, do_ref_no
96
- ) foo
97
- group by created_at, order_no, order_ref_no, do_ref_no
98
- ) loose
99
- left join (
100
- select MIN(started_at) as created_at, order_no, order_ref_no, do_ref_no,
101
- sum(case when status = 'STORED' then 1 else -1 end) as pallet,
102
- 0 as pallet_running_total
103
- from temp_invByPallet ivp
104
- where started_at >= (date '${month}')::timestamp
105
- group by started_at::date, order_no, order_ref_no, do_ref_no
106
- ) pallet on pallet.created_at::date = loose.created_at::date and pallet.order_no = loose.order_no
107
- order by rn
108
- ) as src on src.created_at::date = monthDays.created_at::date
109
- order by monthDays.created_at, src.rn
110
- `);
111
- tx.query(`
112
- drop table temp_invHistory, temp_invByPallet
113
- `);
114
- let items = result.map(itm => {
115
- return {
116
- bag: itm.bag,
117
- bizplace: bizplace,
118
- bagRunningTotal: itm.bag_running_total,
119
- basket: itm.basket,
120
- basketRunningTotal: itm.basket_running_total,
121
- carton: itm.carton,
122
- cartonRunningTotal: itm.carton_running_total,
123
- createdAt: itm.created_at,
124
- doRefNo: itm.do_ref_no,
125
- orderNo: itm.order_no,
126
- orderRefNo: itm.order_ref_no,
127
- pallet: itm.pallet,
128
- palletRunningTotal: itm.pallet_running_total
129
- };
130
- });
131
- return { items, total: items.length };
132
- }
133
- catch (error) {
134
- throw error;
135
- }
136
- }
137
- };
138
- //# sourceMappingURL=elccl-daily-order-inventory-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elccl-daily-order-inventory-report.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AAGtC,QAAA,8BAA8B,GAAG;IAC5C,KAAK,CAAC,8BAA8B,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QACtF,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE5B,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YAE1E,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;YAC5E,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK,GAAG,UAAU,CAAA;YAEvF,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK;gBAAE,MAAM,eAAe,CAAA;YAEpD,MAAM,QAAQ,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC;gBACpE,EAAE,EAAE,cAAc,CAAC,KAAK;aACzB,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;SAsBC,EACD,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CACxD,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CAAC;;;;;;;;;;;;;OAad,CAAC,CAAA;YAEF,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;;;;;;;;;8CAUK,KAAK,4CAA4C,KAAK;;;4BAGxE,KAAK;;;;;;wCAMO,KAAK;;;4BAGjB,KAAK;;;;wCAIO,KAAK;;;;;;;;;;;;;2CAaF,KAAK;;;;;;;;;;;yCAWP,KAAK;;;;;;OAMvC,CAAC,CAAA;YAEF,EAAE,CAAC,KAAK,CAAC;;OAER,CAAC,CAAA;YAEF,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC3B,OAAO;oBACL,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,eAAe,EAAE,GAAG,CAAC,iBAAiB;oBACtC,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;oBAC5C,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;oBAC5C,SAAS,EAAE,GAAG,CAAC,UAAU;oBACzB,OAAO,EAAE,GAAG,CAAC,SAAS;oBACtB,OAAO,EAAE,GAAG,CAAC,QAAQ;oBACrB,UAAU,EAAE,GAAG,CAAC,YAAY;oBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;iBAC7C,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;SACtC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { ListParam } from '@things-factory/shell'\n\nexport const elcclDailyOrderInventoryReport = {\n async elcclDailyOrderInventoryReport(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n let bizplaceFilter = params.filters.find(data => data.name === 'bizplace')\n\n let month = params.filters.find(data => data.name === 'month').value + '-01'\n let tzoffset = params.filters.find(data => data.name === 'tzoffset').value + ' seconds'\n\n if (!bizplaceFilter || !month) throw 'Invalid input'\n\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({\n id: bizplaceFilter.value\n })\n\n await tx.query(\n `\n create temp table temp_invHistory as (\n select rih.pallet_id, rih.seq, \n coalesce(grn.name, do2.name, rih.order_no) as order_no , rih.order_ref_no , an.delivery_order_no as do_ref_no, \n rih.bizplace_id, rih.ref_order_id, \n coalesce(grn.created_at, rg.created_at, rih.created_at) as created_at, \n CASE WHEN rih.transaction_type = 'PICKING' THEN COALESCE(-oi.release_qty,rih.qty) ELSE rih.qty END AS qty,\n inv.packing_type, inv.reusable_pallet_id, rih.transaction_type, \n case when rih.status = 'TERMINATED' then rih.status else 'STORED' end as status,\n (case when lag(case when rih.status = 'TERMINATED' then 0 else 1 end) over (partition by rih.pallet_id order by rih.seq) = (case when rih.status = 'TERMINATED' then 0 else 1 end) \n then 0 else 1 end) as startflag\n from reduced_inventory_histories rih\n inner join inventories inv on inv.domain_id =rih.domain_id and inv.pallet_id =rih.pallet_id \n left join arrival_notices an on an.id = rih.ref_order_id::uuid and an.domain_id =rih.domain_id \n left join goods_receival_notes grn on grn.arrival_notice_id = an.id\n left join release_goods rg on rg.id = rih.ref_order_id::uuid and rg.domain_id =rih.domain_id \n left join order_inventories oi on oi.release_good_id = rih.ref_order_id::uuid and oi.inventory_id = inv.id\n left join delivery_orders do2 on do2.id = oi.delivery_order_id\n where ((rih.transaction_type <> 'PUTAWAY' and rih.transaction_type <> 'ADJUSTMENT' and rih.transaction_type <> 'RELOCATE') or rih.qty <> 0)\n and rih.domain_id =$1 and rih.bizplace_id = $2\n and coalesce(grn.created_at, rg.created_at, rih.created_at) < $3::timestamp + '1 month' + $4::interval\n )\n `,\n [context.state.domain.id, bizplace.id, month, tzoffset]\n )\n\n await tx.query(`\n create temp table temp_invByPallet as (\n select grp.*, ivh.order_no, ivh.order_ref_no, ivh.do_ref_no from (\n select pallet_id, packing_type, min(created_at) as started_at, max(created_at) as ended_at, min(seq) as min_seq, max(seq) as max_seq, status from (\n select startData.*, sum(startflag) over (partition by pallet_id order by seq) as grp from (\n select * from temp_invHistory s\n ) startData\n ) endData\n group by pallet_id, grp, status, packing_type\n order by pallet_id, min_seq\n ) grp\n inner join temp_invHistory ivh on ivh.pallet_id = grp.pallet_id and ivh.seq = grp.min_seq \n )\n `)\n\n const result: any = await tx.query(` \n select monthDays.created_at, order_no, order_ref_no, do_ref_no,\n coalesce(carton,0) as carton, \n coalesce(bag,0) as bag, \n coalesce(basket,0) as basket, \n coalesce(pallet,0) as pallet,\n sum(carton_running_total + carton) over (order by monthDays.created_at, src.rn) as carton_running_total, \n sum(bag_running_total + bag) over (order by monthDays.created_at, src.rn) as bag_running_total, \n sum(basket_running_total + basket) over (order by monthDays.created_at, src.rn) as basket_running_total, \n sum(pallet_running_total + pallet) over (order by monthDays.created_at, src.rn) as pallet_running_total\n from (select generate_series((date '${month}')::timestamp, date_trunc('month',(date '${month}')::timestamp) + '1 month' - '1 day'::interval, interval '1 day')::date as created_at) monthDays\n left join (\n select 0 as rn, loose.*, pallet.pallet, pallet.pallet_running_total from (\n select (date '${month}')::timestamp as created_at, 'NA' as order_no, 'NA' as order_ref_no, 'NA' as do_ref_no, \n 0 as carton, 0 as bag, 0 as basket,\n coalesce(sum(case when packing_type = 'CARTON' then qty else 0 end),0) as carton_running_total, \n coalesce(sum(case when packing_type = 'BAG' then qty else 0 end),0) as bag_running_total, \n coalesce(sum(case when packing_type = 'BASKET' then qty else 0 end),0) as basket_running_total\n from temp_invHistory\n where created_at < (date '${month}')::timestamp and qty <> 0\n ) loose\n left join (\n select (date '${month}')::timestamp as created_at,\n 0 as pallet,\n coalesce(sum(case when status = 'STORED' then 1 else -1 end),0) as pallet_running_total\n from temp_invByPallet ivp\n where started_at < (date '${month}')::timestamp\n ) pallet on pallet.created_at = loose.created_at\n union\n select row_number() over (order by loose.created_at) as rn,\n loose.*, pallet.pallet, pallet.pallet_running_total from (\n select MIN(created_at) as created_at, order_no, order_ref_no, do_ref_no,\n sum(case when packing_type = 'CARTON' then qty else 0 end) as carton, \n sum(case when packing_type = 'BAG' then qty else 0 end) as bag, \n sum(case when packing_type = 'BASKET' then qty else 0 end) as basket,\n 0 as carton_running_total, 0 as bag_running_total, 0 as basket_running_total\n from \n (\n SELECT pallet_id, packing_type, created_at, order_no, order_ref_no, do_ref_no, min(qty) AS qty FROM temp_invHistory \n where created_at >= (date '${month}')::timestamp and qty <> 0\n group by pallet_id, packing_type, created_at, order_no, order_ref_no, do_ref_no\n order by pallet_id, created_at, order_no, order_ref_no, do_ref_no\n ) foo\n group by created_at, order_no, order_ref_no, do_ref_no\n ) loose\n left join (\n select MIN(started_at) as created_at, order_no, order_ref_no, do_ref_no,\n sum(case when status = 'STORED' then 1 else -1 end) as pallet, \n 0 as pallet_running_total\n from temp_invByPallet ivp\n where started_at >= (date '${month}')::timestamp\n group by started_at::date, order_no, order_ref_no, do_ref_no\n ) pallet on pallet.created_at::date = loose.created_at::date and pallet.order_no = loose.order_no\n order by rn\n ) as src on src.created_at::date = monthDays.created_at::date \n order by monthDays.created_at, src.rn\n `)\n\n tx.query(`\n drop table temp_invHistory, temp_invByPallet\n `)\n\n let items = result.map(itm => {\n return {\n bag: itm.bag,\n bizplace: bizplace,\n bagRunningTotal: itm.bag_running_total,\n basket: itm.basket,\n basketRunningTotal: itm.basket_running_total,\n carton: itm.carton,\n cartonRunningTotal: itm.carton_running_total,\n createdAt: itm.created_at,\n doRefNo: itm.do_ref_no,\n orderNo: itm.order_no,\n orderRefNo: itm.order_ref_no,\n pallet: itm.pallet,\n palletRunningTotal: itm.pallet_running_total\n }\n })\n\n return { items, total: items.length }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.elcclInventoryHistoryPalletDetailReport = void 0;
4
- const biz_base_1 = require("@things-factory/biz-base");
5
- const shell_1 = require("@things-factory/shell");
6
- exports.elcclInventoryHistoryPalletDetailReport = {
7
- async elcclInventoryHistoryPalletDetailReport(_, params, context) {
8
- try {
9
- const { tx } = context.state;
10
- let bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
11
- let fromDate = params.filters.find(data => data.name === 'fromDate');
12
- let toDate = params.filters.find(data => data.name === 'toDate');
13
- if (!bizplaceFilter || !fromDate || !toDate)
14
- throw 'Invalid input';
15
- let bizplaceQuery = '';
16
- if (bizplaceFilter) {
17
- const bizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOneBy({
18
- id: bizplaceFilter.value
19
- });
20
- if (bizplace) {
21
- bizplaceQuery = "AND i2.bizplace_id = '" + bizplace.id + "'";
22
- }
23
- else {
24
- throw 'Invalid input';
25
- }
26
- }
27
- await tx.query(`
28
- CREATE TEMP TABLE invHistory as (
29
- select COALESCE(js.name, ar.name, 'NEW') as job_sheet,
30
- COALESCE(js.container_size, '') as container_size,
31
- i2.batch_id,
32
- bzp.name as bizplace_name,
33
- coalesce(plt.name, i2.pallet_id) as pallet_id, ih.seq, ih.status, ih.transaction_type, i2.product_id,
34
- ih.id as inventory_history_id, ih.packing_type, ih.qty, ih.opening_qty,
35
- ih.uom_value, ih.opening_uom_value, ih.created_at
36
- from inventories i2
37
- inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = $1
38
- inner join bizplaces bzp on bzp.id = ih.bizplace_id
39
- left join order_inventories oi on oi.inventory_id = i2.id and oi.arrival_notice_id is not null
40
- left join arrival_notices ar on ar.id = oi.arrival_notice_id
41
- left join job_sheets js on js.arrival_notice_ref_no = ar.name
42
- left join pallets plt on plt.id = i2.reusable_pallet_id
43
- where i2.domain_id = $1
44
- ${bizplaceQuery}
45
- and i2.ref_inventory_id is null
46
- )`, [context.state.domain.id]);
47
- await tx.query(`
48
- CREATE TEMP TABLE inventoryHistoryMovement AS (
49
- select bizplace_name, container_size, pallet_id, seq, status, transaction_type, batch_id,
50
- inventory_history_id, packing_type, qty, opening_qty, uom_value, opening_uom_value, created_at, job_sheet from (
51
- select row_number() over(partition by job_sheet, pallet_id order by created_at asc) as rn, * from invHistory where
52
- status = 'STORED' and (transaction_type = 'NEW' or transaction_type = 'CANCEL_ORDER' or transaction_type = 'RETURN' or transaction_type = 'PUTAWAY')
53
- )as invIn where rn = 1
54
- union all
55
- select bizplace_name, container_size, pallet_id, seq, status, transaction_type, batch_id,
56
- inventory_history_id, packing_type, qty, opening_qty, uom_value, opening_uom_value, created_at, job_sheet from (
57
- select row_number() over(partition by job_sheet, pallet_id order by created_at desc) as rn, * from invHistory ih1
58
- where (ih1.status = 'TERMINATED')
59
- ) as invOut where rn = 1 and invOut.transaction_type <> 'RETURN'
60
- );
61
- `);
62
- const result = await tx.query(`
63
- with inventoryHistoriesByPallet as (
64
- select invHistory.bizplace_name, invHistory.container_size, invHistory.job_sheet, invHistory.batch_id,
65
- SUM(case when invHistory.created_at < $1 then
66
- case when invHistory.status = 'STORED' then 1 else -1 end
67
- else 0 end) as opening_balance,
68
- SUM(case when invHistory.created_at >= $1
69
- and invHistory.created_at <= $2 then
70
- case when invHistory.status = 'STORED' then 1 else 0 end
71
- else 0 end) as in_balance,
72
- SUM(case when invHistory.created_at >= $1
73
- and invHistory.created_at <= $2 then
74
- case when invHistory.status = 'TERMINATED' then 1 else 0 end
75
- else 0 end) as out_balance
76
- from(
77
- select * from inventoryHistoryMovement
78
- ) as invHistory group by bizplace_name, container_size, job_sheet, batch_id
79
- )
80
- select invh.*, invh.opening_balance + invh.in_balance - invh.out_balance as closing_balance
81
- , (
82
- select json_agg(json_build_object('created_at', created_at, 'in_balance', in_balance, 'out_balance', out_balance)) as jsonData from
83
- (
84
- select bizplace_name, batch_id, job_sheet, created_at::date,
85
- SUM(case when status = 'STORED' then 1 else 0 end) as in_balance,
86
- SUM(case when status = 'TERMINATED' then 1 else 0 end) as out_balance
87
- from inventoryHistoryMovement
88
- where created_at >= $1 and
89
- created_at <= $2 and
90
- bizplace_name = invh.bizplace_name and
91
- batch_id = invh.batch_id and job_sheet = invh.job_sheet
92
- group by bizplace_name, batch_id, job_sheet, created_at::date
93
- order by created_at
94
- )
95
- as t
96
- )::varchar as json_date_movement
97
- from inventoryHistoriesByPallet invh
98
- where (invh.opening_balance > 0
99
- or invh.in_balance > 0
100
- or invh.out_balance > 0)
101
- order by invh.bizplace_name, invh.batch_id;
102
- `, [fromDate.value, toDate.value]);
103
- await tx.query(`drop table inventoryHistoryMovement, invHistory`);
104
- let items = result.map(item => {
105
- return {
106
- bizplace: { name: item.bizplace_name },
107
- jobSheet: item.job_sheet,
108
- batchId: item.batch_id,
109
- openingBalance: item.opening_balance,
110
- inBalance: item.in_balance,
111
- outBalance: item.out_balance,
112
- closingBalance: item.closing_balance,
113
- jsonDateMovement: item.json_date_movement,
114
- containerSize: item.container_size
115
- };
116
- });
117
- return items;
118
- }
119
- catch (error) {
120
- throw error;
121
- }
122
- }
123
- };
124
- //# sourceMappingURL=elccl-inventory-history-pallet-detail-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elccl-inventory-history-pallet-detail-report.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,iDAAgE;AAEnD,QAAA,uCAAuC,GAAG;IACrD,KAAK,CAAC,uCAAuC,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;QAC/F,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAE5B,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YAE1E,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YACpE,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YAEhE,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;gBAAE,MAAM,eAAe,CAAA;YAElE,IAAI,aAAa,GAAG,EAAE,CAAA;YACtB,IAAI,cAAc,EAAE;gBAClB,MAAM,QAAQ,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC;oBACjE,EAAE,EAAE,cAAc,CAAC,KAAK;iBACzB,CAAC,CAAA;gBAEF,IAAI,QAAQ,EAAE;oBACZ,aAAa,GAAG,wBAAwB,GAAG,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAA;iBAC7D;qBAAM;oBACL,MAAM,eAAe,CAAA;iBACtB;aACF;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;YAiBI,aAAa;;UAEf,EACF,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAC1B,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CAAC;;;;;;;;;;;;;;OAcd,CAAC,CAAA;YAEF,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCD,EACC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAC/B,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;YAEjE,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5B,OAAO;oBACL,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE;oBACtC,QAAQ,EAAE,IAAI,CAAC,SAAS;oBACxB,OAAO,EAAE,IAAI,CAAC,QAAQ;oBACtB,cAAc,EAAE,IAAI,CAAC,eAAe;oBACpC,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,UAAU,EAAE,IAAI,CAAC,WAAW;oBAC5B,cAAc,EAAE,IAAI,CAAC,eAAe;oBACpC,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;oBACzC,aAAa,EAAE,IAAI,CAAC,cAAc;iBACnC,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAA;SACb;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { getRepository, ListParam } from '@things-factory/shell'\n\nexport const elcclInventoryHistoryPalletDetailReport = {\n async elcclInventoryHistoryPalletDetailReport(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n let bizplaceFilter = params.filters.find(data => data.name === 'bizplace')\n\n let fromDate = params.filters.find(data => data.name === 'fromDate')\n let toDate = params.filters.find(data => data.name === 'toDate')\n\n if (!bizplaceFilter || !fromDate || !toDate) throw 'Invalid input'\n\n let bizplaceQuery = ''\n if (bizplaceFilter) {\n const bizplace: Bizplace = await getRepository(Bizplace).findOneBy({\n id: bizplaceFilter.value\n })\n\n if (bizplace) {\n bizplaceQuery = \"AND i2.bizplace_id = '\" + bizplace.id + \"'\"\n } else {\n throw 'Invalid input'\n }\n }\n\n await tx.query(\n `\n CREATE TEMP TABLE invHistory as (\n select COALESCE(js.name, ar.name, 'NEW') as job_sheet,\n COALESCE(js.container_size, '') as container_size,\n i2.batch_id,\n bzp.name as bizplace_name,\n coalesce(plt.name, i2.pallet_id) as pallet_id, ih.seq, ih.status, ih.transaction_type, i2.product_id, \n ih.id as inventory_history_id, ih.packing_type, ih.qty, ih.opening_qty,\n ih.uom_value, ih.opening_uom_value, ih.created_at\n from inventories i2 \n inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = $1\n inner join bizplaces bzp on bzp.id = ih.bizplace_id\n left join order_inventories oi on oi.inventory_id = i2.id and oi.arrival_notice_id is not null\n left join arrival_notices ar on ar.id = oi.arrival_notice_id\n left join job_sheets js on js.arrival_notice_ref_no = ar.name\n left join pallets plt on plt.id = i2.reusable_pallet_id\n where i2.domain_id = $1\n ${bizplaceQuery}\n and i2.ref_inventory_id is null\n )`,\n [context.state.domain.id]\n )\n\n await tx.query(`\n CREATE TEMP TABLE inventoryHistoryMovement AS (\n select bizplace_name, container_size, pallet_id, seq, status, transaction_type, batch_id,\n inventory_history_id, packing_type, qty, opening_qty, uom_value, opening_uom_value, created_at, job_sheet from (\n select row_number() over(partition by job_sheet, pallet_id order by created_at asc) as rn, * from invHistory where \n status = 'STORED' and (transaction_type = 'NEW' or transaction_type = 'CANCEL_ORDER' or transaction_type = 'RETURN' or transaction_type = 'PUTAWAY')\n )as invIn where rn = 1\n union all\n select bizplace_name, container_size, pallet_id, seq, status, transaction_type, batch_id,\n inventory_history_id, packing_type, qty, opening_qty, uom_value, opening_uom_value, created_at, job_sheet from (\n select row_number() over(partition by job_sheet, pallet_id order by created_at desc) as rn, * from invHistory ih1\n where (ih1.status = 'TERMINATED')\n ) as invOut where rn = 1 and invOut.transaction_type <> 'RETURN'\n );\n `)\n\n const result: any = await tx.query(\n ` \n with inventoryHistoriesByPallet as (\n select invHistory.bizplace_name, invHistory.container_size, invHistory.job_sheet, invHistory.batch_id,\n SUM(case when invHistory.created_at < $1 then \n case when invHistory.status = 'STORED' then 1 else -1 end\n else 0 end) as opening_balance,\n SUM(case when invHistory.created_at >= $1 \n and invHistory.created_at <= $2 then \n case when invHistory.status = 'STORED' then 1 else 0 end\n else 0 end) as in_balance,\n SUM(case when invHistory.created_at >= $1 \n and invHistory.created_at <= $2 then \n case when invHistory.status = 'TERMINATED' then 1 else 0 end\n else 0 end) as out_balance\n from(\n select * from inventoryHistoryMovement\n ) as invHistory group by bizplace_name, container_size, job_sheet, batch_id\n )\n select invh.*, invh.opening_balance + invh.in_balance - invh.out_balance as closing_balance \n , (\n select json_agg(json_build_object('created_at', created_at, 'in_balance', in_balance, 'out_balance', out_balance)) as jsonData from \n (\n select bizplace_name, batch_id, job_sheet, created_at::date,\n SUM(case when status = 'STORED' then 1 else 0 end) as in_balance,\n SUM(case when status = 'TERMINATED' then 1 else 0 end) as out_balance\n from inventoryHistoryMovement\n where created_at >= $1 and \n created_at <= $2 and \n bizplace_name = invh.bizplace_name and\n batch_id = invh.batch_id and job_sheet = invh.job_sheet\n group by bizplace_name, batch_id, job_sheet, created_at::date\n order by created_at\n ) \n as t\n )::varchar as json_date_movement\n from inventoryHistoriesByPallet invh\n where (invh.opening_balance > 0\n or invh.in_balance > 0\n or invh.out_balance > 0)\n order by invh.bizplace_name, invh.batch_id;\n `,\n [fromDate.value, toDate.value]\n )\n\n await tx.query(`drop table inventoryHistoryMovement, invHistory`)\n\n let items = result.map(item => {\n return {\n bizplace: { name: item.bizplace_name },\n jobSheet: item.job_sheet,\n batchId: item.batch_id,\n openingBalance: item.opening_balance,\n inBalance: item.in_balance,\n outBalance: item.out_balance,\n closingBalance: item.closing_balance,\n jsonDateMovement: item.json_date_movement,\n containerSize: item.container_size\n }\n })\n\n return items\n } catch (error) {\n throw error\n }\n }\n}\n"]}