@things-factory/operato-hub 5.0.13 → 6.0.0-alpha.1

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 (217) hide show
  1. package/dist-server/controllers/bizplace-initializer/dataset/codes.js +9 -0
  2. package/dist-server/controllers/bizplace-initializer/dataset/codes.js.map +1 -1
  3. package/dist-server/controllers/bizplace-initializer/dataset/settings.js +5 -0
  4. package/dist-server/controllers/bizplace-initializer/dataset/settings.js.map +1 -1
  5. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js +3 -3
  6. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js.map +1 -1
  7. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js +2 -2
  8. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js.map +1 -1
  9. package/dist-server/controllers/bizplace-initializer/menus.js +2 -2
  10. package/dist-server/controllers/bizplace-initializer/menus.js.map +1 -1
  11. package/dist-server/controllers/company-initializer/business-register.js +6 -7
  12. package/dist-server/controllers/company-initializer/business-register.js.map +1 -1
  13. package/dist-server/controllers/company-initializer/generate-company-roles.js +4 -4
  14. package/dist-server/controllers/company-initializer/generate-company-roles.js.map +1 -1
  15. package/dist-server/controllers/invitation.js +9 -9
  16. package/dist-server/controllers/invitation.js.map +1 -1
  17. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  18. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  19. package/dist-server/graphql/resolvers/generators/generate-bizplace.js.map +1 -1
  20. package/dist-server/graphql/resolvers/generators/generate-company.js +4 -3
  21. package/dist-server/graphql/resolvers/generators/generate-company.js.map +1 -1
  22. package/dist-server/graphql/resolvers/generators/update-domain-extType.js +1 -1
  23. package/dist-server/graphql/resolvers/generators/update-domain-extType.js.map +1 -1
  24. package/dist-server/graphql/resolvers/invitations/partner-invitation.js +6 -6
  25. package/dist-server/graphql/resolvers/invitations/partner-invitation.js.map +1 -1
  26. package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js +5 -2
  27. package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js.map +1 -1
  28. package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js +149 -0
  29. package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js.map +1 -0
  30. package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js +58 -0
  31. package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js.map +1 -0
  32. package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js +3 -3
  33. package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js.map +1 -1
  34. package/dist-server/graphql/resolvers/synchronization/index.js +6 -2
  35. package/dist-server/graphql/resolvers/synchronization/index.js.map +1 -1
  36. package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js +68 -0
  37. package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js.map +1 -0
  38. package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js +35 -0
  39. package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js.map +1 -0
  40. package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js +1 -1
  41. package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js.map +1 -1
  42. package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js +1 -1
  43. package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js.map +1 -1
  44. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js +4 -2
  45. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js.map +1 -1
  46. package/dist-server/graphql/types/synchronization/index.js +4 -0
  47. package/dist-server/graphql/types/synchronization/index.js.map +1 -1
  48. package/dist-server/index.js +5 -5
  49. package/dist-server/index.js.map +1 -1
  50. package/dist-server/middlewares/business-middleware.js +2 -3
  51. package/dist-server/middlewares/business-middleware.js.map +1 -1
  52. package/dist-server/middlewares/store-middleware.js +2 -2
  53. package/dist-server/middlewares/store-middleware.js.map +1 -1
  54. package/dist-server/middlewares/warehouse-middleware.js +3 -2
  55. package/dist-server/middlewares/warehouse-middleware.js.map +1 -1
  56. package/dist-server/migrations/1597668478399-SeedBusinessDomain.js +2 -3
  57. package/dist-server/migrations/1597668478399-SeedBusinessDomain.js.map +1 -1
  58. package/dist-server/migrations/1597668478401-SeedBusinessRoles.js +2 -2
  59. package/dist-server/migrations/1597668478401-SeedBusinessRoles.js.map +1 -1
  60. package/dist-server/migrations/1608009991065-SeedUser.js +5 -6
  61. package/dist-server/migrations/1608009991065-SeedUser.js.map +1 -1
  62. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js +2 -1
  63. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js.map +1 -1
  64. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js +5 -4
  65. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js.map +1 -1
  66. package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js +5 -2
  67. package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js.map +1 -1
  68. package/dist-server/routers/api/restful-apis/unstable/add-products.js +32 -16
  69. package/dist-server/routers/api/restful-apis/unstable/add-products.js.map +1 -1
  70. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +149 -40
  71. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js.map +1 -1
  72. package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js +4 -4
  73. package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js.map +1 -1
  74. package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js +27 -11
  75. package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js.map +1 -1
  76. package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js +9 -2
  77. package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js.map +1 -1
  78. package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js +2 -2
  79. package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js.map +1 -1
  80. package/dist-server/routers/api/restful-apis/unstable/get-partners.js +5 -4
  81. package/dist-server/routers/api/restful-apis/unstable/get-partners.js.map +1 -1
  82. package/dist-server/routers/api/restful-apis/unstable/get-products.js +1 -0
  83. package/dist-server/routers/api/restful-apis/unstable/get-products.js.map +1 -1
  84. package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js +2 -2
  85. package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js.map +1 -1
  86. package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js +2 -2
  87. package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js.map +1 -1
  88. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js +6 -5
  89. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js.map +1 -1
  90. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js +8 -5
  91. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js.map +1 -1
  92. package/dist-server/routers/api/restful-apis/v1/add-products.js +32 -16
  93. package/dist-server/routers/api/restful-apis/v1/add-products.js.map +1 -1
  94. package/dist-server/routers/api/restful-apis/v1/add-release-order.js +8 -6
  95. package/dist-server/routers/api/restful-apis/v1/add-release-order.js.map +1 -1
  96. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js +4 -4
  97. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js.map +1 -1
  98. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +27 -11
  99. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +1 -1
  100. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +9 -2
  101. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +1 -1
  102. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +2 -2
  103. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +1 -1
  104. package/dist-server/routers/api/restful-apis/v1/get-partners.js +5 -4
  105. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +1 -1
  106. package/dist-server/routers/api/restful-apis/v1/get-products.js +1 -0
  107. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +1 -1
  108. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +2 -2
  109. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +1 -1
  110. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js +2 -2
  111. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js.map +1 -1
  112. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js +6 -5
  113. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js.map +1 -1
  114. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js +8 -5
  115. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js.map +1 -1
  116. package/dist-server/routers/api/restful-apis/v2/add-products.js +32 -16
  117. package/dist-server/routers/api/restful-apis/v2/add-products.js.map +1 -1
  118. package/dist-server/routers/api/restful-apis/v2/add-release-order.js +8 -6
  119. package/dist-server/routers/api/restful-apis/v2/add-release-order.js.map +1 -1
  120. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js +4 -4
  121. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js.map +1 -1
  122. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js +27 -11
  123. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js.map +1 -1
  124. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js +9 -2
  125. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js.map +1 -1
  126. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js +2 -2
  127. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js.map +1 -1
  128. package/dist-server/routers/api/restful-apis/v2/get-partners.js +5 -4
  129. package/dist-server/routers/api/restful-apis/v2/get-partners.js.map +1 -1
  130. package/dist-server/routers/api/restful-apis/v2/get-products.js +1 -0
  131. package/dist-server/routers/api/restful-apis/v2/get-products.js.map +1 -1
  132. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js +2 -2
  133. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js.map +1 -1
  134. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js +2 -2
  135. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js.map +1 -1
  136. package/dist-server/routers/auth-invitation-router.js +2 -2
  137. package/dist-server/routers/auth-invitation-router.js.map +1 -1
  138. package/dist-server/routers/business/bizplace-register-router.js +3 -3
  139. package/dist-server/routers/business/bizplace-register-router.js.map +1 -1
  140. package/dist-server/tsconfig.tsbuildinfo +1 -1
  141. package/dist-server/utils/get-warehouses.js +15 -11
  142. package/dist-server/utils/get-warehouses.js.map +1 -1
  143. package/openapi/unstable/product.yaml +9 -3
  144. package/openapi/v1/product.yaml +9 -3
  145. package/openapi/v2/product.yaml +9 -3
  146. package/package.json +47 -47
  147. package/server/controllers/bizplace-initializer/dataset/codes.ts +9 -0
  148. package/server/controllers/bizplace-initializer/dataset/settings.ts +5 -0
  149. package/server/controllers/bizplace-initializer/generate-bizplace-domain-roles.ts +4 -2
  150. package/server/controllers/bizplace-initializer/generate-bizplace-domain.ts +4 -3
  151. package/server/controllers/bizplace-initializer/menus.ts +4 -2
  152. package/server/controllers/company-initializer/business-register.ts +5 -3
  153. package/server/controllers/company-initializer/generate-company-roles.ts +4 -3
  154. package/server/controllers/invitation.ts +11 -7
  155. package/server/controllers/utils/save-invitation-token.ts +1 -1
  156. package/server/graphql/resolvers/generators/generate-bizplace.ts +1 -1
  157. package/server/graphql/resolvers/generators/generate-company.ts +5 -4
  158. package/server/graphql/resolvers/generators/update-domain-extType.ts +7 -5
  159. package/server/graphql/resolvers/invitations/partner-invitation.ts +5 -5
  160. package/server/graphql/resolvers/oauth2/company-roles-by-scope.ts +8 -6
  161. package/server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.ts +180 -0
  162. package/server/graphql/resolvers/synchronization/create-dat-shipments.ts +64 -0
  163. package/server/graphql/resolvers/synchronization/fetch-sync-products.ts +3 -2
  164. package/server/graphql/resolvers/synchronization/index.ts +10 -2
  165. package/server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.ts +91 -0
  166. package/server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.ts +39 -0
  167. package/server/graphql/resolvers/synchronization/sync-products-from-account.ts +4 -4
  168. package/server/graphql/resolvers/synchronization/sync-products-to-account.ts +4 -4
  169. package/server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts +19 -12
  170. package/server/graphql/types/synchronization/index.ts +4 -0
  171. package/server/index.ts +7 -7
  172. package/server/middlewares/business-middleware.ts +1 -2
  173. package/server/middlewares/store-middleware.ts +1 -1
  174. package/server/middlewares/warehouse-middleware.ts +3 -2
  175. package/server/migrations/1597668478399-SeedBusinessDomain.ts +3 -2
  176. package/server/migrations/1597668478401-SeedBusinessRoles.ts +2 -2
  177. package/server/migrations/1608009991065-SeedUser.ts +5 -3
  178. package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +2 -1
  179. package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +3 -2
  180. package/server/routers/api/restful-apis/unstable/add-marketplace-order.ts +13 -2
  181. package/server/routers/api/restful-apis/unstable/add-products.ts +40 -16
  182. package/server/routers/api/restful-apis/unstable/add-release-order.ts +98 -48
  183. package/server/routers/api/restful-apis/unstable/cancel-release-order.ts +2 -2
  184. package/server/routers/api/restful-apis/unstable/get-delivery-orders.ts +27 -11
  185. package/server/routers/api/restful-apis/unstable/get-goods-received-notes.ts +9 -2
  186. package/server/routers/api/restful-apis/unstable/get-onhand-inventories.ts +1 -1
  187. package/server/routers/api/restful-apis/unstable/get-partners.ts +4 -2
  188. package/server/routers/api/restful-apis/unstable/get-products.ts +1 -0
  189. package/server/routers/api/restful-apis/unstable/get-warehouses.ts +3 -2
  190. package/server/routers/api/restful-apis/unstable/update-release-order-details.ts +1 -1
  191. package/server/routers/api/restful-apis/v1/add-inbound-order.ts +4 -3
  192. package/server/routers/api/restful-apis/v1/add-marketplace-order.ts +17 -5
  193. package/server/routers/api/restful-apis/v1/add-products.ts +40 -16
  194. package/server/routers/api/restful-apis/v1/add-release-order.ts +10 -6
  195. package/server/routers/api/restful-apis/v1/cancel-release-order.ts +2 -2
  196. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +27 -11
  197. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +9 -2
  198. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +1 -1
  199. package/server/routers/api/restful-apis/v1/get-partners.ts +4 -2
  200. package/server/routers/api/restful-apis/v1/get-products.ts +1 -0
  201. package/server/routers/api/restful-apis/v1/get-warehouses.ts +3 -2
  202. package/server/routers/api/restful-apis/v1/update-release-order-details.ts +1 -1
  203. package/server/routers/api/restful-apis/v2/add-inbound-order.ts +4 -3
  204. package/server/routers/api/restful-apis/v2/add-marketplace-order.ts +17 -5
  205. package/server/routers/api/restful-apis/v2/add-products.ts +40 -16
  206. package/server/routers/api/restful-apis/v2/add-release-order.ts +10 -6
  207. package/server/routers/api/restful-apis/v2/cancel-release-order.ts +2 -2
  208. package/server/routers/api/restful-apis/v2/get-delivery-orders.ts +27 -11
  209. package/server/routers/api/restful-apis/v2/get-goods-received-notes.ts +9 -2
  210. package/server/routers/api/restful-apis/v2/get-onhand-inventories.ts +1 -1
  211. package/server/routers/api/restful-apis/v2/get-partners.ts +4 -2
  212. package/server/routers/api/restful-apis/v2/get-products.ts +1 -0
  213. package/server/routers/api/restful-apis/v2/get-warehouses.ts +3 -2
  214. package/server/routers/api/restful-apis/v2/update-release-order-details.ts +1 -1
  215. package/server/routers/auth-invitation-router.ts +2 -2
  216. package/server/routers/business/bizplace-register-router.ts +3 -1
  217. package/server/utils/get-warehouses.ts +46 -36
