@things-factory/worksheet-base 4.3.76 → 4.3.79-alpha.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/outbound/packing-worksheet-controller.js +14 -2
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +6 -9
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +14 -1
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +12 -0
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.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/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 +87 -79
- 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/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 +92 -150
- package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.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/utils/worksheet-util.js +3 -1
- package/dist-server/utils/worksheet-util.js.map +1 -1
- package/package.json +17 -17
- package/server/controllers/outbound/packing-worksheet-controller.ts +21 -2
- package/server/controllers/outbound/picking-worksheet-controller.ts +7 -11
- package/server/controllers/worksheet-controller.ts +25 -2
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +13 -0
- 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/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 +99 -94
- 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/putaway/complete-putaway.ts +45 -15
- package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +98 -213
- package/server/graphql/types/worksheet/index.ts +5 -2
- package/server/graphql/types/worksheet/multiple-release-good-worksheet.ts +8 -0
- package/server/utils/worksheet-util.ts +3 -1
|
@@ -24,6 +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
28
|
if (!foundRO) throw new Error(`Release good order doesn't exists.`)
|
|
28
29
|
let targetOIs: OrderInventory[] = foundRO.orderInventories
|
|
29
30
|
let foundOVs: OrderVas[] = foundRO.orderVass
|
|
@@ -94,77 +95,81 @@ export const pendingCancellationReleaseOrder = {
|
|
|
94
95
|
await tx.getRepository(OrderVas).save(foundOVs)
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
// find worksheet and update status to PENDING_CANCEL
|
|
99
|
+
let foundWS: Worksheet = await tx.getRepository(Worksheet).findOne({
|
|
100
|
+
where: {
|
|
101
|
+
domain,
|
|
102
|
+
releaseGood: foundRO
|
|
103
|
+
},
|
|
104
|
+
order: { 'createdAt': 'DESC' }
|
|
105
|
+
})
|
|
105
106
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
updater: user
|
|
111
|
-
}
|
|
112
|
-
})
|
|
113
|
-
await tx.getRepository(WorksheetDetail).save(pickedWSD)
|
|
114
|
-
|
|
115
|
-
let replacedWSD: WorksheetDetail[] = await tx.getRepository(WorksheetDetail).find({
|
|
116
|
-
where: {
|
|
117
|
-
domain,
|
|
118
|
-
targetInventory: In(pickedOIs.map(oi => oi.id)),
|
|
119
|
-
status: ORDER_INVENTORY_STATUS.REPLACED
|
|
120
|
-
},
|
|
121
|
-
relations: ['targetInventory']
|
|
107
|
+
if (foundWS) {
|
|
108
|
+
await tx.getRepository(Worksheet).update({ id: foundWS.id }, {
|
|
109
|
+
status: ORDER_INVENTORY_STATUS.PENDING_CANCEL,
|
|
110
|
+
updater: user
|
|
122
111
|
})
|
|
123
112
|
|
|
124
|
-
if (
|
|
125
|
-
let
|
|
126
|
-
|
|
113
|
+
if (pickedOIs && pickedOIs.length) {
|
|
114
|
+
let pickedWSD: WorksheetDetail[] = await tx.getRepository(WorksheetDetail).find({
|
|
115
|
+
where: {
|
|
116
|
+
domain,
|
|
117
|
+
targetInventory: In(pickedOIs.map(oi => oi.id)),
|
|
118
|
+
status: ORDER_INVENTORY_STATUS.DONE,
|
|
119
|
+
worksheet: foundWS
|
|
120
|
+
}
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
pickedWSD = pickedWSD.map((wsd: WorksheetDetail) => {
|
|
127
124
|
return {
|
|
128
|
-
...
|
|
129
|
-
status: ORDER_INVENTORY_STATUS.
|
|
125
|
+
...wsd,
|
|
126
|
+
status: ORDER_INVENTORY_STATUS.PENDING_CANCEL,
|
|
130
127
|
updater: user
|
|
131
128
|
}
|
|
132
129
|
})
|
|
133
|
-
await tx.getRepository(
|
|
134
|
-
}
|
|
135
|
-
}
|
|
130
|
+
await tx.getRepository(WorksheetDetail).save(pickedWSD)
|
|
136
131
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
132
|
+
let replacedWSD: WorksheetDetail[] = await tx.getRepository(WorksheetDetail).find({
|
|
133
|
+
where: {
|
|
134
|
+
domain,
|
|
135
|
+
targetInventory: In(pickedOIs.map(oi => oi.id)),
|
|
136
|
+
status: ORDER_INVENTORY_STATUS.REPLACED,
|
|
137
|
+
worksheet: foundWS
|
|
138
|
+
},
|
|
139
|
+
relations: ['targetInventory']
|
|
140
|
+
})
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
142
|
+
if (replacedWSD && replacedWSD.length) {
|
|
143
|
+
let replacedOI: OrderInventory[] = replacedWSD.map((wsd: WorksheetDetail) => wsd.targetInventory)
|
|
144
|
+
replacedOI = replacedOI.map((oi: OrderInventory) => {
|
|
145
|
+
return {
|
|
146
|
+
...oi,
|
|
147
|
+
status: ORDER_INVENTORY_STATUS.REPLACED,
|
|
148
|
+
updater: user
|
|
149
|
+
}
|
|
150
|
+
})
|
|
151
|
+
await tx.getRepository(OrderInventory).save(replacedOI)
|
|
147
152
|
}
|
|
148
|
-
})
|
|
149
|
-
await tx.getRepository(WorksheetDetail).save(pickingWSD)
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// find worksheet and update status to PENDING_CANCEL
|
|
153
|
-
let foundWS: Worksheet[] = await tx.getRepository(Worksheet).find({
|
|
154
|
-
where: {
|
|
155
|
-
domain,
|
|
156
|
-
releaseGood: foundRO
|
|
157
153
|
}
|
|
158
|
-
})
|
|
159
154
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
155
|
+
if (pickingOIs && pickingOIs.length) {
|
|
156
|
+
let pickingWSD: WorksheetDetail[] = await tx.getRepository(WorksheetDetail).find({
|
|
157
|
+
where: {
|
|
158
|
+
domain, targetInventory: In(pickingOIs.map(oi => oi.id)),
|
|
159
|
+
worksheet: foundWS
|
|
160
|
+
}
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
pickingWSD = pickingWSD.map((wsd: WorksheetDetail) => {
|
|
164
|
+
return {
|
|
165
|
+
...wsd,
|
|
166
|
+
status: ORDER_INVENTORY_STATUS.PENDING_CANCEL,
|
|
167
|
+
updater: user
|
|
168
|
+
}
|
|
169
|
+
})
|
|
170
|
+
await tx.getRepository(WorksheetDetail).save(pickingWSD)
|
|
165
171
|
}
|
|
166
|
-
}
|
|
167
|
-
await tx.getRepository(Worksheet).save(foundWS)
|
|
172
|
+
}
|
|
168
173
|
|
|
169
174
|
// find DO and change status to pending cancel
|
|
170
175
|
let foundDO: DeliveryOrder[] = await tx.getRepository(DeliveryOrder).find({
|
|
@@ -186,43 +191,43 @@ export const pendingCancellationReleaseOrder = {
|
|
|
186
191
|
updater: user
|
|
187
192
|
})
|
|
188
193
|
|
|
189
|
-
// notification logics
|
|
190
|
-
// get Office Admin Users
|
|
191
|
-
const users: any[] = await tx
|
|
192
|
-
.getRepository('users_roles')
|
|
193
|
-
.createQueryBuilder('ur')
|
|
194
|
-
.select('ur.users_id', 'id')
|
|
195
|
-
.where(qb => {
|
|
196
|
-
const subQuery = qb
|
|
197
|
-
.subQuery()
|
|
198
|
-
.select('role.id')
|
|
199
|
-
.from(Role, 'role')
|
|
200
|
-
.where("role.name = 'Office Admin'")
|
|
201
|
-
.andWhere('role.domain_id = :domain', { domain: domain.id })
|
|
202
|
-
.getQuery()
|
|
203
|
-
return 'ur.roles_id IN ' + subQuery
|
|
204
|
-
})
|
|
205
|
-
.getRawMany()
|
|
206
|
-
|
|
207
|
-
// send notification to Office Admin Users
|
|
208
|
-
if (users?.length && context.header?.referer) {
|
|
209
|
-
const receivers: any[] = users.map(user => user.id)
|
|
210
|
-
const msg = {
|
|
211
|
-
title: `${foundRO.name} cancellation`,
|
|
212
|
-
body: `${customerBizplace.name} is requesting to cancel order`,
|
|
213
|
-
url: context.header.referer,
|
|
214
|
-
data: { url: context.header.referer }
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* @notes Temporary off sendNotification due to suspect of causing wms down
|
|
219
|
-
*/
|
|
220
194
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
195
|
+
/**
|
|
196
|
+
* @notes Temporary off sendNotification due to suspect of causing wms down
|
|
197
|
+
*/
|
|
198
|
+
// // notification logics
|
|
199
|
+
// // get Office Admin Users
|
|
200
|
+
// const users: any[] = await tx
|
|
201
|
+
// .getRepository('users_roles')
|
|
202
|
+
// .createQueryBuilder('ur')
|
|
203
|
+
// .select('ur.users_id', 'id')
|
|
204
|
+
// .where(qb => {
|
|
205
|
+
// const subQuery = qb
|
|
206
|
+
// .subQuery()
|
|
207
|
+
// .select('role.id')
|
|
208
|
+
// .from(Role, 'role')
|
|
209
|
+
// .where("role.name = 'Office Admin'")
|
|
210
|
+
// .andWhere('role.domain_id = :domain', { domain: domain.id })
|
|
211
|
+
// .getQuery()
|
|
212
|
+
// return 'ur.roles_id IN ' + subQuery
|
|
213
|
+
// })
|
|
214
|
+
// .getRawMany()
|
|
215
|
+
|
|
216
|
+
// // send notification to Office Admin Users
|
|
217
|
+
// if (users?.length && context.header?.referer) {
|
|
218
|
+
// const receivers: any[] = users.map(user => user.id)
|
|
219
|
+
// const msg = {
|
|
220
|
+
// title: `${foundRO.name} cancellation`,
|
|
221
|
+
// body: `${customerBizplace.name} is requesting to cancel order`,
|
|
222
|
+
// url: context.header.referer,
|
|
223
|
+
// data: { url: context.header.referer }
|
|
224
|
+
// }
|
|
225
|
+
|
|
226
|
+
// await sendNotification({
|
|
227
|
+
// receivers,
|
|
228
|
+
// message: { ...msg }
|
|
229
|
+
// })
|
|
230
|
+
// }
|
|
226
231
|
|
|
227
232
|
return
|
|
228
233
|
}
|
|
@@ -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)
|