@things-factory/worksheet-base 4.0.0-y.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/controllers/ecommerce/ecommerce-controller.js +23 -9
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/index.js +1 -0
- package/dist-server/controllers/ecommerce/index.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +168 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +6 -5
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/index.js +1 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +43 -8
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +16 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +17 -9
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-grn.js +192 -0
- package/dist-server/controllers/render-grn.js.map +1 -0
- package/dist-server/controllers/render-job-sheet.js +51 -35
- package/dist-server/controllers/render-job-sheet.js.map +1 -1
- package/dist-server/controllers/render-kimeda-grn.js +12 -5
- package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
- package/dist-server/controllers/render-ro-do.js +19 -5
- package/dist-server/controllers/render-ro-do.js.map +1 -1
- package/dist-server/controllers/render-seebuu-grn.js +9 -3
- package/dist-server/controllers/render-seebuu-grn.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +75 -14
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +61 -8
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +1 -1
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +23 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +4 -2
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +25 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/index.js +5 -4
- package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +2 -2
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +13 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +24 -38
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +13 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +13 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +60 -19
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +20 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +24 -14
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +19 -0
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +124 -149
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +13 -4
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +21 -2
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +18 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +302 -11
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +137 -31
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +157 -42
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +35 -21
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +33 -27
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +39 -10
- package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +3 -2
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +3 -2
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
- package/dist-server/graphql/types/index.js +2 -1
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/pallet/index.js +10 -0
- package/dist-server/graphql/types/pallet/index.js.map +1 -0
- package/dist-server/graphql/types/worksheet/airwaybill.js +10 -0
- package/dist-server/graphql/types/worksheet/airwaybill.js.map +1 -0
- package/dist-server/graphql/types/worksheet/index.js +10 -2
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-info.js +2 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/index.js +2 -1
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +1 -0
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
- package/dist-server/routes.js +10 -6
- package/dist-server/routes.js.map +1 -1
- package/dist-server/utils/inventory-util.js +7 -3
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +16 -15
- package/server/controllers/ecommerce/ecommerce-controller.ts +37 -10
- package/server/controllers/ecommerce/index.ts +1 -0
- package/server/controllers/ecommerce/sellercraft-controller.ts +223 -0
- package/server/controllers/inbound/unloading-worksheet-controller.ts +16 -13
- package/server/controllers/index.ts +1 -0
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +108 -43
- package/server/controllers/outbound/packing-worksheet-controller.ts +21 -4
- package/server/controllers/outbound/picking-worksheet-controller.ts +26 -11
- package/server/controllers/render-grn.ts +218 -0
- package/server/controllers/render-job-sheet.ts +51 -39
- package/server/controllers/render-kimeda-grn.ts +16 -12
- package/server/controllers/render-ro-do.ts +22 -6
- package/server/controllers/render-seebuu-grn.ts +12 -12
- package/server/controllers/vas/vas-worksheet-controller.ts +104 -23
- package/server/controllers/worksheet-controller.ts +87 -22
- package/server/graphql/resolvers/pallet/pallet-outbound.ts +2 -1
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +30 -2
- package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +7 -4
- package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +30 -0
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +18 -3
- package/server/graphql/resolvers/worksheet/index.ts +6 -4
- package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +4 -2
- package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +20 -3
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +30 -49
- package/server/graphql/resolvers/worksheet/packing/packing.ts +22 -3
- package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +22 -3
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +71 -20
- package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +32 -3
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +31 -17
- package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +4 -3
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +31 -3
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +143 -175
- package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +5 -4
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +5 -2
- package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +1 -1
- package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +22 -9
- package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +27 -4
- package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +23 -2
- package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +452 -14
- package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.ts +36 -1
- package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.ts +8 -2
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +185 -56
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +210 -54
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +64 -32
- package/server/graphql/resolvers/worksheet/worksheet.ts +67 -62
- package/server/graphql/resolvers/worksheet/worksheets.ts +51 -13
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +1 -0
- package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +2 -1
- package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +2 -1
- package/server/graphql/types/index.ts +2 -1
- package/server/graphql/types/pallet/index.ts +6 -0
- package/server/graphql/types/worksheet/airwaybill.ts +7 -0
- package/server/graphql/types/worksheet/index.ts +10 -2
- package/server/graphql/types/worksheet/worksheet-info.ts +2 -0
- package/server/graphql/types/worksheet-detail/index.ts +2 -1
- package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
- package/server/routes.ts +11 -6
- package/server/utils/inventory-util.ts +14 -5
|
@@ -1,23 +1,24 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
|
-
import { Bizplace,
|
|
3
|
-
import {
|
|
4
|
-
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
4
|
+
import { Bizplace, ContactPoint, getMyBizplace } from '@things-factory/biz-base'
|
|
5
|
+
import { LastMileAPI, LastMileDelivery } from '@things-factory/integration-lmd'
|
|
6
|
+
import { MarketplaceStore, MarketplaceTransporter } from '@things-factory/integration-marketplace'
|
|
7
|
+
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
8
|
+
import { MarketplaceOrder, MarketplaceOrderItem, MarketplaceOrderShipping } from '@things-factory/marketplace-base'
|
|
9
|
+
import { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
|
|
5
10
|
import { Domain } from '@things-factory/shell'
|
|
6
|
-
|
|
7
|
-
import {
|
|
11
|
+
|
|
12
|
+
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
|
|
8
13
|
import {
|
|
9
|
-
PackingWorksheetController,
|
|
10
14
|
LoadingWorksheetController,
|
|
11
|
-
|
|
15
|
+
PackingWorksheetController,
|
|
16
|
+
PickingWorksheetController,
|
|
17
|
+
SellercraftController
|
|
12
18
|
} from '../../../../controllers/'
|
|
13
|
-
import {
|
|
14
|
-
import { MarketplaceTransporter } from '@things-factory/integration-marketplace'
|
|
19
|
+
import { EcommerceController } from '../../../../controllers/ecommerce'
|
|
15
20
|
import { WorksheetController } from '../../../../controllers/worksheet-controller'
|
|
16
21
|
import { Worksheet, WorksheetDetail } from '../../../../entities'
|
|
17
|
-
import { WorksheetNoGenerator } from '../../../../utils'
|
|
18
|
-
import { EcommerceController } from '../../../../controllers/ecommerce'
|
|
19
|
-
|
|
20
|
-
import { LastMileDelivery, LastMileAPI } from '@things-factory/integration-lmd'
|
|
21
22
|
|
|
22
23
|
export const completePickingResolver = {
|
|
23
24
|
async completePicking(_: any, { releaseGoodNo }, context: any) {
|
|
@@ -25,31 +26,6 @@ export const completePickingResolver = {
|
|
|
25
26
|
|
|
26
27
|
await completePicking(tx, domain, user, releaseGoodNo)
|
|
27
28
|
|
|
28
|
-
const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
|
|
29
|
-
where: { domain, name: releaseGoodNo },
|
|
30
|
-
relations: [
|
|
31
|
-
'bizplace',
|
|
32
|
-
'bizplace.company',
|
|
33
|
-
'bizplace.company.domain',
|
|
34
|
-
'orderInventories',
|
|
35
|
-
'orderInventories.product'
|
|
36
|
-
]
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
if (releaseGood.type === 'b2c') {
|
|
40
|
-
const companyDomain: Domain = releaseGood.bizplace.company.domain
|
|
41
|
-
const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
42
|
-
where: { releaseOrderId: releaseGood.id, domain: companyDomain },
|
|
43
|
-
relations: ['marketplaceStore']
|
|
44
|
-
})
|
|
45
|
-
const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
46
|
-
|
|
47
|
-
if (marketplaceStore.isAutoUpdateShipment) {
|
|
48
|
-
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
49
|
-
await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PACKING)
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
29
|
const bizplace: Bizplace = await getMyBizplace(domain, user)
|
|
54
30
|
const worksheetController: WorksheetController = new WorksheetController(tx, domain, user)
|
|
55
31
|
await worksheetController.notifyToCustomer(bizplace, {
|
|
@@ -68,9 +44,16 @@ export async function completePicking(
|
|
|
68
44
|
releaseGoodNo: string
|
|
69
45
|
): Promise<void> {
|
|
70
46
|
const pickingWSCtrl: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)
|
|
71
|
-
const releaseGood: ReleaseGood = await
|
|
72
|
-
domain,
|
|
73
|
-
|
|
47
|
+
const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
|
|
48
|
+
where: { domain, name: releaseGoodNo },
|
|
49
|
+
relations: [
|
|
50
|
+
'bizplace',
|
|
51
|
+
'bizplace.domain',
|
|
52
|
+
'bizplace.company',
|
|
53
|
+
'bizplace.company.domain',
|
|
54
|
+
'orderInventories',
|
|
55
|
+
'orderInventories.product'
|
|
56
|
+
]
|
|
74
57
|
})
|
|
75
58
|
|
|
76
59
|
const worksheet: Worksheet = await pickingWSCtrl.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.PICKING, [
|
|
@@ -87,166 +70,151 @@ export async function completePicking(
|
|
|
87
70
|
|
|
88
71
|
const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
|
|
89
72
|
const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => wsd.targetInventory)
|
|
90
|
-
const pickedTargetInventories: OrderInventory[] = targetInventories
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return pickedTargetInventory
|
|
94
|
-
})
|
|
73
|
+
const pickedTargetInventories: OrderInventory[] = targetInventories.filter(
|
|
74
|
+
targetInventory => targetInventory.status === ORDER_INVENTORY_STATUS.PICKED
|
|
75
|
+
)
|
|
95
76
|
|
|
96
77
|
await pickingWSCtrl.completePicking(releaseGoodNo)
|
|
97
78
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
releaseGood,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
79
|
+
if (releaseGood.type == 'b2c') {
|
|
80
|
+
const sellercraft: Sellercraft = await tx
|
|
81
|
+
.getRepository(Sellercraft)
|
|
82
|
+
.findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
83
|
+
|
|
84
|
+
if (sellercraft) {
|
|
85
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
86
|
+
await sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
|
|
87
|
+
} else {
|
|
88
|
+
const companyDomain: Domain = releaseGood.bizplace.company.domain
|
|
89
|
+
let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
90
|
+
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
91
|
+
relations: ['marketplaceStore']
|
|
92
|
+
})
|
|
93
|
+
const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
94
|
+
let eTraxOption: boolean
|
|
95
|
+
|
|
96
|
+
if (marketplaceStore.isAutoUpdateShipment) {
|
|
97
|
+
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
98
|
+
await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PACKING)
|
|
99
|
+
}
|
|
106
100
|
|
|
107
|
-
if (releaseGood.packingOption) {
|
|
108
|
-
// find marketplace store to check if there is any eTrax true config
|
|
109
|
-
// access marketplaceOrderShipping from marketplaceOrderItems
|
|
110
|
-
let marketplaceOrder: MarketplaceOrder
|
|
111
|
-
let eTraxOption: boolean
|
|
112
|
-
if (releaseGood.type === 'b2c') {
|
|
113
101
|
marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
114
|
-
where: {
|
|
102
|
+
where: { orderNo: releaseGood.refNo },
|
|
115
103
|
relations: ['marketplaceStore', 'marketplaceOrderItems', 'marketplaceOrderItems.marketplaceOrderShipping']
|
|
116
104
|
})
|
|
117
105
|
|
|
118
106
|
if (!marketplaceOrder)
|
|
119
107
|
throw new Error('Failed to find ecommerce order, kindly contact our support team regarding this issue')
|
|
120
108
|
eTraxOption = marketplaceOrder?.marketplaceStore.eTrax
|
|
121
|
-
}
|
|
122
109
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
// access every marketplaceOrderItems for shipping information you need
|
|
128
|
-
// trigger the controller from integration-lmd that trigger the API, build the parameters needed
|
|
129
|
-
// for etrax didn't support multi awb per order
|
|
130
|
-
const marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderItems[0].marketplaceOrderShipping
|
|
131
|
-
const lmd: LastMileDelivery = await tx.getRepository(LastMileDelivery).findOne({
|
|
132
|
-
where: {
|
|
133
|
-
domain,
|
|
134
|
-
platform: 'eTrax'
|
|
135
|
-
}
|
|
136
|
-
})
|
|
110
|
+
// if eTrax option is true
|
|
111
|
+
if (eTraxOption) {
|
|
112
|
+
const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
|
|
137
113
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
114
|
+
// access every marketplaceOrderItems for shipping information you need
|
|
115
|
+
// trigger the controller from integration-lmd that trigger the API, build the parameters needed
|
|
116
|
+
// for etrax didn't support multi awb per order
|
|
117
|
+
const marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderItems[0].marketplaceOrderShipping
|
|
118
|
+
const lmd: LastMileDelivery = await tx.getRepository(LastMileDelivery).findOne({
|
|
119
|
+
where: {
|
|
120
|
+
domain,
|
|
121
|
+
platform: 'eTrax'
|
|
122
|
+
}
|
|
123
|
+
})
|
|
143
124
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
transporterId: marketplaceTransporter.pickupTransporter.transporterId,
|
|
150
|
-
pickupName: warehouseContactPoint.name,
|
|
151
|
-
pickupAddress1: warehouseContactPoint.address,
|
|
152
|
-
pickupAddress2: warehouseContactPoint.address2,
|
|
153
|
-
pickupPostcode: warehouseContactPoint.postCode,
|
|
154
|
-
pickupState: warehouseContactPoint.state,
|
|
155
|
-
pickupCity: warehouseContactPoint.city,
|
|
156
|
-
pickupPhone: warehouseContactPoint.phone,
|
|
157
|
-
pickupEmail: warehouseContactPoint.email,
|
|
158
|
-
name: marketplaceOrderShipping.attentionTo.trim(),
|
|
159
|
-
address1: marketplaceOrderShipping.address1.trim(),
|
|
160
|
-
address2: marketplaceOrderShipping.address2.trim(),
|
|
161
|
-
postCode: marketplaceOrderShipping.postCode.trim(),
|
|
162
|
-
city: marketplaceOrderShipping.city.trim(),
|
|
163
|
-
state: marketplaceOrderShipping.state.trim(),
|
|
164
|
-
phone: marketplaceOrderShipping.phone1 || '',
|
|
165
|
-
email: marketplaceOrderShipping.email || '',
|
|
166
|
-
attentionTo: marketplaceOrderShipping.attentionTo,
|
|
167
|
-
quantity: marketplaceOrderItems.length
|
|
168
|
-
})
|
|
125
|
+
//Get which transporter to use
|
|
126
|
+
const marketplaceTransporter: MarketplaceTransporter = await tx.getRepository(MarketplaceTransporter).findOne({
|
|
127
|
+
where: { marketplaceStore: marketplaceOrder.marketplaceStore },
|
|
128
|
+
relations: ['pickupTransporter', 'deliveryTransporter']
|
|
129
|
+
})
|
|
169
130
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
131
|
+
const resp = await LastMileAPI.createShipmentRequest(lmd, {
|
|
132
|
+
orderNo: marketplaceOrder.orderNo,
|
|
133
|
+
clientId: lmd.clientId,
|
|
134
|
+
clientType: lmd.clientType,
|
|
135
|
+
clientName: lmd.clientName,
|
|
136
|
+
transporterId: marketplaceTransporter.pickupTransporter.transporterId,
|
|
137
|
+
pickupName: warehouseContactPoint.name,
|
|
138
|
+
pickupAddress1: warehouseContactPoint.address,
|
|
139
|
+
pickupAddress2: warehouseContactPoint.address2,
|
|
140
|
+
pickupPostcode: warehouseContactPoint.postCode,
|
|
141
|
+
pickupState: warehouseContactPoint.state,
|
|
142
|
+
pickupCity: warehouseContactPoint.city,
|
|
143
|
+
pickupPhone: warehouseContactPoint.phone,
|
|
144
|
+
pickupEmail: warehouseContactPoint.email,
|
|
145
|
+
name: marketplaceOrderShipping?.attentionTo ? marketplaceOrderShipping.attentionTo.trim() : '',
|
|
146
|
+
address1: marketplaceOrderShipping?.address1 ? marketplaceOrderShipping?.address1.trim() : '-',
|
|
147
|
+
address2: marketplaceOrderShipping?.address2 ? marketplaceOrderShipping?.address2.trim() : '-',
|
|
148
|
+
postCode: marketplaceOrderShipping?.postCode ? marketplaceOrderShipping?.postCode.trim() : '',
|
|
149
|
+
city: marketplaceOrderShipping?.city ? marketplaceOrderShipping?.city.trim() : '',
|
|
150
|
+
state: marketplaceOrderShipping?.state ? marketplaceOrderShipping?.state.trim() : '',
|
|
151
|
+
phone: marketplaceOrderShipping.phone1 || '',
|
|
152
|
+
email: marketplaceOrderShipping.email || '',
|
|
153
|
+
attentionTo: marketplaceOrderShipping.attentionTo,
|
|
154
|
+
quantity: marketplaceOrderItems.length
|
|
155
|
+
})
|
|
173
156
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
157
|
+
const delay = (ms: number) => {
|
|
158
|
+
return new Promise(resolve => setTimeout(resolve, ms))
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (resp.Status === 'SUCCESS') {
|
|
162
|
+
//Success
|
|
163
|
+
let awbObtained = false
|
|
164
|
+
let retry = 0
|
|
165
|
+
while (!awbObtained) {
|
|
166
|
+
const marketplaceOrder2: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
167
|
+
where: { releaseOrderId: releaseGood.id },
|
|
168
|
+
relations: ['marketplaceStore', 'marketplaceOrderItems', 'marketplaceOrderItems.marketplaceOrderShipping']
|
|
169
|
+
})
|
|
170
|
+
const orderShipping = marketplaceOrder2.marketplaceOrderItems[0].marketplaceOrderShipping
|
|
171
|
+
if (orderShipping?.airwayBill) {
|
|
172
|
+
awbObtained = true
|
|
173
|
+
}
|
|
174
|
+
await delay(5000)
|
|
175
|
+
//Timeout after 15sec
|
|
176
|
+
if (++retry > 3) {
|
|
177
|
+
break
|
|
178
|
+
}
|
|
191
179
|
}
|
|
180
|
+
} else {
|
|
181
|
+
throw resp
|
|
182
|
+
//Failed
|
|
192
183
|
}
|
|
193
|
-
} else {
|
|
194
|
-
throw resp
|
|
195
|
-
//Failed
|
|
196
184
|
}
|
|
197
185
|
}
|
|
186
|
+
}
|
|
198
187
|
|
|
188
|
+
if (releaseGood.packingOption) {
|
|
199
189
|
const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
|
|
200
190
|
await packingWSCtrl.generatePackingWorksheet(releaseGoodNo)
|
|
201
|
-
}
|
|
191
|
+
} else {
|
|
192
|
+
// Find Existing Loading Worksheet if any
|
|
193
|
+
const existLoadingWorksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
|
|
194
|
+
where: {
|
|
195
|
+
releaseGood,
|
|
196
|
+
type: WORKSHEET_TYPE.LOADING,
|
|
197
|
+
status: WORKSHEET_STATUS.DEACTIVATED
|
|
198
|
+
}
|
|
199
|
+
})
|
|
202
200
|
|
|
203
|
-
|
|
204
|
-
|
|
201
|
+
if (!existLoadingWorksheet && !releaseGood.courierOption && !releaseGood.packingOption) {
|
|
202
|
+
const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
|
|
203
|
+
let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(
|
|
204
|
+
releaseGoodNo,
|
|
205
|
+
pickedTargetInventories
|
|
206
|
+
)
|
|
205
207
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
let existingLoadingWorksheetDetail: WorksheetDetail = await tx.getRepository(WorksheetDetail).findOne({
|
|
210
|
-
where: {
|
|
211
|
-
domain,
|
|
212
|
-
worksheet: existLoadingWorksheet,
|
|
213
|
-
targetInventory,
|
|
214
|
-
type: WORKSHEET_TYPE.LOADING
|
|
215
|
-
}
|
|
216
|
-
})
|
|
208
|
+
if (!loadingWorksheet.worksheetDetails?.length) {
|
|
209
|
+
loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id)
|
|
210
|
+
}
|
|
217
211
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
domain,
|
|
225
|
-
bizplace: bizplace,
|
|
226
|
-
worksheet: existLoadingWorksheet,
|
|
227
|
-
name: WorksheetNoGenerator.generateDetail(WORKSHEET_TYPE.LOADING),
|
|
228
|
-
targetInventory,
|
|
229
|
-
type: WORKSHEET_TYPE.LOADING,
|
|
230
|
-
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
231
|
-
creator: user,
|
|
232
|
-
updater: user
|
|
233
|
-
}
|
|
234
|
-
})
|
|
235
|
-
)
|
|
236
|
-
|
|
237
|
-
loadingWorksheetDetails = await tx.getRepository(WorksheetDetail).save(loadingWorksheetDetails)
|
|
238
|
-
} else if (!existLoadingWorksheet && !releaseGood.courierOption && !releaseGood.packingOption) {
|
|
239
|
-
const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
|
|
240
|
-
let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(
|
|
241
|
-
releaseGoodNo,
|
|
242
|
-
pickedTargetInventories
|
|
243
|
-
)
|
|
244
|
-
|
|
245
|
-
if (!loadingWorksheet.worksheetDetails?.length) {
|
|
246
|
-
loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id)
|
|
212
|
+
const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails
|
|
213
|
+
await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)
|
|
214
|
+
} else {
|
|
215
|
+
throw new Error(
|
|
216
|
+
'Picking completion has been triggered twice, loading worksheet has been generated. Kindly proceed to loading.'
|
|
217
|
+
)
|
|
247
218
|
}
|
|
248
|
-
|
|
249
|
-
const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails
|
|
250
|
-
await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)
|
|
251
219
|
}
|
|
252
220
|
}
|
|
@@ -4,9 +4,9 @@ import { EntityManager } from 'typeorm'
|
|
|
4
4
|
import { PickingWorksheetController } from '../../../../controllers'
|
|
5
5
|
|
|
6
6
|
export const undoPickingAssigmentResolver = {
|
|
7
|
-
async undoPickingAssigment(_: any, { worksheetNo, batchId, productId, packingType }, context: any): Promise<void> {
|
|
7
|
+
async undoPickingAssigment(_: any, { worksheetNo, batchId, productId, packingType, packingSize }, context: any): Promise<void> {
|
|
8
8
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
9
|
-
await undoPickingAssigment(tx, domain, user, worksheetNo, batchId, productId, packingType)
|
|
9
|
+
await undoPickingAssigment(tx, domain, user, worksheetNo, batchId, productId, packingType, packingSize)
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -17,8 +17,9 @@ export async function undoPickingAssigment(
|
|
|
17
17
|
worksheetNo: string,
|
|
18
18
|
batchId: string,
|
|
19
19
|
productId: string,
|
|
20
|
-
packingType: string
|
|
20
|
+
packingType: string,
|
|
21
|
+
packingSize: number
|
|
21
22
|
): Promise<void> {
|
|
22
23
|
const worksheetController: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)
|
|
23
|
-
await worksheetController.undoPickingAssigment(worksheetNo, batchId, productId, packingType)
|
|
24
|
+
await worksheetController.undoPickingAssigment(worksheetNo, batchId, productId, packingType, packingSize)
|
|
24
25
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { createQueryBuilder, getRepository, SelectQueryBuilder } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { ORDER_INVENTORY_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
|
|
2
4
|
import { Domain } from '@things-factory/shell'
|
|
3
|
-
import { fetchExecutingWorksheet } from '../../../utils'
|
|
4
5
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
5
|
-
|
|
6
|
+
|
|
6
7
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
7
8
|
import { WorksheetDetail } from '../../../entities'
|
|
9
|
+
import { fetchExecutingWorksheet } from '../../../utils'
|
|
8
10
|
|
|
9
11
|
export const pickingWorksheetResolver = {
|
|
10
12
|
async pickingWorksheet(_: any, { releaseGoodNo, locationSortingRules }, context: any) {
|
|
@@ -47,6 +49,7 @@ export const pickingWorksheetResolver = {
|
|
|
47
49
|
partnerDomainId: releaseGood.bizplace?.domain.id,
|
|
48
50
|
startedAt: worksheet.startedAt,
|
|
49
51
|
refNo: releaseGood.refNo,
|
|
52
|
+
refNo2: releaseGood.refNo2,
|
|
50
53
|
releaseGood
|
|
51
54
|
},
|
|
52
55
|
worksheetDetailInfos: worksheetDetails.map(async (pickingWSD: WorksheetDetail) => {
|
|
@@ -41,7 +41,7 @@ export const recommendPutawayLocationResolver = {
|
|
|
41
41
|
const sortingLevelSetting: Setting = await getRepository(Setting).findOne({
|
|
42
42
|
where: { domain, name: 'location-recommendation-level' }
|
|
43
43
|
})
|
|
44
|
-
const sortingLevel = sortingLevelSetting
|
|
44
|
+
const sortingLevel = sortingLevelSetting?.value
|
|
45
45
|
|
|
46
46
|
switch (sortingLevel) {
|
|
47
47
|
case 'level 1':
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
4
|
import { Bizplace } from '@things-factory/biz-base'
|
|
5
|
+
import { Product } from '@things-factory/product-base'
|
|
3
6
|
import {
|
|
4
|
-
OrderInventory,
|
|
5
|
-
OrderNoGenerator,
|
|
6
7
|
ORDER_INVENTORY_STATUS,
|
|
7
8
|
ORDER_TYPES,
|
|
9
|
+
OrderInventory,
|
|
10
|
+
OrderNoGenerator,
|
|
8
11
|
ReleaseGood
|
|
9
12
|
} from '@things-factory/sales-base'
|
|
10
13
|
import { Domain } from '@things-factory/shell'
|
|
11
14
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
12
|
-
|
|
15
|
+
|
|
13
16
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
14
17
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
15
18
|
import { WorksheetNoGenerator } from '../../../utils'
|
|
@@ -29,11 +32,13 @@ export const replacePickingPalletsResolver = {
|
|
|
29
32
|
'worksheet',
|
|
30
33
|
'targetInventory',
|
|
31
34
|
'targetInventory.releaseGood',
|
|
32
|
-
'targetInventory.inventory'
|
|
35
|
+
'targetInventory.inventory',
|
|
36
|
+
'targetInventory.inventory.product'
|
|
33
37
|
]
|
|
34
38
|
})
|
|
35
39
|
const prevOrderInv: OrderInventory = prevWSD.targetInventory
|
|
36
40
|
const prevInv: Inventory = prevOrderInv.inventory
|
|
41
|
+
const product: Product = prevInv.product
|
|
37
42
|
const batchId: string = prevOrderInv.batchId
|
|
38
43
|
const productName: string = prevOrderInv.productName
|
|
39
44
|
const packingType: string = prevOrderInv.packingType
|
|
@@ -45,9 +50,8 @@ export const replacePickingPalletsResolver = {
|
|
|
45
50
|
// remove locked qty and locked uomValue
|
|
46
51
|
await tx.getRepository(Inventory).save({
|
|
47
52
|
...prevInv,
|
|
48
|
-
lockedQty:
|
|
49
|
-
|
|
50
|
-
lockedUomValue: 0,
|
|
53
|
+
lockedQty: prevInv.lockedQty - prevOrderInv.releaseQty,
|
|
54
|
+
lockedUomValue: prevInv.lockedUomValue - prevOrderInv.releaseUomValue,
|
|
51
55
|
updater: user
|
|
52
56
|
})
|
|
53
57
|
|
|
@@ -67,7 +71,7 @@ export const replacePickingPalletsResolver = {
|
|
|
67
71
|
|
|
68
72
|
await Promise.all(
|
|
69
73
|
inventories.map(async (inventory: Inventory) => {
|
|
70
|
-
|
|
74
|
+
let foundInv: Inventory = await tx.getRepository(Inventory).findOne({
|
|
71
75
|
where: {
|
|
72
76
|
domain,
|
|
73
77
|
palletId: inventory.palletId
|
|
@@ -85,11 +89,13 @@ export const replacePickingPalletsResolver = {
|
|
|
85
89
|
releaseQty: inventory.qty,
|
|
86
90
|
releaseUomValue: unitUomValue * inventory.qty,
|
|
87
91
|
inventory: foundInv,
|
|
92
|
+
product,
|
|
88
93
|
batchId,
|
|
89
94
|
type: ORDER_TYPES.RELEASE_OF_GOODS,
|
|
90
95
|
status: ORDER_INVENTORY_STATUS.PICKING,
|
|
91
96
|
productName,
|
|
92
97
|
packingType,
|
|
98
|
+
packingSize: inventory.packingSize,
|
|
93
99
|
creator: user,
|
|
94
100
|
updater: user
|
|
95
101
|
})
|
|
@@ -110,8 +116,15 @@ export const replacePickingPalletsResolver = {
|
|
|
110
116
|
updater: user
|
|
111
117
|
})
|
|
112
118
|
|
|
119
|
+
foundInv.lockedQty = foundInv.lockedQty ? foundInv.lockedQty + inventory.qty : inventory.qty
|
|
120
|
+
foundInv.lockedUomValue = foundInv.lockedUomValue
|
|
121
|
+
? foundInv.lockedUomValue + unitUomValue * inventory.qty
|
|
122
|
+
: unitUomValue * inventory.qty
|
|
123
|
+
|
|
124
|
+
foundInv = await tx.getRepository(Inventory).save(foundInv)
|
|
125
|
+
|
|
113
126
|
// 6. execute picking transaction
|
|
114
|
-
await picking(tx, domain, user, wsd.name, worksheetType,
|
|
127
|
+
await picking(tx, domain, user, wsd.name, worksheetType, foundInv.palletId, returnLocation, inventory.qty)
|
|
115
128
|
})
|
|
116
129
|
)
|
|
117
130
|
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
4
|
import { Bizplace } from '@things-factory/biz-base'
|
|
3
|
-
import { ArrivalNotice, generateGoodsReceivalNote } from '@things-factory/sales-base'
|
|
4
5
|
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
6
|
+
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
7
|
+
import { ArrivalNotice, generateGoodsReceivalNote } from '@things-factory/sales-base'
|
|
5
8
|
import { Domain } from '@things-factory/shell'
|
|
6
9
|
import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
|
|
7
|
-
|
|
10
|
+
|
|
8
11
|
import { WORKSHEET_STATUS } from '../../../../constants'
|
|
9
12
|
import { PutawayWorksheetController, UnloadingWorksheetController } from '../../../../controllers'
|
|
13
|
+
import { EcommerceController, SellercraftController } from '../../../../controllers/ecommerce'
|
|
10
14
|
import { Worksheet, WorksheetDetail } from '../../../../entities'
|
|
11
|
-
import { EcommerceController } from '../../../../controllers/ecommerce'
|
|
12
15
|
|
|
13
16
|
export const completeUnloadingResolver = {
|
|
14
17
|
async completeUnloading(_: any, { arrivalNoticeNo, worksheetDetails }, context: any) {
|
|
@@ -17,7 +20,17 @@ export const completeUnloadingResolver = {
|
|
|
17
20
|
|
|
18
21
|
const arrivalNotice: ArrivalNotice = await tx.getRepository(ArrivalNotice).findOne({
|
|
19
22
|
where: { domain, name: arrivalNoticeNo },
|
|
20
|
-
relations: [
|
|
23
|
+
relations: [
|
|
24
|
+
'purchaseOrder',
|
|
25
|
+
'bizplace',
|
|
26
|
+
'bizplace.domain',
|
|
27
|
+
'bizplace.company',
|
|
28
|
+
'bizplace.company.domain',
|
|
29
|
+
'orderProducts',
|
|
30
|
+
'orderProducts.product',
|
|
31
|
+
'orderProducts.product.productDetails',
|
|
32
|
+
'orderProducts.product.productDetails.childProductDetail'
|
|
33
|
+
]
|
|
21
34
|
})
|
|
22
35
|
|
|
23
36
|
const putawayWSCtrl: PutawayWorksheetController = new PutawayWorksheetController(tx, domain, user)
|
|
@@ -29,11 +42,21 @@ export const completeUnloadingResolver = {
|
|
|
29
42
|
|
|
30
43
|
// search for any active marketplace connection
|
|
31
44
|
const companyDomain: Domain = arrivalNotice.bizplace.company.domain
|
|
45
|
+
const customerDomain: Domain = arrivalNotice.bizplace.domain
|
|
32
46
|
const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
|
|
33
47
|
where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
|
|
34
48
|
relations: ['marketplaceDistributors']
|
|
35
49
|
})
|
|
36
50
|
|
|
51
|
+
const sellercraft: Sellercraft = await tx
|
|
52
|
+
.getRepository(Sellercraft)
|
|
53
|
+
.findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
|
|
54
|
+
|
|
55
|
+
if (sellercraft) {
|
|
56
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
57
|
+
await sellercraftCtrl.registerProductInbound(sellercraft, arrivalNotice)
|
|
58
|
+
}
|
|
59
|
+
|
|
37
60
|
if (marketplaceStores?.length && marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
|
|
38
61
|
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
39
62
|
await ecommerceCtrl.updateProductVariationStock(marketplaceStores, arrivalNotice.orderProducts, companyDomain)
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
2
5
|
import { ReturnOrder } from '@things-factory/sales-base'
|
|
3
6
|
import { Domain } from '@things-factory/shell'
|
|
4
7
|
import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
|
|
5
|
-
|
|
8
|
+
|
|
6
9
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
|
|
7
10
|
import { PutawayReturningWorksheetController, UnloadingReturningWorksheetController } from '../../../../controllers'
|
|
11
|
+
import { SellercraftController } from '../../../../controllers/ecommerce'
|
|
8
12
|
import { Worksheet, WorksheetDetail } from '../../../../entities'
|
|
9
13
|
|
|
10
14
|
export const completeUnloadReturningResolver = {
|
|
@@ -14,9 +18,26 @@ export const completeUnloadReturningResolver = {
|
|
|
14
18
|
|
|
15
19
|
const returnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({
|
|
16
20
|
where: { domain, name: returnOrderNo },
|
|
17
|
-
relations: [
|
|
21
|
+
relations: [
|
|
22
|
+
'bizplace',
|
|
23
|
+
'bizplace.domain',
|
|
24
|
+
'orderInventories',
|
|
25
|
+
'orderInventories.inventory',
|
|
26
|
+
'orderInventories.product',
|
|
27
|
+
'orderInventories.product.productDetails'
|
|
28
|
+
]
|
|
18
29
|
})
|
|
19
30
|
|
|
31
|
+
const customerDomain: Domain = returnOrder.bizplace.domain
|
|
32
|
+
const sellercraft: Sellercraft = await tx
|
|
33
|
+
.getRepository(Sellercraft)
|
|
34
|
+
.findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
|
|
35
|
+
|
|
36
|
+
if (sellercraft) {
|
|
37
|
+
const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
|
|
38
|
+
await sellercraftCtrl.registerProductReturn(sellercraft, returnOrder)
|
|
39
|
+
}
|
|
40
|
+
|
|
20
41
|
const putawayWSCtrl: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(tx, domain, user)
|
|
21
42
|
let putawayWorksheet: Worksheet
|
|
22
43
|
|