@@ -12,6 +12,7 @@ const marketplace_base_1 = require("@things-factory/marketplace-base");
12
12
  const product_base_1 = require("@things-factory/product-base");
13
13
  const sales_base_1 = require("@things-factory/sales-base");
14
14
  const setting_base_1 = require("@things-factory/setting-base");
15
+ const shell_1 = require("@things-factory/shell");
15
16
  const warehouse_base_1 = require("@things-factory/warehouse-base");
16
17
  const index_1 = require("../../../../errors/index");
17
18
  const business_middleware_1 = require("../../../../middlewares/business-middleware");
@@ -78,13 +79,14 @@ api_1.restfulApiRouter.post(`/${apiVersion}/warehouse/:warehouseId/add-release-o
78
79
  trackingNo: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.trackingNo,
79
80
  airwayBill: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.airwayBill,
80
81
  invoice: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.invoice,
82
+ packageId: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.packageId,
81
83
  storeName: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.storeName,
82
84
  storeId: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.storeId,
83
85
  routeId: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.routeId,
84
86
  stopId: bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.stopId
85
87
  };
86
88
  // check existing order
87
- await checkExistingOrder(releaseGood, customerBizplace, context, tx);
89
+ await checkExistingOrder(releaseGood, customerBizplace, bodyReq === null || bodyReq === void 0 ? void 0 : bodyReq.checkDuplicationValidation, context, tx);
88
90
  //massage data
89
91
  massagedData = await massageOrderItems(releaseGood, bodyReq.orderInventories, context);
90
92
  // validation
@@ -132,24 +134,13 @@ api_1.restfulApiRouter.post(`/${apiVersion}/warehouse/:warehouseId/add-release-o
132
134
  });
