@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
@@ -1,20 +1,22 @@
1
1
  /** Customer list to inform when there are changes */
2
- /** 1. Sweetmag */
3
- /** 2. Beidzia */
2
+ /** 1. Bridzia */
3
+ /** 2. Sweetmag */
4
4
 
5
5
  import gql from 'graphql-tag'
6
+ import { EntityManager, getConnection } from 'typeorm'
6
7
 
7
8
  import { restfulApiRouter as router } from '@things-factory/api'
8
- import { EntityManager, getConnection } from 'typeorm'
9
+ import { createPayloadLog, PayloadType } from '@things-factory/integration-base'
9
10
  import { MarketplaceOrder } from '@things-factory/marketplace-base'
10
11
 
11
12
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
12
13
  import { storeMiddleware } from '../../../../middlewares/store-middleware'
13
14
 
14
- const debug = require('debug')('things-factory:operato-hub:restful-api:v1:add-marketplace-order')
15
+ const debug = require('debug')('things-factory:operato-hub:restful-api:unstable:add-marketplace-order')
16
+ const apiVersion = 'v1'
15
17
 
16
18
  router.post(
17
- '/v1/warehouse/:storeId/add-marketplace-order',
19
+ `/${apiVersion}/warehouse/:storeId/add-marketplace-order`,
18
20
  businessMiddleware,
19
21
  storeMiddleware,
20
22
  async (context, next) => {
@@ -120,6 +122,16 @@ router.post(
120
122
  } as any)
121
123
  ).data
122
124
  }
125
+
126
+ createPayloadLog(
127
+ marketplaceStore.id,
128
+ `/${apiVersion}/warehouse/:storeId/add-marketplace-order`,
129
+ bodyReq,
130
+ context.body.result,
131
+ context,
132
+ PayloadType.INGESTION,
133
+ 'hub-api'
134
+ )
123
135
  })
124
136
  }
125
137
  )
