@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.
- package/dist-server/controllers/bizplace-initializer/dataset/codes.js +9 -0
- package/dist-server/controllers/bizplace-initializer/dataset/codes.js.map +1 -1
- package/dist-server/controllers/bizplace-initializer/dataset/settings.js +5 -0
- package/dist-server/controllers/bizplace-initializer/dataset/settings.js.map +1 -1
- package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js +3 -3
- package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js.map +1 -1
- package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js +2 -2
- package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js.map +1 -1
- package/dist-server/controllers/bizplace-initializer/menus.js +2 -2
- package/dist-server/controllers/bizplace-initializer/menus.js.map +1 -1
- package/dist-server/controllers/company-initializer/business-register.js +6 -7
- package/dist-server/controllers/company-initializer/business-register.js.map +1 -1
- package/dist-server/controllers/company-initializer/generate-company-roles.js +4 -4
- package/dist-server/controllers/company-initializer/generate-company-roles.js.map +1 -1
- package/dist-server/controllers/invitation.js +9 -9
- package/dist-server/controllers/invitation.js.map +1 -1
- package/dist-server/controllers/utils/save-invitation-token.js +2 -2
- package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
- package/dist-server/graphql/resolvers/generators/generate-bizplace.js.map +1 -1
- package/dist-server/graphql/resolvers/generators/generate-company.js +4 -3
- package/dist-server/graphql/resolvers/generators/generate-company.js.map +1 -1
- package/dist-server/graphql/resolvers/generators/update-domain-extType.js +1 -1
- package/dist-server/graphql/resolvers/generators/update-domain-extType.js.map +1 -1
- package/dist-server/graphql/resolvers/invitations/partner-invitation.js +6 -6
- package/dist-server/graphql/resolvers/invitations/partner-invitation.js.map +1 -1
- package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js +5 -2
- package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js.map +1 -1
- package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js +149 -0
- package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js.map +1 -0
- package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js +58 -0
- package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js.map +1 -0
- package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js +3 -3
- package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js.map +1 -1
- package/dist-server/graphql/resolvers/synchronization/index.js +6 -2
- package/dist-server/graphql/resolvers/synchronization/index.js.map +1 -1
- package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js +68 -0
- package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js.map +1 -0
- package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js +35 -0
- package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js.map +1 -0
- package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js +1 -1
- package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js.map +1 -1
- package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js +1 -1
- package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js.map +1 -1
- package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js +4 -2
- package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js.map +1 -1
- package/dist-server/graphql/types/synchronization/index.js +4 -0
- package/dist-server/graphql/types/synchronization/index.js.map +1 -1
- package/dist-server/index.js +5 -5
- package/dist-server/index.js.map +1 -1
- package/dist-server/middlewares/business-middleware.js +2 -3
- package/dist-server/middlewares/business-middleware.js.map +1 -1
- package/dist-server/middlewares/store-middleware.js +2 -2
- package/dist-server/middlewares/store-middleware.js.map +1 -1
- package/dist-server/middlewares/warehouse-middleware.js +3 -2
- package/dist-server/middlewares/warehouse-middleware.js.map +1 -1
- package/dist-server/migrations/1597668478399-SeedBusinessDomain.js +2 -3
- package/dist-server/migrations/1597668478399-SeedBusinessDomain.js.map +1 -1
- package/dist-server/migrations/1597668478401-SeedBusinessRoles.js +2 -2
- package/dist-server/migrations/1597668478401-SeedBusinessRoles.js.map +1 -1
- package/dist-server/migrations/1608009991065-SeedUser.js +5 -6
- package/dist-server/migrations/1608009991065-SeedUser.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js +2 -1
- package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js +5 -4
- package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js +5 -2
- package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/add-products.js +32 -16
- package/dist-server/routers/api/restful-apis/unstable/add-products.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +149 -40
- package/dist-server/routers/api/restful-apis/unstable/add-release-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js +4 -4
- package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js +27 -11
- package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js +9 -2
- package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js +2 -2
- package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/get-partners.js +5 -4
- package/dist-server/routers/api/restful-apis/unstable/get-partners.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/get-products.js +1 -0
- package/dist-server/routers/api/restful-apis/unstable/get-products.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js +2 -2
- package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js.map +1 -1
- package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js +2 -2
- package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js +6 -5
- package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js +8 -5
- package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/add-products.js +32 -16
- package/dist-server/routers/api/restful-apis/v1/add-products.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/add-release-order.js +8 -6
- package/dist-server/routers/api/restful-apis/v1/add-release-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js +4 -4
- package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +27 -11
- package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +9 -2
- package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +2 -2
- package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/get-partners.js +5 -4
- package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/get-products.js +1 -0
- package/dist-server/routers/api/restful-apis/v1/get-products.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +2 -2
- package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js +2 -2
- package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js +6 -5
- package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js +8 -5
- package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/add-products.js +32 -16
- package/dist-server/routers/api/restful-apis/v2/add-products.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/add-release-order.js +8 -6
- package/dist-server/routers/api/restful-apis/v2/add-release-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js +4 -4
- package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js +27 -11
- package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js +9 -2
- package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js +2 -2
- package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/get-partners.js +5 -4
- package/dist-server/routers/api/restful-apis/v2/get-partners.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/get-products.js +1 -0
- package/dist-server/routers/api/restful-apis/v2/get-products.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/get-warehouses.js +2 -2
- package/dist-server/routers/api/restful-apis/v2/get-warehouses.js.map +1 -1
- package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js +2 -2
- package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js.map +1 -1
- package/dist-server/routers/auth-invitation-router.js +2 -2
- package/dist-server/routers/auth-invitation-router.js.map +1 -1
- package/dist-server/routers/business/bizplace-register-router.js +3 -3
- package/dist-server/routers/business/bizplace-register-router.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/get-warehouses.js +15 -11
- package/dist-server/utils/get-warehouses.js.map +1 -1
- package/openapi/unstable/product.yaml +9 -3
- package/openapi/v1/product.yaml +9 -3
- package/openapi/v2/product.yaml +9 -3
- package/package.json +47 -47
- package/server/controllers/bizplace-initializer/dataset/codes.ts +9 -0
- package/server/controllers/bizplace-initializer/dataset/settings.ts +5 -0
- package/server/controllers/bizplace-initializer/generate-bizplace-domain-roles.ts +4 -2
- package/server/controllers/bizplace-initializer/generate-bizplace-domain.ts +4 -3
- package/server/controllers/bizplace-initializer/menus.ts +4 -2
- package/server/controllers/company-initializer/business-register.ts +5 -3
- package/server/controllers/company-initializer/generate-company-roles.ts +4 -3
- package/server/controllers/invitation.ts +11 -7
- package/server/controllers/utils/save-invitation-token.ts +1 -1
- package/server/graphql/resolvers/generators/generate-bizplace.ts +1 -1
- package/server/graphql/resolvers/generators/generate-company.ts +5 -4
- package/server/graphql/resolvers/generators/update-domain-extType.ts +7 -5
- package/server/graphql/resolvers/invitations/partner-invitation.ts +5 -5
- package/server/graphql/resolvers/oauth2/company-roles-by-scope.ts +8 -6
- package/server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.ts +180 -0
- package/server/graphql/resolvers/synchronization/create-dat-shipments.ts +64 -0
- package/server/graphql/resolvers/synchronization/fetch-sync-products.ts +3 -2
- package/server/graphql/resolvers/synchronization/index.ts +10 -2
- package/server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.ts +91 -0
- package/server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.ts +39 -0
- package/server/graphql/resolvers/synchronization/sync-products-from-account.ts +4 -4
- package/server/graphql/resolvers/synchronization/sync-products-to-account.ts +4 -4
- package/server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts +19 -12
- package/server/graphql/types/synchronization/index.ts +4 -0
- package/server/index.ts +7 -7
- package/server/middlewares/business-middleware.ts +1 -2
- package/server/middlewares/store-middleware.ts +1 -1
- package/server/middlewares/warehouse-middleware.ts +3 -2
- package/server/migrations/1597668478399-SeedBusinessDomain.ts +3 -2
- package/server/migrations/1597668478401-SeedBusinessRoles.ts +2 -2
- package/server/migrations/1608009991065-SeedUser.ts +5 -3
- package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +2 -1
- package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +3 -2
- package/server/routers/api/restful-apis/unstable/add-marketplace-order.ts +13 -2
- package/server/routers/api/restful-apis/unstable/add-products.ts +40 -16
- package/server/routers/api/restful-apis/unstable/add-release-order.ts +98 -48
- package/server/routers/api/restful-apis/unstable/cancel-release-order.ts +2 -2
- package/server/routers/api/restful-apis/unstable/get-delivery-orders.ts +27 -11
- package/server/routers/api/restful-apis/unstable/get-goods-received-notes.ts +9 -2
- package/server/routers/api/restful-apis/unstable/get-onhand-inventories.ts +1 -1
- package/server/routers/api/restful-apis/unstable/get-partners.ts +4 -2
- package/server/routers/api/restful-apis/unstable/get-products.ts +1 -0
- package/server/routers/api/restful-apis/unstable/get-warehouses.ts +3 -2
- package/server/routers/api/restful-apis/unstable/update-release-order-details.ts +1 -1
- package/server/routers/api/restful-apis/v1/add-inbound-order.ts +4 -3
- package/server/routers/api/restful-apis/v1/add-marketplace-order.ts +17 -5
- package/server/routers/api/restful-apis/v1/add-products.ts +40 -16
- package/server/routers/api/restful-apis/v1/add-release-order.ts +10 -6
- package/server/routers/api/restful-apis/v1/cancel-release-order.ts +2 -2
- package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +27 -11
- package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +9 -2
- package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +1 -1
- package/server/routers/api/restful-apis/v1/get-partners.ts +4 -2
- package/server/routers/api/restful-apis/v1/get-products.ts +1 -0
- package/server/routers/api/restful-apis/v1/get-warehouses.ts +3 -2
- package/server/routers/api/restful-apis/v1/update-release-order-details.ts +1 -1
- package/server/routers/api/restful-apis/v2/add-inbound-order.ts +4 -3
- package/server/routers/api/restful-apis/v2/add-marketplace-order.ts +17 -5
- package/server/routers/api/restful-apis/v2/add-products.ts +40 -16
- package/server/routers/api/restful-apis/v2/add-release-order.ts +10 -6
- package/server/routers/api/restful-apis/v2/cancel-release-order.ts +2 -2
- package/server/routers/api/restful-apis/v2/get-delivery-orders.ts +27 -11
- package/server/routers/api/restful-apis/v2/get-goods-received-notes.ts +9 -2
- package/server/routers/api/restful-apis/v2/get-onhand-inventories.ts +1 -1
- package/server/routers/api/restful-apis/v2/get-partners.ts +4 -2
- package/server/routers/api/restful-apis/v2/get-products.ts +1 -0
- package/server/routers/api/restful-apis/v2/get-warehouses.ts +3 -2
- package/server/routers/api/restful-apis/v2/update-release-order-details.ts +1 -1
- package/server/routers/auth-invitation-router.ts +2 -2
- package/server/routers/business/bizplace-register-router.ts +3 -1
- package/server/utils/get-warehouses.ts +46 -36
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
/** Customer list to inform when there are changes */
|
|
2
|
-
/** 1.
|
|
3
|
-
/** 2.
|
|
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 {
|
|
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:
|
|
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
|
-
|
|
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
|
|
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.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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 {
|
|
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
|
|
@@ -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
|
|
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).
|
|
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']
|
|
@@ -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 '
|
|
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).
|
|
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 {
|
|
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.
|
|
3
|
-
/** 2.
|
|
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 {
|
|
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:
|
|
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
|
-
|
|
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
|
|
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.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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 {
|
|
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
|
|
@@ -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'
|