133
135
  }
134
136
  // assignment
135
- console.time('assign');
137
+ // console.time('assign')
136
138
  let assignedOrderProducts = await assignToInventory(massagedData.orderProducts, customerBizplace, context, tx);
137
- console.timeEnd('assign');
139
+ // console.timeEnd('assign')
138
140
  // create order
139
- console.time('save');
141
+ // console.time('save')
140
142
  let result = await createReleaseGood(releaseGood, assignedOrderProducts, customerBizplace, context, tx);
141
- console.timeEnd('save');
142
- const sellercraft = await tx.getRepository(integration_sellercraft_1.Sellercraft).findOne({ domain: customerBizplace.domain });
143
- if (sellercraft) {
144
- try {
145
- const sellercraftCtrl = new sales_base_1.SellercraftController(tx, domain, user);
146
- let packageInfo = await sellercraftCtrl.packOrder(sellercraft, Object.assign(Object.assign({}, result), { orderProducts: result.orderProducts }));
147
- await (0, typeorm_1.getRepository)(sales_base_1.ReleaseGood).update({ id: result.id }, { packageId: packageInfo.packageId });
148
- }
149
- catch (error) {
150
- env_1.logger.error(`add-release-order[packageId][OrderNo: ${result.name}]: ${JSON.stringify(error)}`);
151
- }
152
- }
143
+ // console.timeEnd('save')
153
144
  let addReleaseGood = {
154
145
  id: result.id,
155
146
  name: result.name,
@@ -181,6 +172,7 @@ api_1.restfulApiRouter.post(`/${apiVersion}/warehouse/:warehouseId/add-release-o
181
172
  airwayBill: result.airwayBill,
182
173
  invoice: result.invoice,
183
174
  type: result.type,
175
+ packageId: result.packageId,
184
176
  storeName: result.storeName,
185
177
  storeId: result.storeId,
186
178
  routeId: result.routeId,
@@ -200,11 +192,51 @@ api_1.restfulApiRouter.post(`/${apiVersion}/warehouse/:warehouseId/add-release-o
200
192
  (0, integration_base_1.createPayloadLog)(customerBizplaceId, `/${apiVersion}/warehouse/:warehouseId/add-release-order`, bodyReq, error, context, integration_base_1.PayloadType.INGESTION);
201
193
  if (error.errorCode) {
202
194
  if (error.errorCode == 'INSUFFICIENT_STOCK' && requiredDraft) {
203
- await createDraftOrder(releaseGood, massagedData.orderProducts, context);
195
+ const result = await createDraftOrder(releaseGood, massagedData.orderProducts, context);
196
+ let createdDraftOrder = {
197
+ id: result.id,
198
+ name: result.name,
199
+ refNo: result.refNo,
200
+ refNo2: result.refNo2,
201
+ refNo3: result.refNo3,
202
+ status: result.status,
203
+ truckNo: result.truckNo,
204
+ ownTransport: result.ownTransport,
205
+ marketplaceOrderStatus: result.marketplaceOrderStatus,
206
+ billingAddress: result.billingAddress,
207
+ deliveryAddress1: result.deliveryAddress1,
208
+ deliveryAddress2: result.deliveryAddress2,
209
+ deliveryAddress3: result.deliveryAddress3,
210
+ deliveryAddress4: result.deliveryAddress4,
211
+ deliveryAddress5: result.deliveryAddress5,
212
+ attentionTo: result.attentionTo,
213
+ attentionCompany: result.attentionCompany,
214
+ city: result.city,
215
+ state: result.state,
216
+ postalCode: result.postalCode,
217
+ country: result.country,
218
+ phone1: result.phone1,
219
+ phone2: result.phone2,
220
+ email: result.email,
221
+ type: result.type,
222
+ packageId: result.packageId,
223
+ exportOption: result.exportOption,
224
+ releaseDate: result.releaseDate,
225
+ collectionOrderNo: result.collectionOrderNo,
226
+ bizplace: { name: result.bizplace.name },
227
+ domain: { name: result.domain.name }
228
+ };
229
+ context.body = { result: { createdDraftOrder } };
230
+ }
231
+ else {
232
+ env_1.logger.error(`add-release-order: ${JSON.stringify(error)}`);
233
+ context.throw(400, context.t(error));
204
234
  }
205
235
  }
206
- env_1.logger.error(`add-release-order: ${JSON.stringify(error)}`);
207
- context.throw(400, context.t(error));
236
+ else {
237
+ env_1.logger.error(`add-release-order: ${JSON.stringify(error)}`);
238
+ context.throw(400, context.t(error));
239
+ }
208
240
  }
209
241
  });