@@ -29,6 +29,8 @@ router.post(
29
29
  await checkMandatoryKey(context, bodyReq)
30
30
  debug('post:/add-product request.body', bodyReq)
31
31
 
32
+ let products = checkProductDetails(bodyReq)
33
+
32
34
  context.body = {
33
35
  result: (
34
36
  await client.mutate({
@@ -39,7 +41,7 @@ router.post(
39
41
  }
40
42
  }
41
43
  `,
42
- variables: { products: bodyReq },
44
+ variables: { products },
43
45
  context: {
44
46
  ...context,
45
47
  state: {
@@ -66,23 +68,45 @@ export async function checkMandatoryKey(context, params) {
66
68
 
67
69
  if (param?.productDetails) {
68
70
  let noSubParams = []
69
- param.productDetails.forEach((subParam, key) => {
70
- if (!subParam.gtin) noSubParams.push('gtin')
71
-
72
- if (!subParam.packingType) noSubParams.push('packingType')
73
-
74
- if (!subParam.packingSize) noSubParams.push('packingSize')
75
-
76
- if (!subParam.uom) noSubParams.push('uom')
77
-
78
- if (!subParam.uomValue) noSubParams.push('uomValue')
79
-
80
- if (noSubParams?.length)
81
- context.throw(400, context.t('error.required param x not found', { x: `${noSubParams.join(', ')}` }))
82
- })
71
+ if (param.productDetails.length == 0) {
72
+ context.throw(
73
+ 400,
74
+ context.t('error.required param {x} not found in productDetails', {
75
+ x: 'gtin, packingType, packingSize, uom, uomValue'
76
+ })
77
+ )
78
+ } else {
79
+ param.productDetails.forEach((subParam, key) => {
80
+ if (!subParam.gtin) noSubParams.push('gtin')
81
+
82
+ if (!subParam.packingType) noSubParams.push('packingType')
83
+
84
+ if (!subParam.packingSize) noSubParams.push('packingSize')
85
+
86
+ if (!subParam.uom) noSubParams.push('uom')
87
+
88
+ if (!subParam.uomValue) noSubParams.push('uomValue')
89
+
90
+ if (noSubParams?.length)
91
+ context.throw(
92
+ 400,
93
+ context.t('error.required param {x} not found in productDetails', { x: `${noSubParams.join(', ')}` })
94
+ )
95
+ })
96
+ }
83
97
  }
84
98
 
85
99
  if (noparams?.length)
86
- context.throw(400, context.t('error.required param x not found', { x: `${noparams.join(', ')}` }))
100
+ context.throw(400, context.t('error.required param {x} not found', { x: `${noparams.join(', ')}` }))
87
101
  })
88
102
  }
103
+
104
+ function checkProductDetails(params) {
105
+ params.forEach(param => {
106
+ if (!param?.productDetails.some(pd => pd.isDefault)) {
107
+ param.productDetails[0].isDefault = true
108
+ }
109
+ })
110
+
111
+ return params
112
+ }
@@ -46,7 +46,7 @@ router.post(
46
46
 
47
47
  let locationSortingRules = []
48
48
  const inventoryAssignmentSetting: Setting = await tx.getRepository(Setting).findOne({
49
- where: { domain, name: 'rule-for-inventory-assignment' }
49
+ where: { domain: { id: domain.id }, name: 'rule-for-inventory-assignment' }
50
50
  })
51
51
 
52
52
  if (inventoryAssignmentSetting) {
@@ -56,7 +56,7 @@ router.post(
56
56
  }
57
57
  } else {
58
58
  const pickingProductSetting: Setting = await tx.getRepository(Setting).findOne({
59
- where: { domain, name: 'rule-for-picking-product' }
59
+ where: { domain: { id: domain.id }, name: 'rule-for-picking-product' }
60
60
  })
61
61
  if (pickingProductSetting) {
62
62
  let locationSetting = JSON.parse(pickingProductSetting.value)
@@ -212,11 +212,11 @@ router.post(
212
212
  break
213
213
 
214
214
  case 'FEFO':
215
- sortings.push({ name: 'expiration_date', desc: false })
215
+ sortings.push({ name: 'expiration_date', desc: false }, { name: 'created_at', desc: false })
216
216
  break
217
217
 
218
218
  case 'FMFO':
219
- sortings.push({ name: 'manufacture_date', desc: false })
219
+ sortings.push({ name: 'manufacture_date', desc: false }, { name: 'created_at', desc: false })
220
220
  break
221
221
  }
222
222
 
@@ -379,6 +379,7 @@ router.post(
379
379
 
380
380
  case 'FEFO':
381
381
  qb.orderBy('"iv"."expiration_date"', 'ASC')
382
+ qb.orderBy('"iv"."created_at"', 'ASC')
382
383
  if (locationSortingRules?.length > 0) {
383
384
  locationSortingRules.forEach((rule: { name: string; desc: boolean }, idx: number) => {
384
385
  qb.addOrderBy(`loc.${rule.name}`, rule.desc ? 'DESC' : 'ASC')
@@ -388,6 +389,7 @@ router.post(
388
389
 
389
390
  case 'FMFO':
390
391
  qb.orderBy('"iv"."manufacture_date"', 'ASC')
392
+ qb.orderBy('"iv"."created_at"', 'ASC')
391
393
  if (locationSortingRules?.length > 0) {
392
394
  locationSortingRules.forEach((rule: { name: string; desc: boolean }, idx: number) => {
393
395
  qb.addOrderBy(`loc.${rule.name}`, rule.desc ? 'DESC' : 'ASC')
@@ -727,7 +729,8 @@ router.post(
727
729
  bodyReq,
728
730
  context.body,
729
731
  context,
730
- PayloadType.INGESTION
732
+ PayloadType.INGESTION,
733
+ 'hub-api'
731
734
  )
732
735
  } catch (error) {
733
736
  createPayloadLog(
@@ -736,7 +739,8 @@ router.post(
736
739
  bodyReq,
737
740
  error,
738
741
  context,
739
- PayloadType.INGESTION
742
+ PayloadType.INGESTION,
743
+ 'hub-api'
740
744
  )
741
745
  throw error
742
746
  }
@@ -1,9 +1,9 @@
1
1
  import gql from 'graphql-tag'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { restfulApiRouter as router } from '@things-factory/api'
5
4
  import { Bizplace } from '@things-factory/biz-base'
6
- import { ReleaseGood, DraftReleaseGood } from '@things-factory/sales-base'
5
+ import { DraftReleaseGood, ReleaseGood } from '@things-factory/sales-base'
6
+ import { getRepository } from '@things-factory/shell'
7
7
 
8
8
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
9
9
  import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
@@ -74,6 +74,33 @@ router.get(
74
74
  refBy
75
75
  path
76
76
  }
77
+ orderInventories {
78
+ batchId
79
+ batchIdRef
80
+ packingType
81
+ packingSize
82
+ uom
83
+ releaseQty
84
+ releaseUomValue
85
+ product {
86
+ sku
87
+ name
88
+ description
89
+ brand
90
+ brandSku
91
+ gtin
92
+ type
93
+ }
94
+ orderToteItems {
95
+ qty
96
+ orderTote {
97
+ name
98
+ orderToteSeals {
99
+ name
100
+ }
101
+ }
102
+ }
103
+ }
77
104
  releaseGood {
78
105
  name
79
106
  description
@@ -84,7 +111,6 @@ router.get(
84
111
  ownTransport
85
112
  crossDocking
86
113
  status
87
- releaseDateTime
88
114
  releaseDate
89
115
  remark
90
116
  courierOption
@@ -118,16 +144,6 @@ router.get(
118
144
  handoverType
119
145
  dropoffAddress
120
146
  noOfItems
121
- orderProducts {
122
- id
123
- type
124
- batchId
125
- packingType
126
- packingSize
127
- releaseQty
128
- releaseUomValue
129
- status
130
- }
131
147
  }
132
148
  createdAt
133
149
  updatedAt
@@ -67,8 +67,15 @@ router.get(
67
67
  batchId
68
68
  packingType
69
69
  packingSize
70
- releaseQty
71
- releaseUomValue
70
+ packQty
71
+ actualPackQty
72
+ palletQty
73
+ actualPalletQty
74
+ uom
75
+ uomValue
76
+ totalUomValue
77
+ issue
78
+ remark
72
79
  status
73
80
  product {
74
81
  id
@@ -1,8 +1,8 @@
1
1
  import gql from 'graphql-tag'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { restfulApiRouter as router } from '@things-factory/api'
5
4
  import { Product } from '@things-factory/product-base'
5
+ import { getRepository } from '@things-factory/shell'
6
6
 
7
7
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
8
8
  import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
@@ -1,12 +1,14 @@
1
+ import { In } from 'typeorm'
2
+
1
3
  import { restfulApiRouter as router } from '@things-factory/api'
2
4
  import { Bizplace, Partner } from '@things-factory/biz-base'
3
- import { getRepository, In } from 'typeorm'
5
+ import { getRepository } from '@things-factory/shell'
4
6
 
5
7
  const debug = require('debug')('things-factory:operato-hub:restful-api:v1:get-partners')
6
8
 
7
9
  router.get('/v1/partners/:bizplaceId', async (context, next) => {
8
10
  const { bizplaceId } = context.params
9
- const bizplace: Bizplace = await getRepository(Bizplace).findOne(bizplaceId)
11
+ const bizplace: Bizplace = await getRepository(Bizplace).findOneBy({ id: bizplaceId })
10
12
  const partners: Partner[] = await getRepository(Partner).find({
11
13
  where: { partnerBizplace: bizplace },
12
14
  relations: ['domainBizplace']
@@ -40,6 +40,7 @@ router.get(
40
40
  brandSku
41
41
  isRequiredCheckExpiry
42
42
  expirationPeriod
43
+ pickingStrategy
43
44
  auxUnit1
44
45
  auxValue1
45
46
  auxUnit2
@@ -1,6 +1,7 @@
1
1
  import { restfulApiRouter as router } from '@things-factory/api'
2
2
  import { Bizplace } from '@things-factory/biz-base'
3
- import { getRepository } from 'typeorm'
3
+ import { getRepository } from '@things-factory/shell'
4
+
4
5
  import { getBizplaceAccessibleWarehouses } from '../../../../utils'
5
6
 
6
7
  const debug = require('debug')('things-factory:operato-hub:restful-api:v1:get-partners')
@@ -8,7 +9,7 @@ const debug = require('debug')('things-factory:operato-hub:restful-api:v1:get-pa
8
9
  router.get('/v1/get-warehouses/:bizplaceId', async (context, next) => {
9
10
  try {
10
11
  const { bizplaceId } = context.params
11
- const bizplace: Bizplace = await getRepository(Bizplace).findOne(bizplaceId)
12
+ const bizplace: Bizplace = await getRepository(Bizplace).findOneBy({ id: bizplaceId })
12
13
  context.body = {
13
14
  result: await getBizplaceAccessibleWarehouses(bizplace)
14
15
  }
@@ -1,8 +1,8 @@
1
1
  import gql from 'graphql-tag'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { restfulApiRouter as router } from '@things-factory/api'
5
4
  import { Bizplace } from '@things-factory/biz-base'
5
+ import { getRepository } from '@things-factory/shell'
6
6
 
7
7
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
8
8
  import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
@@ -1,9 +1,10 @@
1
1
  import gql from 'graphql-tag'
2
- import { getRepository, In } from 'typeorm'
2
+ import { In } from 'typeorm'
3
3
 
4
4
  import { restfulApiRouter as router } from '@things-factory/api'
5
5
  import { Bizplace, ContactPoint, getCompanyBizplace } from '@things-factory/biz-base'
6
6
  import { Product, ProductDetail } from '@things-factory/product-base'
7
+ import { getRepository } from '@things-factory/shell'
7
8
 
8
9
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
9
10
  import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
@@ -90,8 +91,8 @@ router.post(
90
91
  const supplierInfo = bodyReq.supplier
91
92
  const foundSupplier: ContactPoint = await getRepository(ContactPoint).findOne({
92
93
  where: {
93
- domain,
94
- bizplace: warehouseId,
94
+ dodomain: { id: domain.id },
95
+ bizplace: { id: warehouseId },
95
96
  name: supplierInfo.name,
96
97
  companyName: supplierInfo.companyName,
97
98
  email: supplierInfo.email,
@@ -1,20 +1,22 @@
1
1
  /** Customer list to inform when there are changes */
2
- /** 1. Sweetmag */
3
- /** 2. Bridzia */
2
+ /** 1. Bridzia */
3
+ /** 2. Sweetmag */
4
4
 
5
5
  import gql from 'graphql-tag'
6
+ import { EntityManager, getConnection } from 'typeorm'
6
7
 
7
8
  import { restfulApiRouter as router } from '@things-factory/api'
8
- import { EntityManager, getConnection } from 'typeorm'
9
+ import { createPayloadLog, PayloadType } from '@things-factory/integration-base'
9
10
  import { MarketplaceOrder } from '@things-factory/marketplace-base'
10
11
 
11
12
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
12
13
  import { storeMiddleware } from '../../../../middlewares/store-middleware'
13
14
 
14
- const debug = require('debug')('things-factory:operato-hub:restful-api:v2:add-marketplace-order')
15
+ const debug = require('debug')('things-factory:operato-hub:restful-api:unstable:add-marketplace-order')
16
+ const apiVersion = 'v2'
15
17
 
16
18
  router.post(
17
- '/v2/warehouse/:storeId/add-marketplace-order',
19
+ `/${apiVersion}/warehouse/:storeId/add-marketplace-order`,
18
20
  businessMiddleware,
19
21
  storeMiddleware,
20
22
  async (context, next) => {
@@ -120,6 +122,16 @@ router.post(
120
122
  } as any)
121
123
  ).data
122
124
  }
125
+
126
+ createPayloadLog(
127
+ marketplaceStore.id,
128
+ `/${apiVersion}/warehouse/:storeId/add-marketplace-order`,
129
+ bodyReq,
130
+ context.body.result,
131
+ context,
132
+ PayloadType.INGESTION,
133
+ 'hub-api'
134
+ )
123
135
  })
124
136
  }
125
137
  )
@@ -29,6 +29,8 @@ router.post(
29
29
  await checkMandatoryKey(context, bodyReq)
30
30
  debug('post:/add-product request.body', bodyReq)
31
31
 
32
+ let products = checkProductDetails(bodyReq)
33
+
32
34
  context.body = {
33
35
  result: (
34
36
  await client.mutate({
@@ -39,7 +41,7 @@ router.post(
39
41
  }
40
42
  }
41
43
  `,
42
- variables: { products: bodyReq },
44
+ variables: { products },
43
45
  context: {
44
46
  ...context,
45
47
  state: {
@@ -66,23 +68,45 @@ export async function checkMandatoryKey(context, params) {
66
68
 
67
69
  if (param?.productDetails) {
68
70
  let noSubParams = []
69
- param.productDetails.forEach((subParam, key) => {
70
- if (!subParam.gtin) noSubParams.push('gtin')
71
-
72
- if (!subParam.packingType) noSubParams.push('packingType')
73
-
74
- if (!subParam.packingSize) noSubParams.push('packingSize')
75
-
76
- if (!subParam.uom) noSubParams.push('uom')
77
-
78
- if (!subParam.uomValue) noSubParams.push('uomValue')
79
-
80
- if (noSubParams?.length)
81
- context.throw(400, context.t('error.required param x not found', { x: `${noSubParams.join(', ')}` }))
82
- })
71
+ if (param.productDetails.length == 0) {
72
+ context.throw(
73
+ 400,
74
+ context.t('error.required param {x} not found in productDetails', {
75
+ x: 'gtin, packingType, packingSize, uom, uomValue'
76
+ })
77
+ )
78
+ } else {
79
+ param.productDetails.forEach((subParam, key) => {
80
+ if (!subParam.gtin) noSubParams.push('gtin')
81
+
82
+ if (!subParam.packingType) noSubParams.push('packingType')
83
+
84
+ if (!subParam.packingSize) noSubParams.push('packingSize')
85
+
86
+ if (!subParam.uom) noSubParams.push('uom')
87
+
88
+ if (!subParam.uomValue) noSubParams.push('uomValue')
89
+
90
+ if (noSubParams?.length)
91
+ context.throw(
92
+ 400,
93
+ context.t('error.required param {x} not found in productDetails', { x: `${noSubParams.join(', ')}` })
94
+ )
95
+ })
96
+ }
83
97
  }
84
98
 
85
99
  if (noparams?.length)
86
- context.throw(400, context.t('error.required param x not found', { x: `${noparams.join(', ')}` }))
100
+ context.throw(400, context.t('error.required param {x} not found', { x: `${noparams.join(', ')}` }))
87
101
  })
88
102
  }
103
+
104
+ function checkProductDetails(params) {
105
+ params.forEach(param => {
106
+ if (!param?.productDetails.some(pd => pd.isDefault)) {
107
+ param.productDetails[0].isDefault = true
108
+ }
109
+ })
110
+
111
+ return params
112
+ }
@@ -46,7 +46,7 @@ router.post(
46
46
 
47
47
  let locationSortingRules = []
48
48
  const inventoryAssignmentSetting: Setting = await tx.getRepository(Setting).findOne({
49
- where: { domain, name: 'rule-for-inventory-assignment' }
49
+ where: { domain: { id: domain.id }, name: 'rule-for-inventory-assignment' }
50
50
  })
51
51
 
52
52
  if (inventoryAssignmentSetting) {
@@ -56,7 +56,7 @@ router.post(
56
56
  }
57
57
  } else {
58
58
  const pickingProductSetting: Setting = await tx.getRepository(Setting).findOne({
59
- where: { domain, name: 'rule-for-picking-product' }
59
+ where: { domain: { id: domain.id }, name: 'rule-for-picking-product' }
60
60
  })
61
61
  if (pickingProductSetting) {
62
62
  let locationSetting = JSON.parse(pickingProductSetting.value)
@@ -212,11 +212,11 @@ router.post(
212
212
  break
213
213
 
214
214
  case 'FEFO':
215
- sortings.push({ name: 'expiration_date', desc: false })
215
+ sortings.push({ name: 'expiration_date', desc: false }, { name: 'created_at', desc: false })
216
216
  break
217
217
 
218
218
  case 'FMFO':
219
- sortings.push({ name: 'manufacture_date', desc: false })
219
+ sortings.push({ name: 'manufacture_date', desc: false }, { name: 'created_at', desc: false })
220
220
  break
221
221
  }
222
222
 
@@ -379,6 +379,7 @@ router.post(
379
379
 
380
380
  case 'FEFO':
381
381
  qb.orderBy('"iv"."expiration_date"', 'ASC')
382
+ qb.orderBy('"iv"."created_at"', 'ASC')
382
383
  if (locationSortingRules?.length > 0) {
383
384
  locationSortingRules.forEach((rule: { name: string; desc: boolean }, idx: number) => {
384
385
  qb.addOrderBy(`loc.${rule.name}`, rule.desc ? 'DESC' : 'ASC')
@@ -388,6 +389,7 @@ router.post(
388
389
 
389
390
  case 'FMFO':
390
391
  qb.orderBy('"iv"."manufacture_date"', 'ASC')
392
+ qb.orderBy('"iv"."created_at"', 'ASC')
391
393
  if (locationSortingRules?.length > 0) {
392
394
  locationSortingRules.forEach((rule: { name: string; desc: boolean }, idx: number) => {
393
395
  qb.addOrderBy(`loc.${rule.name}`, rule.desc ? 'DESC' : 'ASC')
@@ -727,7 +729,8 @@ router.post(
727
729
  bodyReq,
728
730
  context.body,
729
731
  context,
730
- PayloadType.INGESTION
732
+ PayloadType.INGESTION,
733
+ 'hub-api'
731
734
  )
732
735
  } catch (error) {
733
736
  createPayloadLog(
@@ -736,7 +739,8 @@ router.post(
736
739
  bodyReq,
737
740
  error,
738
741
  context,
739
- PayloadType.INGESTION
742
+ PayloadType.INGESTION,
743
+ 'hub-api'
740
744
  )
741
745
  throw error
742
746
  }
@@ -1,9 +1,9 @@
1
1
  import gql from 'graphql-tag'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { restfulApiRouter as router } from '@things-factory/api'
5
4
  import { Bizplace } from '@things-factory/biz-base'
6
- import { ReleaseGood, DraftReleaseGood } from '@things-factory/sales-base'
5
+ import { DraftReleaseGood, ReleaseGood } from '@things-factory/sales-base'
6
+ import { getRepository } from '@things-factory/shell'
7
7
 
8
8
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
9
9
  import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
@@ -74,6 +74,33 @@ router.get(
74
74
  refBy
75
75
  path
76
76
  }
77
+ orderInventories {
78
+ batchId
79
+ batchIdRef
80
+ packingType
81
+ packingSize
82
+ uom
83
+ releaseQty
84
+ releaseUomValue
85
+ product {
86
+ sku
87
+ name
88
+ description
89
+ brand
90
+ brandSku
91
+ gtin
92
+ type
93
+ }
94
+ orderToteItems {
95
+ qty
96
+ orderTote {
97
+ name
98
+ orderToteSeals {
99
+ name
100
+ }
101
+ }
102
+ }
103
+ }
77
104
  releaseGood {
78
105
  name
79
106
  description
@@ -84,7 +111,6 @@ router.get(
84
111
  ownTransport
85
112
  crossDocking
86
113
  status
87
- releaseDateTime
88
114
  releaseDate
89
115
  remark
90
116
  courierOption
@@ -118,16 +144,6 @@ router.get(
118
144
  handoverType
119
145
  dropoffAddress
120
146
  noOfItems
121
- orderProducts {
122
- id
123
- type
124
- batchId
125
- packingType
126
- packingSize
127
- releaseQty
128
- releaseUomValue
129
- status
130
- }
131
147
  }
132
148
  createdAt
133
149
  updatedAt
@@ -67,8 +67,15 @@ router.get(
67
67
  batchId
68
68
  packingType
69
69
  packingSize
70
- releaseQty
71
- releaseUomValue
70
+ packQty
71
+ actualPackQty
72
+ palletQty
73
+ actualPalletQty
74
+ uom
75
+ uomValue
76
+ totalUomValue
77
+ issue
78
+ remark
72
79
  status
73
80
  product {
74
81
  id
@@ -1,8 +1,8 @@
1
1
  import gql from 'graphql-tag'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { restfulApiRouter as router } from '@things-factory/api'
5
4
  import { Product } from '@things-factory/product-base'
5
+ import { getRepository } from '@things-factory/shell'
6
6
 
7
7
  import { businessMiddleware } from '../../../../middlewares/business-middleware'
8
8
  import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'