@things-factory/worksheet-base 4.3.77 → 4.3.79-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/inbound/unloading-worksheet-controller.js +3 -3
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +2 -4
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +10 -4
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +28 -14
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +40 -48
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +12 -14
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +1 -2
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +16 -4
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +6 -0
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +1 -2
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +6 -6
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +3 -3
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +67 -28
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +23 -8
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +30 -7
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +23 -8
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +25 -8
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +112 -22
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +51 -25
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +2 -2
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +266 -140
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +3 -2
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +39 -14
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +17 -17
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +4 -4
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +5 -2
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/index.js +1 -0
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/utils/inventory-util.js +1 -98
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/dist-server/utils/worksheet-util.js +3 -1
- package/dist-server/utils/worksheet-util.js.map +1 -1
- package/package.json +17 -17
- package/server/controllers/inbound/unloading-worksheet-controller.ts +5 -4
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +2 -4
- package/server/controllers/outbound/loading-worksheet-controller.ts +9 -3
- package/server/controllers/outbound/packing-worksheet-controller.ts +30 -19
- package/server/controllers/outbound/picking-worksheet-controller.ts +39 -60
- package/server/controllers/outbound/sorting-worksheet-controller.ts +12 -12
- package/server/controllers/vas/vas-worksheet-controller.ts +2 -2
- package/server/controllers/worksheet-controller.ts +29 -8
- package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +6 -0
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +1 -2
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +2 -2
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.ts +3 -7
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +5 -4
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +3 -1
- package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +77 -33
- package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +26 -9
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +34 -9
- package/server/graphql/resolvers/worksheet/packing/packing.ts +26 -9
- package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +28 -9
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +128 -23
- package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +1 -1
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +60 -30
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +2 -2
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +288 -149
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +3 -2
- package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +45 -15
- package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +1 -0
- package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +3 -2
- package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +4 -1
- package/server/graphql/types/worksheet/index.ts +5 -2
- package/server/graphql/types/worksheet/multiple-release-good-worksheet.ts +8 -0
- package/server/graphql/types/worksheet-detail/index.ts +1 -0
- package/server/utils/inventory-util.ts +1 -126
- package/server/utils/worksheet-util.ts +3 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { EntityManager,
|
|
1
|
+
import { EntityManager, getManager, SelectQueryBuilder } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { logger } from '@things-factory/env'
|
|
5
5
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
6
6
|
import {
|
|
@@ -10,11 +10,12 @@ import {
|
|
|
10
10
|
MarketplaceOrderShippingItem
|
|
11
11
|
} from '@things-factory/marketplace-base'
|
|
12
12
|
import { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
|
|
13
|
+
import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
13
14
|
import { Domain } from '@things-factory/shell'
|
|
14
15
|
import { Inventory, Location } from '@things-factory/warehouse-base'
|
|
15
16
|
|
|
16
17
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
17
|
-
import { SellercraftController } from '../../../controllers'
|
|
18
|
+
import { PackingWorksheetController, SellercraftController } from '../../../controllers'
|
|
18
19
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
19
20
|
import { fetchExecutingWorksheet } from '../../../utils'
|
|
20
21
|
|
|
@@ -47,7 +48,7 @@ export const packingWorksheetResolver = {
|
|
|
47
48
|
.innerJoinAndSelect(
|
|
48
49
|
'worksheets',
|
|
49
50
|
'ws',
|
|
50
|
-
`orderInventory.release_good_id = ws.release_good_id AND ws.type = 'PACKING' AND ws.status = 'EXECUTING'`
|
|
51
|
+
`orderInventory.release_good_id = ws.release_good_id AND ws.type = 'PACKING' AND (ws.status = 'EXECUTING' OR ws.status = 'DEACTIVATED')`
|
|
51
52
|
)
|
|
52
53
|
.where('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
53
54
|
.andWhere('orderInventory.status IN (:...orderInventoryStatus)', {
|
|
@@ -61,11 +62,22 @@ export const packingWorksheetResolver = {
|
|
|
61
62
|
.andWhere('releaseGood.status IN (:...status)', {
|
|
62
63
|
status: [ORDER_STATUS.READY_TO_PACK, ORDER_STATUS.PACKING]
|
|
63
64
|
})
|
|
65
|
+
.orderBy(`case when orderInventory.status = '${ORDER_INVENTORY_STATUS.PACKED}' then 1 end`)
|
|
66
|
+
.addOrderBy('ws.created_at', 'ASC')
|
|
64
67
|
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
const [orderInventoriesByBin, totalInventoriesByBin] = await qb.getManyAndCount()
|
|
69
|
+
// @oscarchuaweiwen-fsd @chrislim I suggest using getMany() instead since the total is redundant here
|
|
70
|
+
|
|
71
|
+
// remove duplicated count of release good
|
|
72
|
+
const filteredRO = orderInventoriesByBin.map(oiBin => {
|
|
73
|
+
return oiBin.releaseGood.name
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
if (orderInventoriesByBin.length > 0) {
|
|
77
|
+
releaseGoodNo = orderInventoriesByBin[0].releaseGood.name
|
|
78
|
+
releaseGood = orderInventoriesByBin[0].releaseGood
|
|
79
|
+
releaseGood.totalInventoriesByBin = [...new Set(filteredRO)].length
|
|
80
|
+
releaseGood.isOrderInventoryBin = true
|
|
69
81
|
} else {
|
|
70
82
|
throw new Error(`Bin do not have any existing order.`)
|
|
71
83
|
}
|
|
@@ -95,24 +107,59 @@ export const packingWorksheetResolver = {
|
|
|
95
107
|
releaseGood
|
|
96
108
|
)
|
|
97
109
|
|
|
98
|
-
|
|
110
|
+
if (worksheet.status === 'DEACTIVATED') {
|
|
111
|
+
const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
|
|
112
|
+
|
|
113
|
+
const directActivatePackingWorksheet: Setting = await tx.getRepository(Setting).findOne({
|
|
114
|
+
where: { domain: domain, category: 'id-rule', name: 'enable-direct-activate-packing-worksheet' }
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
const partnerDirectActivatePackingWorksheetSetting: PartnerSetting = await tx
|
|
118
|
+
.getRepository(PartnerSetting)
|
|
119
|
+
.findOne({
|
|
120
|
+
where: {
|
|
121
|
+
setting: directActivatePackingWorksheet,
|
|
122
|
+
domain: domain,
|
|
123
|
+
partnerDomain: releaseGood.bizplace?.domain
|
|
124
|
+
}
|
|
125
|
+
})
|
|
126
|
+
|
|
127
|
+
if (
|
|
128
|
+
directActivatePackingWorksheet != undefined &&
|
|
129
|
+
directActivatePackingWorksheet.value.toLowerCase() == 'true'
|
|
130
|
+
) {
|
|
131
|
+
if (partnerDirectActivatePackingWorksheetSetting != undefined) {
|
|
132
|
+
if (partnerDirectActivatePackingWorksheetSetting.value.toLowerCase() == 'true')
|
|
133
|
+
await packingWSCtrl.activatePacking(worksheet.name)
|
|
134
|
+
} else {
|
|
135
|
+
await packingWSCtrl.activatePacking(worksheet.name)
|
|
136
|
+
}
|
|
137
|
+
} else {
|
|
138
|
+
throw new Error('Kindly go to packing worksheet page to activate the packing worksheet')
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
let marketplaceOrder: MarketplaceOrder = {}
|
|
99
143
|
let marketplaceOrderItems: MarketplaceOrderItem[] = []
|
|
100
144
|
let marketplaceStore
|
|
101
145
|
let trackingNo: string
|
|
102
146
|
let shippingProvider: string
|
|
103
147
|
let marketplaceStatus: string
|
|
104
148
|
|
|
105
|
-
|
|
149
|
+
const orderSource: string = releaseGood.source
|
|
150
|
+
switch (orderSource) {
|
|
151
|
+
case ApplicationType.SELLERCRAFT:
|
|
152
|
+
const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
|
|
153
|
+
domain: worksheet.bizplace.domain,
|
|
154
|
+
status: SellercraftStatus.ACTIVE
|
|
155
|
+
})
|
|
106
156
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
157
|
+
if (sellercraft) {
|
|
158
|
+
getSellercraftDocument(sellercraft, releaseGood, domain, user)
|
|
159
|
+
}
|
|
160
|
+
break
|
|
111
161
|
|
|
112
|
-
|
|
113
|
-
// asynchronously get document from sellercraft
|
|
114
|
-
getSellercraftDocument(sellercraft, releaseGood, domain, user)
|
|
115
|
-
} else {
|
|
162
|
+
case ApplicationType.MMS:
|
|
116
163
|
marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
117
164
|
where: { orderNo: releaseGood.refNo },
|
|
118
165
|
relations: [
|
|
@@ -148,9 +195,60 @@ export const packingWorksheetResolver = {
|
|
|
148
195
|
|
|
149
196
|
marketplaceStore = marketplaceOrder?.marketplaceStore
|
|
150
197
|
marketplaceStatus = marketplaceOrder?.status
|
|
151
|
-
|
|
198
|
+
break
|
|
199
|
+
|
|
200
|
+
default:
|
|
201
|
+
break
|
|
152
202
|
}
|
|
153
203
|
|
|
204
|
+
// if (releaseGood.type === 'b2c') {
|
|
205
|
+
// const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
|
|
206
|
+
// domain: worksheet.bizplace.domain,
|
|
207
|
+
// status: SellercraftStatus.ACTIVE
|
|
208
|
+
// })
|
|
209
|
+
|
|
210
|
+
// if (sellercraft) {
|
|
211
|
+
// // asynchronously get document from sellercraft
|
|
212
|
+
// getSellercraftDocument(sellercraft, releaseGood, domain, user)
|
|
213
|
+
// } else {
|
|
214
|
+
// marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
215
|
+
// where: { orderNo: releaseGood.refNo },
|
|
216
|
+
// relations: [
|
|
217
|
+
// 'domain',
|
|
218
|
+
// 'marketplaceStore',
|
|
219
|
+
// 'marketplaceOrderItems',
|
|
220
|
+
// 'marketplaceOrderItems.marketplaceOrderShippingItems',
|
|
221
|
+
// 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
|
|
222
|
+
// ]
|
|
223
|
+
// })
|
|
224
|
+
|
|
225
|
+
// if (!marketplaceOrder) {
|
|
226
|
+
// throw new Error('Failed to retrieve ecommerce information, kindly contact our support team for this issue.')
|
|
227
|
+
// }
|
|
228
|
+
|
|
229
|
+
// let marketplaceOrderShipping: MarketplaceOrderShipping
|
|
230
|
+
// if (marketplaceOrder.isSplitted) {
|
|
231
|
+
// marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({
|
|
232
|
+
// where: { subOrderNoRef: worksheet.releaseGood.refNo2 }
|
|
233
|
+
// })
|
|
234
|
+
// } else {
|
|
235
|
+
// marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({
|
|
236
|
+
// where: { orderNoRef: worksheet.releaseGood.refNo }
|
|
237
|
+
// })
|
|
238
|
+
// }
|
|
239
|
+
|
|
240
|
+
// trackingNo = marketplaceOrderShipping.ownTrackingNo
|
|
241
|
+
// ? marketplaceOrderShipping.ownTrackingNo
|
|
242
|
+
// : marketplaceOrderShipping.trackingNo
|
|
243
|
+
// shippingProvider = marketplaceOrderShipping.ownTransporter
|
|
244
|
+
// ? marketplaceOrderShipping.ownTransporter
|
|
245
|
+
// : marketplaceOrderShipping.transporter
|
|
246
|
+
|
|
247
|
+
// marketplaceStore = marketplaceOrder?.marketplaceStore
|
|
248
|
+
// marketplaceStatus = marketplaceOrder?.status
|
|
249
|
+
// }
|
|
250
|
+
// }
|
|
251
|
+
|
|
154
252
|
return {
|
|
155
253
|
worksheetInfo: {
|
|
156
254
|
releaseGood,
|
|
@@ -165,8 +263,8 @@ export const packingWorksheetResolver = {
|
|
|
165
263
|
airwayBill: releaseGood?.airwayBill,
|
|
166
264
|
checkedRemarkBy: releaseGood?.checkedRemarkBy,
|
|
167
265
|
invoice: releaseGood?.invoice,
|
|
168
|
-
platform: marketplaceOrder ? marketplaceOrder.marketplaceStore
|
|
169
|
-
marketplaceStoreId: marketplaceOrder ? marketplaceOrder.marketplaceStore
|
|
266
|
+
platform: Object.keys(marketplaceOrder).length > 0 ? marketplaceOrder.marketplaceStore?.platform : 'operato',
|
|
267
|
+
marketplaceStoreId: Object.keys(marketplaceOrder).length > 0 ? marketplaceOrder.marketplaceStore?.id : '',
|
|
170
268
|
marketplaceStatus: marketplaceStatus ? marketplaceStatus : '',
|
|
171
269
|
marketplaceOrder: marketplaceOrder ? marketplaceOrder : ''
|
|
172
270
|
},
|
|
@@ -265,7 +363,14 @@ async function getSellercraftDocument(sellercraft: Sellercraft, releaseGood: Rel
|
|
|
265
363
|
}
|
|
266
364
|
}
|
|
267
365
|
} catch (error) {
|
|
268
|
-
logger.error(
|
|
366
|
+
logger.error(
|
|
367
|
+
`packing-worksheet[getSellercraftDocument]:(data:${JSON.stringify({
|
|
368
|
+
sellercraft,
|
|
369
|
+
releaseGood,
|
|
370
|
+
domain,
|
|
371
|
+
user
|
|
372
|
+
})}) ${error} `
|
|
373
|
+
)
|
|
269
374
|
}
|
|
270
375
|
})
|
|
271
|
-
}
|
|
376
|
+
}
|
|
@@ -24,7 +24,7 @@ export const pendingCancellationReleaseOrder = {
|
|
|
24
24
|
relations: ['bizplace', 'orderInventories', 'orderVass']
|
|
25
25
|
})
|
|
26
26
|
|
|
27
|
-
if (foundRO.status === "DONE") throw new Error('Release good has been completed!')
|
|
27
|
+
if (foundRO.status === "DONE") throw new Error('Release good has been completed!')
|
|
28
28
|
if (!foundRO) throw new Error(`Release good order doesn't exists.`)
|
|
29
29
|
let targetOIs: OrderInventory[] = foundRO.orderInventories
|
|
30
30
|
let foundOVs: OrderVas[] = foundRO.orderVass
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { EntityManager } from 'typeorm'
|
|
2
2
|
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
3
|
+
import { ApplicationType, User } from '@things-factory/auth-base'
|
|
4
4
|
import { MarketplaceStore } from '@things-factory/integration-marketplace'
|
|
5
|
-
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
6
5
|
import { MarketplaceOrder } from '@things-factory/marketplace-base'
|
|
7
6
|
import { ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'
|
|
8
7
|
import { Domain } from '@things-factory/shell'
|
|
@@ -27,42 +26,73 @@ export async function activatePicking(
|
|
|
27
26
|
const worksheet = await worksheetController.activatePicking(worksheetNo)
|
|
28
27
|
const companyDomain: Domain = worksheet?.bizplace.company.domain
|
|
29
28
|
|
|
30
|
-
// find for any existing marketplace store connections
|
|
31
|
-
const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
|
|
32
|
-
where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
|
|
33
|
-
relations: ['marketplaceDistributors']
|
|
34
|
-
})
|
|
35
|
-
|
|
36
29
|
let releaseGood: ReleaseGood = worksheet.releaseGood
|
|
37
30
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const worksheetDetails = worksheet.worksheetDetails
|
|
46
|
-
let orderInventories: any[] = worksheetDetails.map(wsd => wsd.targetInventory)
|
|
47
|
-
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
48
|
-
await ecommerceCtrl.updateProductVariationStock(marketplaceStores, orderInventories, companyDomain)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
52
|
-
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
53
|
-
relations: ['marketplaceStore']
|
|
31
|
+
const orderSource: string = releaseGood.source
|
|
32
|
+
switch (orderSource) {
|
|
33
|
+
case ApplicationType.MMS:
|
|
34
|
+
// find for any existing marketplace store connections
|
|
35
|
+
const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
|
|
36
|
+
where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
|
|
37
|
+
relations: ['marketplaceDistributors']
|
|
54
38
|
})
|
|
55
39
|
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
40
|
+
if (marketplaceStores?.length) {
|
|
41
|
+
if (marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
|
|
42
|
+
const worksheetDetails = worksheet.worksheetDetails
|
|
43
|
+
let orderInventories: any[] = worksheetDetails.map(wsd => wsd.targetInventory)
|
|
60
44
|
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
61
|
-
await ecommerceCtrl.
|
|
45
|
+
await ecommerceCtrl.updateProductVariationStock(marketplaceStores, orderInventories, companyDomain)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
49
|
+
where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
50
|
+
relations: ['marketplaceStore']
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
if (marketplaceOrder) {
|
|
54
|
+
const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
55
|
+
|
|
56
|
+
if (marketplaceStore.isAutoUpdateShipment) {
|
|
57
|
+
const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
58
|
+
await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PICKING)
|
|
59
|
+
}
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
|
-
|
|
62
|
+
break
|
|
63
|
+
|
|
64
|
+
default:
|
|
65
|
+
break
|
|
65
66
|
}
|
|
66
67
|
|
|
68
|
+
// if (releaseGood.type === 'b2c') {
|
|
69
|
+
// const sellercraft: Sellercraft = await tx
|
|
70
|
+
// .getRepository(Sellercraft)
|
|
71
|
+
// .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
|
|
72
|
+
|
|
73
|
+
// if (marketplaceStores?.length && !sellercraft) {
|
|
74
|
+
// if (marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
|
|
75
|
+
// const worksheetDetails = worksheet.worksheetDetails
|
|
76
|
+
// let orderInventories: any[] = worksheetDetails.map(wsd => wsd.targetInventory)
|
|
77
|
+
// const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
78
|
+
// await ecommerceCtrl.updateProductVariationStock(marketplaceStores, orderInventories, companyDomain)
|
|
79
|
+
// }
|
|
80
|
+
|
|
81
|
+
// const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
|
|
82
|
+
// where: { orderNo: releaseGood.refNo, domain: companyDomain },
|
|
83
|
+
// relations: ['marketplaceStore']
|
|
84
|
+
// })
|
|
85
|
+
|
|
86
|
+
// if (marketplaceOrder) {
|
|
87
|
+
// const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
|
|
88
|
+
|
|
89
|
+
// if (marketplaceStore.isAutoUpdateShipment) {
|
|
90
|
+
// const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
|
|
91
|
+
// await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PICKING)
|
|
92
|
+
// }
|
|
93
|
+
// }
|
|
94
|
+
// }
|
|
95
|
+
// }
|
|
96
|
+
|
|
67
97
|
return worksheet
|
|
68
98
|
}
|
|
@@ -69,7 +69,7 @@ export async function completeBatchPicking(
|
|
|
69
69
|
|
|
70
70
|
let foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
|
|
71
71
|
where: { id: releaseGood.id },
|
|
72
|
-
relations: ['orderProducts', 'orderProducts.product'
|
|
72
|
+
relations: ['orderProducts', 'orderProducts.product']
|
|
73
73
|
})
|
|
74
74
|
|
|
75
75
|
if (!foundReleaseGood?.packageId) {
|
|
@@ -112,7 +112,7 @@ export async function completeBatchPicking(
|
|
|
112
112
|
})
|
|
113
113
|
|
|
114
114
|
// loop to generate packing worksheet
|
|
115
|
-
for (
|
|
115
|
+
for (let i: number = 0; i < uniqueRoNo.length; i++) {
|
|
116
116
|
const releaseGoodNo: string = uniqueRoNo[i]
|
|
117
117
|
const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
|
|
118
118
|
await packingWSCtrl.generatePackingWorksheet(releaseGoodNo)
|