210
242
  });
@@ -246,15 +278,15 @@ async function checkMandatoryKey(context, params) {
246
278
  }
247
279
  return params;
248
280
  }
249
- async function checkExistingOrder(releaseGood, bizplace, context, tx) {
281
+ async function checkExistingOrder(releaseGood, bizplace, checkDuplicationValidation = true, context, tx) {
250
282
  const { domain, user } = context.state;
251
283
  const refNo = releaseGood.refNo;
252
284
  const refNo2 = releaseGood.refNo2;
253
285
  const refNo3 = releaseGood.refNo3;
254
- if (releaseGood.type == 'b2c') {
286
+ if (checkDuplicationValidation) {
255
287
  const foundDraftReleaseGood = await tx.getRepository(sales_base_1.DraftReleaseGood).findOne({
256
288
  where: {
257
- domain,
289
+ domain: { id: domain.id },
258
290
  refNo: refNo || null,
259
291
  refNo2: refNo2 || null,
260
292
  refNo3: refNo3 || null,
@@ -268,7 +300,7 @@ async function checkExistingOrder(releaseGood, bizplace, context, tx) {
268
300
  detail: foundDraftReleaseGood.name
269
301
  });
270
302
  }
271
- const sellercraft = await tx.getRepository(integration_sellercraft_1.Sellercraft).findOne({ domain: bizplace.domain });
303
+ const sellercraft = await tx.getRepository(integration_sellercraft_1.Sellercraft).findOneBy({ domain: bizplace.domain });
272
304
  if (sellercraft) {
273
305
  const sellercraftCtrl = new sales_base_1.SellercraftController(tx, bizplace.domain, user);
274
306
  await sellercraftCtrl.checkExistingReleaseGood(sellercraft, releaseGood);
@@ -292,7 +324,7 @@ async function checkExistingOrder(releaseGood, bizplace, context, tx) {
292
324
  const refNo2 = releaseGood.refNo2;
293
325
  const foundSplittedReleaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
294
326
  where: {
295
- domain,
327
+ domain: { id: domain.id },
296
328
  refNo2,
297
329
  status: (0, typeorm_1.Not)((0, typeorm_1.In)([sales_base_1.ORDER_STATUS.CANCELLED, sales_base_1.ORDER_STATUS.PENDING_CANCEL]))
298
330
  },
@@ -324,7 +356,7 @@ async function createDraftOrder(releaseGood, orderProducts, context) {
324
356
  async function createReleaseGood(releaseGood, orderProducts, bizplace, context, tx) {
325
357
  try {
326
358
  const { domain, user } = context.state;
327
- const settingRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(setting_base_1.Setting)) || (0, typeorm_1.getRepository)(setting_base_1.Setting);
359
+ const settingRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(setting_base_1.Setting)) || (0, shell_1.getRepository)(setting_base_1.Setting);
328
360
  if (orderProducts.length <= 0) {
329
361
  throw new index_1.ValidationError({
330
362
  errorCode: 'ITEM_NOT_FOUND',
@@ -336,13 +368,60 @@ async function createReleaseGood(releaseGood, orderProducts, bizplace, context,
336
368
  // find RO number rule setting
337
369
  const roNoSetting = await settingRepo.findOne({
338
370
  where: {
339
- domain,
371
+ domain: { id: domain.id },
340
372
  name: sales_base_1.ORDER_NUMBER_SETTING_KEY.RO_NUMBER_RULE
341
373
  }
342
374
  });
343
- newReleaseGood = Object.assign(Object.assign({}, newReleaseGood), { name: roNoSetting
375
+ newReleaseGood = {
376
+ name: roNoSetting
344
377
  ? await (0, id_rule_base_1.generateId)({ domain, type: sales_base_1.ORDER_NUMBER_RULE_TYPE.RO_NUMBER, seed: {} })
345
- : sales_base_1.OrderNoGenerator.releaseGood(), domain: domain, bizplace: bizplace, collectionOrderNo: releaseGood.collectionOrderNo, courierOption: releaseGood.courierOption, exportOption: releaseGood.exportOption, ownTransport: releaseGood.ownTransport, packingOption: releaseGood.packingOption, marketplaceOrderStatus: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.marketplaceOrderStatus) || null, billingAddress: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.billingAddress) || null, deliveryAddress1: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress1) || null, deliveryAddress2: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress2) || null, deliveryAddress3: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress3) || null, deliveryAddress4: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress4) || null, deliveryAddress5: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress5) || null, attentionTo: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.attentionTo) || null, attentionCompany: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.attentionCompany) || null, city: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.city) || null, state: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.state) || null, postalCode: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.postalCode) || null, country: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.country) || null, phone1: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.phone1) || null, phone2: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.phone2) || null, email: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.email) || null, transporter: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.transporter, trackingNo: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.trackingNo, airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill, invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice, refNo: releaseGood.refNo, refNo2: releaseGood.refNo2 || null, refNo3: releaseGood.refNo3 || null, remark: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.remark) || null, releaseDate: releaseGood.releaseDate, truckNo: releaseGood.truckNo, type: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.type) ? releaseGood.type : 'b2b', status: sales_base_1.ORDER_STATUS.PENDING_WORKSHEET, storeName: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.storeName, storeId: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.storeId, routeId: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.routeId, stopId: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.stopId, noOfItems: orderProducts.length, creator: user, updater: user, acceptedBy: user, acceptedAt: new Date() });
378
+ : sales_base_1.OrderNoGenerator.releaseGood(),
379
+ domain: domain,
380
+ bizplace: bizplace,
381
+ collectionOrderNo: releaseGood.collectionOrderNo,
382
+ courierOption: releaseGood.courierOption,
383
+ exportOption: releaseGood.exportOption,
384
+ ownTransport: releaseGood.ownTransport,
385
+ packingOption: releaseGood.packingOption,
386
+ marketplaceOrderStatus: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.marketplaceOrderStatus) || null,
387
+ billingAddress: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.billingAddress) || null,
388
+ deliveryAddress1: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress1) || null,
389
+ deliveryAddress2: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress2) || null,
390
+ deliveryAddress3: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress3) || null,
391
+ deliveryAddress4: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress4) || null,
392
+ deliveryAddress5: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryAddress5) || null,
393
+ attentionTo: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.attentionTo) || null,
394
+ attentionCompany: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.attentionCompany) || null,
395
+ city: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.city) || null,
396
+ state: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.state) || null,
397
+ postalCode: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.postalCode) || null,
398
+ country: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.country) || null,
399
+ phone1: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.phone1) || null,
400
+ phone2: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.phone2) || null,
401
+ email: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.email) || null,
402
+ transporter: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.transporter,
403
+ trackingNo: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.trackingNo,
404
+ airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
405
+ invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
406
+ refNo: releaseGood.refNo,
407
+ refNo2: releaseGood.refNo2 || null,
408
+ refNo3: releaseGood.refNo3 || null,
409
+ remark: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.remark) || null,
410
+ releaseDate: releaseGood.releaseDate,
411
+ truckNo: releaseGood.truckNo,
412
+ type: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.type) ? releaseGood.type : 'b2b',
413
+ status: sales_base_1.ORDER_STATUS.PENDING_WORKSHEET,
414
+ storeName: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.storeName,
415
+ storeId: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.storeId,
416
+ routeId: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.routeId,
417
+ stopId: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.stopId,
418
+ packageId: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.packageId) || null,
419
+ noOfItems: orderProducts.length,
420
+ creator: user,
421
+ updater: user,
422
+ acceptedBy: user,
423
+ acceptedAt: new Date()
424
+ };
346
425
  let resultReleaseGood = await tx.getRepository(sales_base_1.ReleaseGood).save(newReleaseGood);
