@things-factory/operato-hub 4.3.78 → 4.3.79-alpha.0

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 (168) hide show
  1. package/dist-server/middlewares/business-middleware.js +4 -1
  2. package/dist-server/middlewares/business-middleware.js.map +1 -1
  3. package/dist-server/middlewares/store-middleware.js.map +1 -1
  4. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js +3 -2
  5. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js.map +1 -1
  6. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js +5 -2
  7. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js.map +1 -1
  8. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +4 -2
  9. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js.map +1 -1
  10. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js +94 -0
  11. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js.map +1 -0
  12. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js +208 -0
  13. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js.map +1 -0
  14. package/dist-server/routers/api/restful-apis/v1/company/add-product.js +65 -0
  15. package/dist-server/routers/api/restful-apis/v1/company/add-product.js.map +1 -0
  16. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js +97 -0
  17. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js.map +1 -0
  18. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js +50 -0
  19. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js.map +1 -0
  20. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js +63 -0
  21. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js.map +1 -0
  22. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js +110 -0
  23. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js.map +1 -0
  24. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js +52 -0
  25. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js.map +1 -0
  26. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js +90 -0
  27. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js.map +1 -0
  28. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js +99 -0
  29. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js.map +1 -0
  30. package/dist-server/routers/api/restful-apis/v1/company/index.js +14 -0
  31. package/dist-server/routers/api/restful-apis/v1/company/index.js.map +1 -0
  32. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js +65 -0
  33. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js.map +1 -0
  34. package/dist-server/routers/api/restful-apis/v1/index.js +2 -31
  35. package/dist-server/routers/api/restful-apis/v1/index.js.map +1 -1
  36. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js +29 -0
  37. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js.map +1 -0
  38. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js +40 -0
  39. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js.map +1 -0
  40. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js +23 -0
  41. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js.map +1 -0
  42. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js +32 -0
  43. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js.map +1 -0
  44. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js +53 -0
  45. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js.map +1 -0
  46. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js +31 -0
  47. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js.map +1 -0
  48. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js +71 -0
  49. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js.map +1 -0
  50. package/dist-server/routers/api/restful-apis/v1/utils/expected-parameters.js +201 -0
  51. package/dist-server/routers/api/restful-apis/v1/utils/expected-parameters.js.map +1 -0
  52. package/dist-server/routers/api/restful-apis/v1/utils/params.js +293 -0
  53. package/dist-server/routers/api/restful-apis/v1/utils/params.js.map +1 -0
  54. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js +90 -0
  55. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js.map +1 -0
  56. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js +277 -0
  57. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js.map +1 -0
  58. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js +810 -0
  59. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js.map +1 -0
  60. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js +116 -0
  61. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js.map +1 -0
  62. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js +140 -0
  63. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js.map +1 -0
  64. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js +100 -0
  65. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js.map +1 -0
  66. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js +78 -0
  67. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js.map +1 -0
  68. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js +96 -0
  69. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js.map +1 -0
  70. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js +244 -0
  71. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js.map +1 -0
  72. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js +96 -0
  73. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js.map +1 -0
  74. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js +94 -0
  75. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js.map +1 -0
  76. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js +112 -0
  77. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js.map +1 -0
  78. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js +13 -0
  79. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js.map +1 -0
  80. package/package.json +54 -54
  81. package/server/middlewares/business-middleware.ts +5 -1
  82. package/server/middlewares/store-middleware.ts +1 -0
  83. package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +3 -2
  84. package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +5 -2
  85. package/server/routers/api/restful-apis/unstable/add-release-order.ts +4 -2
  86. package/server/routers/api/restful-apis/v1/company/add-contact-points.ts +94 -0
  87. package/server/routers/api/restful-apis/v1/company/add-marketplace-order.ts +242 -0
  88. package/server/routers/api/restful-apis/v1/company/add-product.ts +78 -0
  89. package/server/routers/api/restful-apis/v1/company/cancel-marketplace-order.ts +102 -0
  90. package/server/routers/api/restful-apis/v1/company/get-bizplace-list.ts +56 -0
  91. package/server/routers/api/restful-apis/v1/company/get-contact-point-list.ts +69 -0
  92. package/server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.ts +118 -0
  93. package/server/routers/api/restful-apis/v1/company/get-marketplace-store-list.ts +58 -0
  94. package/server/routers/api/restful-apis/v1/company/get-partner-list.ts +97 -0
  95. package/server/routers/api/restful-apis/v1/company/get-product-list.ts +105 -0
  96. package/server/routers/api/restful-apis/v1/company/index.ts +11 -0
  97. package/server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.ts +70 -0
  98. package/server/routers/api/restful-apis/v1/index.ts +2 -31
  99. package/server/routers/api/restful-apis/v1/middlewares/business-middleware.ts +31 -0
  100. package/server/routers/api/restful-apis/v1/middlewares/index.ts +26 -0
  101. package/server/routers/api/restful-apis/v1/middlewares/logging-middleware.ts +24 -0
  102. package/server/routers/api/restful-apis/v1/middlewares/store-middleware.ts +34 -0
  103. package/server/routers/api/restful-apis/v1/middlewares/validation-middleware.ts +50 -0
  104. package/server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.ts +31 -0
  105. package/server/routers/api/restful-apis/v1/utils/error-util.ts +70 -0
  106. package/server/routers/api/restful-apis/v1/utils/expected-parameters.ts +199 -0
  107. package/server/routers/api/restful-apis/v1/utils/params.ts +291 -0
  108. package/server/routers/api/restful-apis/v1/utils/validate-util.ts +74 -0
  109. package/server/routers/api/restful-apis/v1/warehouse/add-inbound-order.ts +361 -0
  110. package/server/routers/api/restful-apis/v1/warehouse/add-release-order.ts +1000 -0
  111. package/server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.ts +139 -0
  112. package/server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.ts +144 -0
  113. package/server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.ts +109 -0
  114. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.ts +74 -0
  115. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts +99 -0
  116. package/server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.ts +295 -0
  117. package/server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.ts +99 -0
  118. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-details.ts +97 -0
  119. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-list.ts +116 -0
  120. package/server/routers/api/restful-apis/v1/warehouse/index.ts +10 -0
  121. package/dist-server/routers/api/restful-apis/v1/bizplace.js +0 -45
  122. package/dist-server/routers/api/restful-apis/v1/bizplace.js.map +0 -1
  123. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js +0 -103
  124. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js.map +0 -1
  125. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js +0 -47
  126. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js.map +0 -1
  127. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js +0 -124
  128. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js.map +0 -1
  129. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +0 -164
  130. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +0 -1
  131. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +0 -120
  132. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +0 -1
  133. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js +0 -115
  134. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js.map +0 -1
  135. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js +0 -125
  136. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js.map +0 -1
  137. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js +0 -88
  138. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js.map +0 -1
  139. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js +0 -79
  140. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js.map +0 -1
  141. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +0 -110
  142. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +0 -1
  143. package/dist-server/routers/api/restful-apis/v1/get-partners.js +0 -23
  144. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +0 -1
  145. package/dist-server/routers/api/restful-apis/v1/get-products.js +0 -210
  146. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +0 -1
  147. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js +0 -122
  148. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js.map +0 -1
  149. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js +0 -191
  150. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js.map +0 -1
  151. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +0 -20
  152. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +0 -1
  153. package/server/routers/api/restful-apis/v1/bizplace.ts +0 -45
  154. package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +0 -110
  155. package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +0 -46
  156. package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +0 -121
  157. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +0 -178
  158. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +0 -134
  159. package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +0 -128
  160. package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +0 -126
  161. package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +0 -99
  162. package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +0 -81
  163. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +0 -125
  164. package/server/routers/api/restful-apis/v1/get-partners.ts +0 -24
  165. package/server/routers/api/restful-apis/v1/get-products.ts +0 -216
  166. package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +0 -134
  167. package/server/routers/api/restful-apis/v1/get-release-order-list.ts +0 -198
  168. package/server/routers/api/restful-apis/v1/get-warehouses.ts +0 -18
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const typeorm_1 = require("typeorm");
7
+ const api_1 = require("@things-factory/api");
8
+ const sales_base_1 = require("@things-factory/sales-base");
9
+ const error_util_1 = require("../utils/error-util");
10
+ const validate_util_1 = require("../utils/validate-util");
11
+ const lodash_1 = __importDefault(require("lodash"));
12
+ const middlewares_1 = require("../middlewares");
13
+ api_1.restfulApiRouter.get('/v1/warehouse/get-inbound-order-list', middlewares_1.businessMiddleware, middlewares_1.validationMiddleware, middlewares_1.loggingMiddleware, async (context, next) => {
14
+ var _a, _b, _c, _d;
15
+ try {
16
+ const { limit, offset } = (0, validate_util_1.validateLimitOffset)(context.query.limit, context.query.offset);
17
+ const { fromDate, toDate } = (0, validate_util_1.validateFromToDate)(context.query.fromDate, context.query.toDate);
18
+ // get contact points for that bizplace
19
+ // optional query parameter filter
20
+ let filter = Object.assign({}, context.query);
21
+ filter['bizplace'] = filter['bizplaceId'];
22
+ delete filter['bizplaceId'];
23
+ if (lodash_1.default.has(filter, 'ganNo')) {
24
+ filter['name'] = filter['ganNo'];
25
+ delete filter['ganNo'];
26
+ }
27
+ filter['createdAt'] = (0, typeorm_1.Between)(fromDate, toDate);
28
+ delete filter['fromDate'];
29
+ delete filter['toDate'];
30
+ delete filter['limit'];
31
+ delete filter['offset'];
32
+ const [arrivalNotices, totalCount] = await (0, typeorm_1.getRepository)(sales_base_1.ArrivalNotice).findAndCount({
33
+ where: filter,
34
+ relations: ['orderProducts', 'orderProducts.product'],
35
+ skip: offset,
36
+ take: limit,
37
+ order: { createdAt: 'DESC' }
38
+ });
39
+ // create and format data response
40
+ let data = [];
41
+ for (const arrivalNotice of arrivalNotices) {
42
+ let orderProducts = [];
43
+ for (const orderProduct of arrivalNotice.orderProducts) {
44
+ const orderProductsDataPoint = {
45
+ product: {
46
+ sku: orderProduct.product.sku,
47
+ uom: orderProduct.product.uom,
48
+ uomValue: orderProduct.product.uomValue
49
+ },
50
+ batchId: orderProduct.batchId,
51
+ packingType: orderProduct.packingType,
52
+ packingSize: orderProduct.packingSize,
53
+ packQty: orderProduct.packQty,
54
+ palletQty: orderProduct.palletQty
55
+ };
56
+ orderProducts.push(orderProductsDataPoint);
57
+ }
58
+ const datapoint = {
59
+ id: arrivalNotice.id,
60
+ ganNo: arrivalNotice.ganNo,
61
+ refNo: arrivalNotice.refNo,
62
+ refNo2: arrivalNotice.refNo2,
63
+ refNo3: arrivalNotice.refNo3,
64
+ etaDate: arrivalNotice.etaDate,
65
+ ownTransport: arrivalNotice.ownTransport,
66
+ importCargo: arrivalNotice.importCargo,
67
+ container: arrivalNotice.container,
68
+ truckNo: arrivalNotice.truckNo,
69
+ deliveryOrderNo: arrivalNotice.deliveryOrderNo,
70
+ containerNo: arrivalNotice.containerNo,
71
+ containerSize: arrivalNotice.containerSize,
72
+ orderProducts,
73
+ supplier: {
74
+ name: ((_a = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _a === void 0 ? void 0 : _a.name) || null,
75
+ companyName: ((_b = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _b === void 0 ? void 0 : _b.companyName) || null,
76
+ email: ((_c = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _c === void 0 ? void 0 : _c.email) || null,
77
+ accountNo: ((_d = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _d === void 0 ? void 0 : _d.accountNo) || null
78
+ }
79
+ };
80
+ data.push(datapoint);
81
+ }
82
+ context.body = {
83
+ data,
84
+ totalCount,
85
+ limit,
86
+ offset
87
+ };
88
+ }
89
+ catch (e) {
90
+ if (e instanceof error_util_1.ApiError)
91
+ (0, error_util_1.ApiErrorHandler)(context, e);
92
+ else
93
+ (0, error_util_1.throwInternalServerError)(context, e);
94
+ }
95
+ });
96
+ //# sourceMappingURL=get-inbound-order-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-inbound-order-list.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts"],"names":[],"mappings":";;;;;AAAA,qCAAgD;AAEhD,6CAAgE;AAChE,2DAA0D;AAE1D,oDAAyF;AACzF,0DAAgF;AAChF,oDAAsB;AACtB,gDAA4F;AAE5F,sBAAM,CAAC,GAAG,CACR,sCAAsC,EACtC,gCAAkB,EAClB,kCAAoB,EACpB,+BAAiB,EACjB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;IACtB,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,mCAAmB,EAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAA,kCAAkB,EAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAE7F,uCAAuC;QACvC,kCAAkC;QAClC,IAAI,MAAM,qBAAQ,OAAO,CAAC,KAAK,CAAE,CAAA;QACjC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;QACzC,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;QAC3B,IAAI,gBAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;YAChC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;SACvB;QACD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAA,iBAAO,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE/C,OAAO,MAAM,CAAC,UAAU,CAAC,CAAA;QACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;QACvB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;QACvB,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,GAAoB,MAAM,IAAA,uBAAa,EAAC,0BAAa,CAAC,CAAC,YAAY,CAAC;YACpG,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;YACrD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAA;QAEF,kCAAkC;QAClC,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC1C,IAAI,aAAa,GAAG,EAAE,CAAA;YACtB,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,aAAa,EAAE;gBACtD,MAAM,sBAAsB,GAAG;oBAC7B,OAAO,EAAE;wBACP,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG;wBAC7B,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG;wBAC7B,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ;qBACxC;oBACD,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,WAAW,EAAE,YAAY,CAAC,WAAW;oBACrC,WAAW,EAAE,YAAY,CAAC,WAAW;oBACrC,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;iBAClC,CAAA;gBACD,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;aAC3C;YACD,MAAM,SAAS,GAAG;gBAChB,EAAE,EAAE,aAAa,CAAC,EAAE;gBACpB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,eAAe,EAAE,aAAa,CAAC,eAAe;gBAC9C,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,aAAa,EAAE,aAAa,CAAC,aAAa;gBAC1C,aAAa;gBACb,QAAQ,EAAE;oBACR,IAAI,EAAE,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,0CAAE,IAAI,KAAI,IAAI;oBAC3C,WAAW,EAAE,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,0CAAE,WAAW,KAAI,IAAI;oBACzD,KAAK,EAAE,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,0CAAE,KAAK,KAAI,IAAI;oBAC7C,SAAS,EAAE,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,0CAAE,SAAS,KAAI,IAAI;iBACtD;aACF,CAAA;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACrB;QAED,OAAO,CAAC,IAAI,GAAG;YACb,IAAI;YACJ,UAAU;YACV,KAAK;YACL,MAAM;SACP,CAAA;KACF;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,qBAAQ;YAAE,IAAA,4BAAe,EAAC,OAAO,EAAE,CAAC,CAAC,CAAA;;YACjD,IAAA,qCAAwB,EAAC,OAAO,EAAE,CAAC,CAAC,CAAA;KAC1C;AACH,CAAC,CACF,CAAA"}
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const typeorm_1 = require("typeorm");
4
+ const api_1 = require("@things-factory/api");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
7
+ const error_util_1 = require("../utils/error-util");
8
+ const validate_util_1 = require("../utils/validate-util");
9
+ const middlewares_1 = require("../middlewares");
10
+ api_1.restfulApiRouter.get('/v1/warehouse/get-inventory-product-group-list', middlewares_1.businessMiddleware, middlewares_1.validationMiddleware, middlewares_1.loggingMiddleware, async (context, next) => {
11
+ try {
12
+ const { limit, offset } = (0, validate_util_1.validateLimitOffset)(context.query.limit, context.query.offset);
13
+ // optional query parameter filter
14
+ let filter = Object.assign({}, context.query);
15
+ delete filter['limit'];
16
+ delete filter['offset'];
17
+ let filters = [];
18
+ if (filter.hasOwnProperty('sku')) {
19
+ filters.push({ name: 'productSKU', operator: 'eq', value: filter['sku'] });
20
+ }
21
+ if (filter.hasOwnProperty('batchId')) {
22
+ filters.push({ name: 'batchId', operator: 'eq', value: filter['batchId'] });
23
+ }
24
+ await (0, typeorm_1.getConnection)().transaction(async (tx) => {
25
+ let customerBizplaceId = filter.bizplaceId;
26
+ const customerCompanyBizplace = await (0, biz_base_1.getCompanyBizplace)(null, null, customerBizplaceId, tx);
27
+ const customerBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
28
+ where: { id: customerBizplaceId },
29
+ relations: ['company', 'company.domain']
30
+ });
31
+ const bizplaces = [customerBizplace, customerCompanyBizplace];
32
+ const params = { filters, pagination: { page: offset, limit: limit } };
33
+ const { items, total } = await bizplaceInventoryProductGroup(bizplaces, params, context, tx);
34
+ let data = items.map(item => {
35
+ return {
36
+ product: {
37
+ sku: item.productSKU,
38
+ name: item.productName,
39
+ description: item.productDescription,
40
+ type: item.groupType
41
+ },
42
+ batchId: item.batchId,
43
+ packingType: item.packingType,
44
+ packingSize: item.packingSize,
45
+ qty: item.remainQty,
46
+ uomValue: item.remainUomValue,
47
+ uom: item.uom
48
+ };
49
+ });
50
+ context.body = {
51
+ data,
52
+ totalCount: total,
53
+ limit,
54
+ offset
55
+ };
56
+ });
57
+ }
58
+ catch (e) {
59
+ if (e instanceof error_util_1.ApiError)
60
+ (0, error_util_1.ApiErrorHandler)(context, e);
61
+ else
62
+ (0, error_util_1.throwInternalServerError)(context, e);
63
+ }
64
+ });
65
+ async function bizplaceInventoryProductGroup(bizplaces, params, context, trxMgr) {
66
+ try {
67
+ let filters = params.filters;
68
+ const { domain } = context.state;
69
+ const { bizplaceIds, productWhereClause, bundleWhereClause, whereClause, batchBundle } = await getConditions(bizplaces, filters);
70
+ const _groupType = filters.find(res => res.name == 'groupType');
71
+ let queryStrings = `
72
+ CREATE TEMP TABLE temp_inventory_product_group AS (
73
+ SELECT * FROM (
74
+ WITH oi as (
75
+ SELECT
76
+ SUM(oi.release_qty) AS release_qty,
77
+ SUM(oi.release_uom_value) AS release_uom_value,
78
+ oi.batch_id,
79
+ oi.batch_id_ref,
80
+ oi.product_id,
81
+ p.name AS product_name,
82
+ oi.packing_type,
83
+ oi.packing_size,
84
+ oi.uom
85
+ FROM
86
+ order_inventories oi
87
+ LEFT JOIN
88
+ products p
89
+ ON
90
+ oi.product_id = p.id
91
+ WHERE
92
+ (oi.status = 'PENDING' or oi.status = 'PENDING_RECEIVE' or oi.status = 'PENDING_WORKSHEET' or oi.status = 'PENDING_SPLIT')
93
+ AND oi.batch_id NOTNULL
94
+ AND oi.product_id NOTNULL
95
+ AND oi.packing_type NOTNULL
96
+ AND oi.packing_size NOTNULL
97
+ AND oi.inventory_id IS NULL
98
+ GROUP BY
99
+ oi.batch_id,
100
+ oi.batch_id_ref,
101
+ oi.product_id,
102
+ oi.packing_type,
103
+ oi.packing_size,
104
+ oi.uom,
105
+ p.name
106
+ )
107
+ SELECT
108
+ i.batch_id AS "batchId",
109
+ i.batch_id_ref AS "batchIdRef",
110
+ i.packing_type AS "packingType",
111
+ i.packing_size AS "packingSize",
112
+ i.uom AS "uom",
113
+ coalesce(p.sku, '') AS "productSKU",
114
+ coalesce(p.name, '') AS "productName",
115
+ coalesce(p.description, '') AS "productDescription",
116
+ p.id AS "productId",
117
+ SUM(COALESCE(i.qty, 0)) - SUM(COALESCE(i.locked_qty, 0)) - MAX(COALESCE(oi.release_qty, 0)) - MAX(COALESCE(bp.bundle_product_release_qty, 0)) AS "remainQty",
118
+ SUM(COALESCE(i.uom_value, 0)) - SUM(COALESCE(i.locked_uom_value, 0)) - MAX(COALESCE(oi.release_uom_value, 0)) - MAX(COALESCE(bp.bundle_product_release_uom_value, 0)) AS "remainUomValue",
119
+ concat(SUM(COALESCE(i.uom_value, 0)) - SUM(COALESCE(i.locked_uom_value, 0)) - MAX(COALESCE(oi.release_uom_value, 0)) - MAX(COALESCE(bp.bundle_product_release_uom_value, 0)), ' ', i.uom) AS "remainUomValueWithUom",
120
+ 'SINGLE' AS "groupType"
121
+ FROM
122
+ inventories i
123
+ LEFT JOIN products p ON i.product_id = p.id
124
+ LEFT JOIN oi ON i.batch_id = oi.batch_id AND p.name = oi.product_name AND i.packing_type = oi.packing_type AND i.packing_size = oi.packing_size AND i.uom = oi.uom
125
+ LEFT JOIN locations l2 ON i.location_id = l2.id AND i.domain_id = l2.domain_id
126
+ LEFT JOIN (
127
+ SELECT pbs.product_id, SUM(pbs.bundle_qty * src.release_qty) AS bundle_product_release_qty, SUM(pbs.bundle_qty * src.release_uom_value) AS bundle_product_release_uom_value
128
+ FROM product_bundle_settings pbs
129
+ INNER JOIN json_populate_recordset(NULL::order_inventories,'${batchBundle}') src ON src.product_id = pbs.product_bundle_id
130
+ GROUP BY pbs.product_id
131
+ ) bp on i.product_id = bp.product_id
132
+ WHERE i.domain_id = $1
133
+ AND l2.type NOT IN ('${warehouse_base_1.LOCATION_TYPE.QUARANTINE}', '${warehouse_base_1.LOCATION_TYPE.RESERVE}')
134
+ ${productWhereClause}
135
+ GROUP BY
136
+ i.batch_id,
137
+ i.batch_id_ref,
138
+ p.id,
139
+ i.packing_type,
140
+ i.packing_size,
141
+ i.uom
142
+ UNION
143
+ SELECT 'BUNDLE' AS "batchId", null as "batchIdRef", packing_type, packing_size,'UNIT' AS "uom", sku AS "productSKU", name AS "productName", description AS "productDescription", id AS "productId",
144
+ MIN(FLOOR(pbs."availableQty")) AS "remainQty",
145
+ MIN(FLOOR(pbs."availableUomValue")) AS "remainUomValue",
146
+ CONCAT(MIN(FLOOR(pbs."availableUomValue")),' UNIT') AS "remainUomValueWithUom",
147
+ 'BUNDLE' AS "groupType"
148
+ FROM product_bundles pb
149
+ INNER JOIN (
150
+ SELECT pbs.product_id, pbs.product_bundle_id, min(pbs.bundle_qty),
151
+ (SUM(COALESCE(i2.qty, 0)) - SUM(COALESCE(i2.locked_qty, 0)) - MAX(COALESCE(oi.release_qty, 0))) / min(pbs.bundle_qty) AS "availableQty",
152
+ (SUM(COALESCE(i2.uom_value, 0)) - SUM(COALESCE(i2.locked_uom_value, 0)) - MAX(COALESCE(oi.release_uom_value, 0))) / min(pbs.bundle_qty) AS "availableUomValue"
153
+ FROM product_bundle_settings pbs
154
+ LEFT JOIN inventories i2 ON i2.product_id = pbs.product_id AND i2.domain_id = $1
155
+ AND i2.bizplace_id IN (${bizplaceIds})
156
+ AND i2.status = 'STORED'
157
+ LEFT JOIN oi ON oi.product_id = i2.product_id
158
+ GROUP BY pbs.product_id, pbs.product_bundle_id
159
+ ) pbs ON pbs.product_bundle_id = pb.id
160
+ ${bundleWhereClause}
161
+ GROUP BY pb.packing_type, pb.packing_size, pb.name, pb.sku, pb.id
162
+ )
163
+ AS inv_prod_grp
164
+ ${whereClause}
165
+ )
166
+ `;
167
+ let filterGroupTypeQuery;
168
+ if (_groupType) {
169
+ if (_groupType.value === 'SINGLE') {
170
+ filterGroupTypeQuery = `where "groupType"= 'SINGLE' `;
171
+ }
172
+ else {
173
+ filterGroupTypeQuery = `where "groupType"= 'BUNDLE' `;
174
+ }
175
+ }
176
+ await trxMgr.query(queryStrings, [domain.id]);
177
+ const [{ total }] = await trxMgr.query(`select count(*) as total from temp_inventory_product_group ${filterGroupTypeQuery ? filterGroupTypeQuery : ''}`);
178
+ let items = [];
179
+ if (params === null || params === void 0 ? void 0 : params.pagination) {
180
+ items = await trxMgr.query(`select * from temp_inventory_product_group ${filterGroupTypeQuery ? filterGroupTypeQuery : ''} OFFSET $1 LIMIT $2`, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
181
+ }
182
+ else {
183
+ items = await trxMgr.query(`select * from temp_inventory_product_group ${filterGroupTypeQuery ? filterGroupTypeQuery : ''}
184
+ }`);
185
+ }
186
+ await trxMgr.query(`drop table temp_inventory_product_group`);
187
+ return { items, total };
188
+ }
189
+ catch (error) {
190
+ throw error;
191
+ }
192
+ }
193
+ async function getConditions(bizplaces, filters, hasRemainingQty = true) {
194
+ var _a;
195
+ let bizplaceIds = bizplaces.map((bizplace) => `'${bizplace.id}'`).join();
196
+ let productWhereClause = `
197
+ AND i.status = 'STORED'
198
+ AND i.bizplace_id IN (${bizplaceIds})
199
+ `;
200
+ let bundleWhereClause = `
201
+ WHERE pb.status = 'ACTIVATED'
202
+ `;
203
+ let whereClause = hasRemainingQty ? ` WHERE "remainQty" > 0` : ` WHERE 1 = 1`;
204
+ let productDetailWhereClause = ``;
205
+ let batchBundle;
206
+ if (filters === null || filters === void 0 ? void 0 : filters.length) {
207
+ await Promise.all(filters.map(async (filter) => {
208
+ const name = filter.name;
209
+ const operator = filter.operator.toLowerCase();
210
+ let value = filter.value;
211
+ switch (name) {
212
+ case 'batchId':
213
+ whereClause += `AND LOWER("batchId") LIKE '${value.toLowerCase()}'`;
214
+ break;
215
+ case 'productSKU':
216
+ whereClause += `AND LOWER("productSKU") LIKE '${value.toLowerCase()}'`;
217
+ case 'batch_bundle':
218
+ bundleWhereClause += `
219
+ ${bundleWhereClause == '' ? 'WHERE' : 'AND'} pb.id ${operator === 'in' ? 'IN' : 'NOT IN'} (${value
220
+ .map((v) => `('${v.productId}')`)
221
+ .join()})
222
+ `;
223
+ break;
224
+ }
225
+ }));
226
+ batchBundle = JSON.stringify(((_a = filters
227
+ .find(filter => filter.name === 'batch_bundle')) === null || _a === void 0 ? void 0 : _a.value.map(itm => {
228
+ return {
229
+ product_id: itm.productId,
230
+ release_qty: (itm === null || itm === void 0 ? void 0 : itm.releaseQty) || 0,
231
+ release_uom_value: (itm === null || itm === void 0 ? void 0 : itm.releaseUomValue) || 0
232
+ };
233
+ })) || []);
234
+ }
235
+ return {
236
+ bizplaceIds,
237
+ productWhereClause,
238
+ bundleWhereClause,
239
+ whereClause,
240
+ batchBundle,
241
+ productDetailWhereClause
242
+ };
243
+ }
244
+ //# sourceMappingURL=get-inventory-product-group-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-inventory-product-group-list.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.ts"],"names":[],"mappings":";;AAAA,qCAAsD;AAEtD,6CAAgE;AAChE,uDAAuE;AAEvE,mEAA8D;AAE9D,oDAAyF;AACzF,0DAA4D;AAC5D,gDAA4F;AAE5F,sBAAM,CAAC,GAAG,CACR,gDAAgD,EAChD,gCAAkB,EAClB,kCAAoB,EACpB,+BAAiB,EACjB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtB,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,mCAAmB,EAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAExF,kCAAkC;QAClC,IAAI,MAAM,qBAAQ,OAAO,CAAC,KAAK,CAAE,CAAA;QAEjC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;QAEvB,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;SAC3E;QACD,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;YACpC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;SAC5E;QAED,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAiB,EAAE,EAAE;YAC5D,IAAI,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAA;YAC1C,MAAM,uBAAuB,GAAa,MAAM,IAAA,6BAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAA;YACtG,MAAM,gBAAgB,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;gBAC1E,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE;gBACjC,SAAS,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;aACzC,CAAC,CAAA;YAEF,MAAM,SAAS,GAAe,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAA;YACzE,MAAM,MAAM,GAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAA;YAE3E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YAE5F,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1B,OAAO;oBACL,OAAO,EAAE;wBACP,GAAG,EAAE,IAAI,CAAC,UAAU;wBACpB,IAAI,EAAE,IAAI,CAAC,WAAW;wBACtB,WAAW,EAAE,IAAI,CAAC,kBAAkB;wBACpC,IAAI,EAAE,IAAI,CAAC,SAAS;qBACrB;oBACD,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,GAAG,EAAE,IAAI,CAAC,SAAS;oBACnB,QAAQ,EAAE,IAAI,CAAC,cAAc;oBAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,IAAI,GAAG;gBACb,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,KAAK;gBACL,MAAM;aACP,CAAA;QACH,CAAC,CAAC,CAAA;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,qBAAQ;YAAE,IAAA,4BAAe,EAAC,OAAO,EAAE,CAAC,CAAC,CAAA;;YACjD,IAAA,qCAAwB,EAAC,OAAO,EAAE,CAAC,CAAC,CAAA;KAC1C;AACH,CAAC,CACF,CAAA;AAED,KAAK,UAAU,6BAA6B,CAAC,SAAqB,EAAE,MAAM,EAAE,OAAY,EAAE,MAAqB;IAC7G,IAAI;QACF,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAuB,OAAO,CAAC,KAAK,CAAA;QAEpD,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,aAAa,CAC1G,SAAS,EACT,OAAO,CACR,CAAA;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,CAAA;QAE/D,IAAI,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EA0DuD,WAAW;;;;mCAItD,8BAAa,CAAC,UAAU,OAAO,8BAAa,CAAC,OAAO;cACzE,kBAAkB;;;;;;;;;;;;;;;;;;;;;uCAqBO,WAAW;;;;;cAKpC,iBAAiB;;;;YAInB,WAAW;;OAEhB,CAAA;QAEH,IAAI,oBAAoB,CAAA;QAExB,IAAI,UAAU,EAAE;YACd,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACjC,oBAAoB,GAAG,8BAA8B,CAAA;aACtD;iBAAM;gBACL,oBAAoB,GAAG,8BAA8B,CAAA;aACtD;SACF;QAED,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAE7C,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAQ,MAAM,MAAM,CAAC,KAAK,CACzC,8DAA8D,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CACjH,CAAA;QACD,IAAI,KAAK,GAAU,EAAE,CAAA;QAErB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,EAAE;YACtB,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CACxB,+CACE,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAChD,qBAAqB,EACrB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAClF,CAAA;SACF;aAAM;YACL,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CACxB,8CAA8C,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;UAC5F,CACH,CAAA;SACF;QAED,MAAM,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAE7D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;KACxB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,KAAK,CAAA;KACZ;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,SAAqB,EACrB,OAAyD,EACzD,kBAA2B,IAAI;;IAE/B,IAAI,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAElF,IAAI,kBAAkB,GAAG;;4BAEC,WAAW;GACpC,CAAA;IAED,IAAI,iBAAiB,GAAG;;GAEvB,CAAA;IAED,IAAI,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,cAAc,CAAA;IAE7E,IAAI,wBAAwB,GAAG,EAAE,CAAA;IAEjC,IAAI,WAAmB,CAAA;IACvB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;QACnB,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAsD,EAAE,EAAE;YAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;YAC9C,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YAExB,QAAQ,IAAI,EAAE;gBACZ,KAAK,SAAS;oBACZ,WAAW,IAAI,8BAA8B,KAAK,CAAC,WAAW,EAAE,GAAG,CAAA;oBACnE,MAAK;gBAEP,KAAK,YAAY;oBACf,WAAW,IAAI,iCAAiC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAA;gBAExE,KAAK,cAAc;oBACjB,iBAAiB,IAAI;gBACjB,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK;yBACjG,GAAG,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC;yBACvD,IAAI,EAAE;aACR,CAAA;oBACD,MAAK;aACR;QACH,CAAC,CAAC,CACH,CAAA;QAED,WAAW,GAAG,IAAI,CAAC,SAAS,CAC1B,CAAA,MAAA,OAAO;aACJ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,0CAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAChB,OAAO;gBACL,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,WAAW,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,KAAI,CAAC;gBACjC,iBAAiB,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,eAAe,KAAI,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,KAAI,EAAE,CACX,CAAA;KACF;IAED,OAAO;QACL,WAAW;QACX,kBAAkB;QAClB,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,wBAAwB;KACzB,CAAA;AACH,CAAC"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const typeorm_1 = require("typeorm");
7
+ const api_1 = require("@things-factory/api");
8
+ const sales_base_1 = require("@things-factory/sales-base");
9
+ const error_util_1 = require("../utils/error-util");
10
+ const validate_util_1 = require("../utils/validate-util");
11
+ const lodash_1 = __importDefault(require("lodash"));
12
+ const middlewares_1 = require("../middlewares");
13
+ api_1.restfulApiRouter.get('/v1/warehouse/get-onhand-inventory-list', middlewares_1.businessMiddleware, middlewares_1.validationMiddleware, middlewares_1.loggingMiddleware, async (context, next) => {
14
+ var _a, _b, _c, _d;
15
+ try {
16
+ const { limit, offset } = (0, validate_util_1.validateLimitOffset)(context.query.limit, context.query.offset);
17
+ const { fromDate, toDate } = (0, validate_util_1.validateFromToDate)(context.query.fromDate, context.query.toDate);
18
+ // get contact points for that bizplace
19
+ // optional query parameter filter
20
+ let filter = Object.assign({}, context.query);
21
+ filter['bizplace'] = filter['bizplaceId'];
22
+ delete filter['bizplaceId'];
23
+ if (lodash_1.default.has(filter, 'ganNo')) {
24
+ filter['name'] = filter['ganNo'];
25
+ delete filter['ganNo'];
26
+ }
27
+ filter['createdAt'] = (0, typeorm_1.Between)(fromDate, toDate);
28
+ delete filter['fromDate'];
29
+ delete filter['toDate'];
30
+ delete filter['limit'];
31
+ delete filter['offset'];
32
+ const [arrivalNotices, totalCount] = await (0, typeorm_1.getRepository)(sales_base_1.ArrivalNotice).findAndCount({
33
+ where: filter,
34
+ relations: ['orderProducts', 'orderProducts.product'],
35
+ skip: offset,
36
+ take: limit,
37
+ order: { createdAt: 'DESC' }
38
+ });
39
+ // create and format data response
40
+ let data = [];
41
+ for (const arrivalNotice of arrivalNotices) {
42
+ let orderProducts = [];
43
+ for (const orderProduct of arrivalNotice.orderProducts) {
44
+ const orderProductsDataPoint = {
45
+ product: {
46
+ sku: orderProduct.product.sku,
47
+ uom: orderProduct.product.uom,
48
+ uomValue: orderProduct.product.uomValue
49
+ },
50
+ batchId: orderProduct.batchId,
51
+ packingType: orderProduct.packingType,
52
+ packingSize: orderProduct.packingSize,
53
+ packQty: orderProduct.packQty,
54
+ palletQty: orderProduct.palletQty
55
+ };
56
+ orderProducts.push(orderProductsDataPoint);
57
+ }
58
+ const datapoint = {
59
+ id: arrivalNotice.id,
60
+ ganNo: arrivalNotice.ganNo,
61
+ refNo: arrivalNotice.refNo,
62
+ refNo2: arrivalNotice.refNo2,
63
+ refNo3: arrivalNotice.refNo3,
64
+ etaDate: arrivalNotice.etaDate,
65
+ ownTransport: arrivalNotice.ownTransport,
66
+ importCargo: arrivalNotice.importCargo,
67
+ container: arrivalNotice.container,
68
+ truckNo: arrivalNotice.truckNo,
69
+ deliveryOrderNo: arrivalNotice.deliveryOrderNo,
70
+ containerNo: arrivalNotice.containerNo,
71
+ containerSize: arrivalNotice.containerSize,
72
+ orderProducts,
73
+ supplier: {
74
+ name: ((_a = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _a === void 0 ? void 0 : _a.name) || null,
75
+ companyName: ((_b = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _b === void 0 ? void 0 : _b.companyName) || null,
76
+ email: ((_c = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _c === void 0 ? void 0 : _c.email) || null,
77
+ accountNo: ((_d = arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.supplier) === null || _d === void 0 ? void 0 : _d.accountNo) || null
78
+ }
79
+ };
80
+ data.push(datapoint);
81
+ }
82
+ context.body = {
83
+ data,
84
+ totalCount,
85
+ limit,
86
+ offset
87
+ };
88
+ }
89
+ catch (e) {
90
+ if (e instanceof error_util_1.ApiError)
91
+ (0, error_util_1.ApiErrorHandler)(context, e);
92
+ else
93
+ (0, error_util_1.throwInternalServerError)(context, e);
94
+ }
95
+ });
96
+ //# sourceMappingURL=get-onhand-inventory-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-onhand-inventory-list.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const typeorm_1 = require("typeorm");
7
+ const api_1 = require("@things-factory/api");
8
+ const sales_base_1 = require("@things-factory/sales-base");
9
+ const error_util_1 = require("../utils/error-util");
10
+ const lodash_1 = __importDefault(require("lodash"));
11
+ const middlewares_1 = require("../middlewares");
12
+ api_1.restfulApiRouter.get('/v1/warehouse/get-release-order-details', middlewares_1.businessMiddleware, middlewares_1.validationMiddleware, middlewares_1.loggingMiddleware, async (context, next) => {
13
+ try {
14
+ // get contact points for that bizplace
15
+ // optional query parameter filter
16
+ let filter = Object.assign({}, context.query);
17
+ filter['bizplace'] = filter['bizplaceId'];
18
+ delete filter['bizplaceId'];
19
+ if (lodash_1.default.has(filter, 'roNo')) {
20
+ filter['name'] = filter['roNo'];
21
+ delete filter['roNo'];
22
+ }
23
+ const releaseGood = await (0, typeorm_1.getRepository)(sales_base_1.ReleaseGood).findOne({
24
+ where: filter,
25
+ relations: ['orderInventories', 'orderInventories.product']
26
+ });
27
+ // create and format data response
28
+ let orderInventories = [];
29
+ for (const orderInventory of releaseGood.orderInventories) {
30
+ const orderInventoriesDataPoint = {
31
+ product: {
32
+ sku: orderInventory.product.sku,
33
+ refCode: orderInventory.product.refCode
34
+ },
35
+ batchId: orderInventory.batchId,
36
+ packingType: orderInventory.packingType,
37
+ releaseQty: orderInventory.releaseQty,
38
+ packingSize: orderInventory.packingSize
39
+ };
40
+ orderInventories.push(orderInventoriesDataPoint);
41
+ }
42
+ const data = {
43
+ id: releaseGood.id,
44
+ roNo: releaseGood.roNo,
45
+ refNo: releaseGood.refNo,
46
+ refNo2: releaseGood.refNo2,
47
+ refNo3: releaseGood.refNo3,
48
+ type: releaseGood.type,
49
+ releaseDate: releaseGood.releaseDate,
50
+ collectionOrderNo: releaseGood.collectionOrderNo,
51
+ ownTransport: releaseGood.ownTransport,
52
+ exportOption: releaseGood.exportOption,
53
+ transporter: releaseGood.transporter,
54
+ trackingNo: releaseGood.trackingNo,
55
+ marketplaceOrderStatus: releaseGood.marketplaceOrderStatus,
56
+ airwayBill: releaseGood.airwayBill,
57
+ invoice: releaseGood.invoice,
58
+ storeName: releaseGood.storeName,
59
+ storeId: releaseGood.storeId,
60
+ routeId: releaseGood.routeId,
61
+ stopId: releaseGood.stopId,
62
+ billTo: {
63
+ billingAddress: releaseGood.billingAddress
64
+ },
65
+ deliverTo: {
66
+ deliveryAddress1: releaseGood.deliveryAddress1,
67
+ deliveryAddress2: releaseGood.deliveryAddress2,
68
+ deliveryAddress3: releaseGood.deliveryAddress3,
69
+ deliveryAddress4: releaseGood.deliveryAddress4,
70
+ deliveryAddress5: releaseGood.deliveryAddress5,
71
+ attentionTo: releaseGood.attentionTo,
72
+ attentionCompany: releaseGood.attentionCompany,
73
+ city: releaseGood.city,
74
+ state: releaseGood.state,
75
+ postalCode: releaseGood.postalCode,
76
+ country: releaseGood.country,
77
+ phone1: releaseGood.phone1,
78
+ phone2: releaseGood.phone2,
79
+ email: releaseGood.email
80
+ },
81
+ orderInventories
82
+ };
83
+ context.body = {
84
+ data
85
+ };
86
+ }
87
+ catch (e) {
88
+ if (e instanceof error_util_1.ApiError)
89
+ (0, error_util_1.ApiErrorHandler)(context, e);
90
+ else
91
+ (0, error_util_1.throwInternalServerError)(context, e);
92
+ }
93
+ });
94
+ //# sourceMappingURL=get-release-order-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-release-order-details.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-release-order-details.ts"],"names":[],"mappings":"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"}