347
426
  let combinedOrderInventories = [];
348
427
  let savedOrderProducts = await Promise.all(orderProducts.map(async (orderProduct) => {
@@ -350,7 +429,7 @@ async function createReleaseGood(releaseGood, orderProducts, bizplace, context,
350
429
  orderProduct = Object.assign(new sales_base_1.OrderProduct(), Object.assign(Object.assign({}, orderProduct), { name: (0, uuid_1.v4)(), domain: domain, bizplace: bizplace, releaseGood: resultReleaseGood, type: sales_base_1.ORDER_TYPES.RELEASE_OF_GOODS, status: sales_base_1.ORDER_PRODUCT_STATUS.ASSIGNED }));
351
430
  let result = await tx.getRepository(sales_base_1.OrderProduct).save(orderProduct);
352
431
  for (let oiIdx = 0; oiIdx < orderInventories.length; oiIdx++) {
353
- let orderInventory = Object.assign(new sales_base_1.OrderInventory(), Object.assign(Object.assign({}, orderInventories[oiIdx]), { name: (0, uuid_1.v4)(), domain: domain, bizplace: bizplace, releaseGood: resultReleaseGood, type: sales_base_1.ORDER_TYPES.RELEASE_OF_GOODS, status: sales_base_1.ORDER_PRODUCT_STATUS.ASSIGNED }));
432
+ let orderInventory = Object.assign(new sales_base_1.OrderInventory(), Object.assign(Object.assign({}, orderInventories[oiIdx]), { name: (0, uuid_1.v4)(), domain: domain, bizplace: bizplace, releaseGood: resultReleaseGood, type: sales_base_1.ORDER_TYPES.RELEASE_OF_GOODS, status: sales_base_1.ORDER_INVENTORY_STATUS.PENDING_WORKSHEET }));
354
433
  await tx.getRepository(sales_base_1.OrderInventory).save(orderInventory);
355
434
  combinedOrderInventories.push({
356
435
  product: { name: orderInventory.product.name, sku: orderInventory.product.sku },
@@ -433,7 +512,7 @@ async function massageOrderItems(releaseGood, inputOrderProducts, context) {
433
512
  const refCode = inputOrderItem.refCode;
434
513
  const packingType = inputOrderItem.packingType;
435
514
  const packingSize = inputOrderItem.packingSize;
436
- const qb = (0, typeorm_1.getRepository)(product_base_1.ProductDetail)
515
+ const qb = (0, shell_1.getRepository)(product_base_1.ProductDetail)
437
516
  .createQueryBuilder('PD')
438
517
  .innerJoinAndSelect('PD.product', 'PROD')
439
518
  .where('PROD.bizplace_id = :bizplaceId', { bizplaceId: releaseGood.companyBizplace.id });
@@ -463,7 +542,7 @@ async function massageOrderItems(releaseGood, inputOrderProducts, context) {
463
542
  orderProducts.push(newOrderProduct);
464
543
  }
465
544
  if (!productDetail) {
466
- const qb = (0, typeorm_1.getRepository)(product_base_1.ProductBundle)
545
+ const qb = (0, shell_1.getRepository)(product_base_1.ProductBundle)
467
546
  .createQueryBuilder('PB')
468
547
  .innerJoinAndSelect('PB.productBundleSettings', 'PBS')
469
548
  .innerJoinAndSelect('PBS.productDetail', 'PBD')
@@ -588,37 +667,68 @@ async function assignToInventory(orderProducts, customerBizplace, context, tx) {
588
667
  for (let opIdx = 0; opIdx < orderProducts.length; opIdx++) {
589
668
  let orderProduct = orderProducts[opIdx];
590
669
  let assignedOrderInventories = [];
670
+ const pickingProductSetting = await tx.getRepository(setting_base_1.Setting).findOne({
671
+ where: { domain: { id: domain.id }, name: 'rule-for-picking-product' }
672
+ });
591
673
  for (let oiIdx = 0; oiIdx < orderProducts[opIdx].orderInventories.length; oiIdx++) {
592
674
  const orderInventory = orderProduct.orderInventories[oiIdx];
593
675
  let sortings = [];
594
676
  switch (orderInventory.product.pickingStrategy) {
595
677
  case 'LIFO':
596
678
  sortings.push({ name: 'iv.created_at', desc: true });
679
+ if (pickingProductSetting === null || pickingProductSetting === void 0 ? void 0 : pickingProductSetting.value) {
680
+ for (const [key, value] of Object.entries(JSON.parse(pickingProductSetting.value))) {
681
+ sortings.push({ name: `loc.${key}`, desc: value == 'DESC' ? true : false });
682
+ }
683
+ }
684
+ else {
685
+ sortings.push({ name: 'loc.name', desc: false }, { name: 'iv.created_at', desc: false });
686
+ }
597
687
  break;
598
688
  case 'FEFO':
599
- sortings.push({ name: 'iv.expiration_date', desc: false });
600
- sortings.push({ name: 'iv.created_at', desc: false });
689
+ sortings.push({ name: 'iv.expiration_date', desc: false }, { name: 'iv.created_at', desc: false });
690
+ if (pickingProductSetting === null || pickingProductSetting === void 0 ? void 0 : pickingProductSetting.value) {
691
+ for (const [key, value] of Object.entries(JSON.parse(pickingProductSetting.value))) {
692
+ sortings.push({ name: `loc.${key}`, desc: value == 'DESC' ? true : false });
693
+ }
694
+ }
695
+ else {
696
+ sortings.push({ name: 'loc.name', desc: false }, { name: 'iv.created_at', desc: false });
697
+ }
601
698
  break;
602
699
  case 'FMFO':
603
- sortings.push({ name: 'iv.manufacture_date', desc: false });
604
- sortings.push({ name: 'iv.created_at', desc: false });
700
+ sortings.push({ name: 'iv.manufacture_date', desc: false }, { name: 'iv.created_at', desc: false });
701
+ if (pickingProductSetting === null || pickingProductSetting === void 0 ? void 0 : pickingProductSetting.value) {
702
+ for (const [key, value] of Object.entries(JSON.parse(pickingProductSetting.value))) {
703
+ sortings.push({ name: `loc.${key}`, desc: value == 'DESC' ? true : false });
704
+ }
705
+ }
706
+ else {
707
+ sortings.push({ name: 'loc.name', desc: false }, { name: 'iv.created_at', desc: false });
708
+ }
605
709
  break;
606
710
  case 'LOCATION':
607
- const pickingProductSetting = await tx.getRepository(setting_base_1.Setting).findOne({
608
- where: { domain, name: 'rule-for-picking-product' }
609
- });
610
711
  if (pickingProductSetting === null || pickingProductSetting === void 0 ? void 0 : pickingProductSetting.value) {
611
712
  for (const [key, value] of Object.entries(JSON.parse(pickingProductSetting.value))) {
612
713
  sortings.push({ name: `loc.${key}`, desc: value == 'DESC' ? true : false });
613
714
  }
614
715
  }
615
716
  else {
616
- sortings.push({ name: 'loc.name', desc: true });
717
+ sortings.push({ name: 'loc.name', desc: false }, { name: 'iv.created_at', desc: false });
617
718
  }
618
719
  break;
619
720
  //Every other case includes 'FIFO' will be applicable for this case
620
721
  default:
621
722
  sortings.push({ name: 'iv.created_at', desc: false });
723
+ if (pickingProductSetting === null || pickingProductSetting === void 0 ? void 0 : pickingProductSetting.value) {
724
+ for (const [key, value] of Object.entries(JSON.parse(pickingProductSetting.value))) {
725
+ sortings.push({ name: `loc.${key}`, desc: value == 'DESC' ? true : false });
726
+ }
727
+ }
728
+ else {
729
+ sortings.push({ name: 'loc.name', desc: false });
730
+ sortings.push({ name: 'iv.pallet_id', desc: false });
731
+ }
622
732
  break;
623
733
  }
624
734
  let queryFilters = [];
@@ -701,7 +811,6 @@ async function assignToInventory(orderProducts, customerBizplace, context, tx) {
701
811
  warehouse_base_1.LOCATION_TYPE.RESERVE,
702
812
  ...queryStrings.values
703
813
  ]);
704
- // let data = await qb.getMany()
705
814
  let totalAssigned = updatedInventories[0].reduce((acc, inv) => {
706
815
  return acc + inv.reserve_qty;
707
816
  }, 0);