@things-factory/worksheet-base 4.3.239 → 4.3.241
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/loading-worksheet-controller.js +36 -9
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +13 -7
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-ro-do.js +21 -8
- package/dist-server/controllers/render-ro-do.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +157 -31
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +21 -8
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +62 -3
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +18 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js +22 -1
- package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +9 -7
- package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +31 -16
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +3 -0
- package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +2 -1
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
- package/package.json +4 -4
- package/server/controllers/outbound/loading-worksheet-controller.ts +38 -10
- package/server/controllers/outbound/picking-worksheet-controller.ts +14 -6
- package/server/controllers/render-ro-do.ts +25 -6
- package/server/controllers/vas/vas-worksheet-controller.ts +239 -49
- package/server/controllers/worksheet-controller.ts +21 -10
- package/server/graphql/resolvers/worksheet/loading/loading.ts +0 -2
- package/server/graphql/resolvers/worksheet/loading/undo-loading.ts +5 -4
- package/server/graphql/resolvers/worksheet/loading-worksheet.ts +68 -2
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +20 -1
- package/server/graphql/resolvers/worksheet/vas/complete-vas.ts +27 -2
- package/server/graphql/resolvers/worksheet/vas-worksheet.ts +7 -5
- package/server/graphql/resolvers/worksheet/worksheet.ts +34 -13
- package/server/graphql/resolvers/worksheet-detail/create-worksheet-detail.ts +5 -1
- package/server/graphql/resolvers/worksheet-detail/worksheet-detail.ts +1 -1
- package/server/graphql/types/worksheet/index.ts +2 -1
- package/server/graphql/types/worksheet/worksheet-detail-info.ts +1 -0
|
@@ -5,9 +5,9 @@ import { EntityManager } from 'typeorm'
|
|
|
5
5
|
import { LoadingWorksheetController } from '../../../../controllers'
|
|
6
6
|
|
|
7
7
|
export const undoLoadingResolver = {
|
|
8
|
-
async undoLoading(_: any, { deliveryOrder, palletIds }, context: any) {
|
|
8
|
+
async undoLoading(_: any, { deliveryOrder, palletIds, productIds }, context: any) {
|
|
9
9
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
10
|
-
await undoLoading(tx, domain, user, deliveryOrder, palletIds)
|
|
10
|
+
await undoLoading(tx, domain, user, deliveryOrder, palletIds, productIds)
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -16,8 +16,9 @@ export async function undoLoading(
|
|
|
16
16
|
domain: Domain,
|
|
17
17
|
user: User,
|
|
18
18
|
deliveryOrder: Partial<DeliveryOrder>,
|
|
19
|
-
palletIds: string[]
|
|
19
|
+
palletIds: string[],
|
|
20
|
+
productIds: string[]
|
|
20
21
|
): Promise<void> {
|
|
21
22
|
const worksheetController: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
|
|
22
|
-
await worksheetController.undoLoading(deliveryOrder, palletIds)
|
|
23
|
+
await worksheetController.undoLoading(deliveryOrder, palletIds, productIds)
|
|
23
24
|
}
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
OrderInventory,
|
|
7
7
|
ReleaseGood,
|
|
8
8
|
OrderTote,
|
|
9
|
+
OrderVas,
|
|
9
10
|
OrderToteItem
|
|
10
11
|
} from '@things-factory/sales-base'
|
|
11
12
|
import { Domain } from '@things-factory/shell'
|
|
@@ -70,6 +71,7 @@ export const loadingWorksheetResolver = {
|
|
|
70
71
|
},
|
|
71
72
|
relations: [
|
|
72
73
|
'targetInventory',
|
|
74
|
+
'targetInventory.product',
|
|
73
75
|
'targetInventory.orderProduct',
|
|
74
76
|
'targetInventory.inventory',
|
|
75
77
|
'targetInventory.inventory.location',
|
|
@@ -111,6 +113,20 @@ export const loadingWorksheetResolver = {
|
|
|
111
113
|
foundWSD.sort((a, b) => (a.toteName > b.toteName ? 1 : -1))
|
|
112
114
|
}
|
|
113
115
|
|
|
116
|
+
let foundOV: OrderVas[] = await getRepository(OrderVas).find({
|
|
117
|
+
where: {
|
|
118
|
+
domain,
|
|
119
|
+
releaseGood: releaseGood,
|
|
120
|
+
status: Not(Equal(WORKSHEET_STATUS.DONE))
|
|
121
|
+
},
|
|
122
|
+
relations: ['newProduct', 'product', 'newProductDetail']
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
if (foundOV.length > 0) {
|
|
126
|
+
foundWSD = await insertVas(foundWSD, foundOV)
|
|
127
|
+
// foundWSD = await formatLoadingDataVas(foundWSD)
|
|
128
|
+
}
|
|
129
|
+
|
|
114
130
|
let worksheetDetailInfos = foundWSD
|
|
115
131
|
.filter(itm => itm.targetInventory.releaseQty > 0)
|
|
116
132
|
.map((loadingWSD: any) => {
|
|
@@ -121,7 +137,8 @@ export const loadingWorksheetResolver = {
|
|
|
121
137
|
palletId: inventory.palletId,
|
|
122
138
|
batchId: inventory.batchId,
|
|
123
139
|
batchIdRef: inventory.batchIdRef,
|
|
124
|
-
product:
|
|
140
|
+
product: targetInventory.product,
|
|
141
|
+
pickedQty: targetInventory.pickedQty,
|
|
125
142
|
releaseQty: targetInventory.releaseQty,
|
|
126
143
|
releaseUomValue: targetInventory.releaseUomValue,
|
|
127
144
|
status: loadingWSD.status,
|
|
@@ -130,7 +147,8 @@ export const loadingWorksheetResolver = {
|
|
|
130
147
|
packingType: inventory.packingType,
|
|
131
148
|
packingSize: inventory.packingSize,
|
|
132
149
|
inventory: targetInventory.inventory,
|
|
133
|
-
toteName: loadingWSD.toteName
|
|
150
|
+
toteName: loadingWSD.toteName,
|
|
151
|
+
targetVas: loadingWSD.targetVas
|
|
134
152
|
}
|
|
135
153
|
})
|
|
136
154
|
|
|
@@ -146,3 +164,51 @@ export const loadingWorksheetResolver = {
|
|
|
146
164
|
}
|
|
147
165
|
}
|
|
148
166
|
}
|
|
167
|
+
|
|
168
|
+
export async function insertVas(wsd, ov) {
|
|
169
|
+
wsd = wsd.map(wd => {
|
|
170
|
+
for (let i = 0; i < ov.length; i++) {
|
|
171
|
+
// if (ov[i].newTargetProduct) {
|
|
172
|
+
if (wd.targetInventory.productId == ov[i].product.id && wd.targetInventory.batchId == ov[i].batchId) {
|
|
173
|
+
wd.targetVas = ov[i]
|
|
174
|
+
}
|
|
175
|
+
// }
|
|
176
|
+
}
|
|
177
|
+
return wd
|
|
178
|
+
})
|
|
179
|
+
return wsd
|
|
180
|
+
// }
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// export async function formatLoadingDataVas(wsd) {
|
|
184
|
+
// let formattedData: WorksheetDetail[] = []
|
|
185
|
+
// formattedData = wsd.map(wd => {
|
|
186
|
+
// if (wd.targetVas) {
|
|
187
|
+
// if (wd.targetVas.newTargetProduct) {
|
|
188
|
+
// const newQty = wd.targetInventory.releaseQty - wd.targetVas.qty
|
|
189
|
+
// wd.targetInventory.releaseQty = newQty
|
|
190
|
+
// wd.targetInventory.pickedQty = newQty
|
|
191
|
+
// const newSku: WorksheetDetail = {
|
|
192
|
+
// ...wd,
|
|
193
|
+
// targetVas: null,
|
|
194
|
+
// targetInventory: {
|
|
195
|
+
// ...wd.targetInventory,
|
|
196
|
+
// releaseQty: wd.targetVas.outputQty,
|
|
197
|
+
// pickedQty: wd.targetVas.outputQty,
|
|
198
|
+
// inventory: { ...wd.targetInventory.inventory, product: wd.targetVas.newTargetProduct }
|
|
199
|
+
// }
|
|
200
|
+
// }
|
|
201
|
+
// wsd.push(newSku)
|
|
202
|
+
// }
|
|
203
|
+
// }
|
|
204
|
+
// return wd
|
|
205
|
+
// })
|
|
206
|
+
|
|
207
|
+
// formattedData = wsd.splice(wd => wd.targetInventory.pickedQty == 0)
|
|
208
|
+
|
|
209
|
+
// // formattedData = formattedData.sort((a, b) =>
|
|
210
|
+
// // a.targetInventory.inventory.batchId > b ? 1 : a.targetVas && !b.targetVas ? -1 : a.targetVas && !b.targetVas ? 1 : 0
|
|
211
|
+
// // )
|
|
212
|
+
|
|
213
|
+
// return formattedData
|
|
214
|
+
// }
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
OrderPackage,
|
|
24
24
|
OrderPackageItem,
|
|
25
25
|
OrderProduct,
|
|
26
|
+
OrderVas,
|
|
26
27
|
ReleaseGood,
|
|
27
28
|
Replenishment
|
|
28
29
|
} from '@things-factory/sales-base'
|
|
@@ -43,6 +44,7 @@ import { EcommerceController } from '../../../../controllers/ecommerce'
|
|
|
43
44
|
import { WorksheetController } from '../../../../controllers/worksheet-controller'
|
|
44
45
|
import { Worksheet, WorksheetDetail } from '../../../../entities'
|
|
45
46
|
import { createLmdParcel } from '../../../../utils'
|
|
47
|
+
import { activateVas } from '../vas/activate-vas'
|
|
46
48
|
|
|
47
49
|
export const completePickingResolver = {
|
|
48
50
|
async completePicking(_: any, { releaseGoodNo }, context: any) {
|
|
@@ -400,8 +402,25 @@ export async function completePicking(
|
|
|
400
402
|
}
|
|
401
403
|
})
|
|
402
404
|
|
|
405
|
+
let orderVas: OrderVas[] = await tx.getRepository(OrderVas).find({ where: { domain: domain, releaseGood } })
|
|
406
|
+
if (orderVas) {
|
|
407
|
+
try {
|
|
408
|
+
const vasWorksheet: Worksheet = await tx
|
|
409
|
+
.getRepository(Worksheet)
|
|
410
|
+
.findOne({ where: { releaseGood, type: WORKSHEET_TYPE.VAS } })
|
|
411
|
+
|
|
412
|
+
const vasWorksheetDetails: WorksheetDetail[] = await tx
|
|
413
|
+
.getRepository(WorksheetDetail)
|
|
414
|
+
.find({ where: { domain: domain, worksheet: vasWorksheet.id } })
|
|
415
|
+
|
|
416
|
+
if (vasWorksheet) {
|
|
417
|
+
await activateVas(tx, domain, user, vasWorksheet.name, vasWorksheetDetails)
|
|
418
|
+
}
|
|
419
|
+
} catch (e) { }
|
|
420
|
+
}
|
|
421
|
+
// Can improve by applying "Else" since if got VAS user has to complete then only we generate loading worksheet
|
|
403
422
|
if (!existLoadingWorksheet && !releaseGood.courierOption && !releaseGood.packingOption) {
|
|
404
|
-
if (pickedTargetInventories.length > 0) {
|
|
423
|
+
if (pickedTargetInventories.length > 0 && orderVas.length == 0) {
|
|
405
424
|
const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
|
|
406
425
|
let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(
|
|
407
426
|
releaseGoodNo,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { User } from '@things-factory/auth-base'
|
|
2
2
|
import { ArrivalNotice, ReleaseGood } from '@things-factory/sales-base'
|
|
3
3
|
import { Domain } from '@things-factory/shell'
|
|
4
|
-
import { EntityManager } from 'typeorm'
|
|
4
|
+
import { EntityManager, getRepository, In } from 'typeorm'
|
|
5
5
|
import { WORKSHEET_TYPE } from '../../../../constants'
|
|
6
6
|
import { LoadingWorksheetController, PutawayWorksheetController, VasWorksheetController } from '../../../../controllers'
|
|
7
7
|
import { Worksheet, WorksheetDetail } from '../../../../entities'
|
|
@@ -9,6 +9,24 @@ import { Worksheet, WorksheetDetail } from '../../../../entities'
|
|
|
9
9
|
export const completeVasResolver = {
|
|
10
10
|
async completeVas(_: any, { orderNo, orderType, worksheetDetails }, context: any) {
|
|
11
11
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
12
|
+
if (!worksheetDetails) {
|
|
13
|
+
const releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({
|
|
14
|
+
domain: domain.id,
|
|
15
|
+
name: orderNo
|
|
16
|
+
})
|
|
17
|
+
const worksheet: Worksheet[] = await getRepository(Worksheet).find({
|
|
18
|
+
domain: domain.id,
|
|
19
|
+
releaseGood: releaseGood.id,
|
|
20
|
+
type: WORKSHEET_TYPE.VAS
|
|
21
|
+
})
|
|
22
|
+
const worksheetId = worksheet.map(w => {
|
|
23
|
+
return w.id
|
|
24
|
+
})
|
|
25
|
+
worksheetDetails = await getRepository(WorksheetDetail).find({
|
|
26
|
+
domain: domain.id,
|
|
27
|
+
worksheet: In(worksheetId)
|
|
28
|
+
})
|
|
29
|
+
}
|
|
12
30
|
await completeVAS(tx, domain, user, orderNo, orderType, worksheetDetails)
|
|
13
31
|
}
|
|
14
32
|
}
|
|
@@ -22,7 +40,14 @@ export async function completeVAS(
|
|
|
22
40
|
worksheetDetails: WorksheetDetail[]
|
|
23
41
|
): Promise<Worksheet> {
|
|
24
42
|
const worksheetController: VasWorksheetController = new VasWorksheetController(tx, domain, user)
|
|
25
|
-
let worksheet: Worksheet = await worksheetController.completeVAS(
|
|
43
|
+
let worksheet: Worksheet = await worksheetController.completeVAS(
|
|
44
|
+
tx,
|
|
45
|
+
domain,
|
|
46
|
+
user,
|
|
47
|
+
orderNo,
|
|
48
|
+
orderType,
|
|
49
|
+
worksheetDetails
|
|
50
|
+
)
|
|
26
51
|
|
|
27
52
|
// if (orderType === ORDER_TYPES.ARRIVAL_NOTICE) {
|
|
28
53
|
// if (!worksheet.worksheetDetails?.length || !worksheet.arrivalNotice?.id) {
|
|
@@ -43,10 +43,11 @@ export const vasWorksheetResolver = {
|
|
|
43
43
|
[
|
|
44
44
|
'worksheetDetails',
|
|
45
45
|
'worksheetDetails.targetVas',
|
|
46
|
-
'worksheetDetails.targetVas.vas',
|
|
47
46
|
'worksheetDetails.targetVas.inventory',
|
|
48
|
-
'worksheetDetails.targetVas.
|
|
49
|
-
'worksheetDetails.targetVas.
|
|
47
|
+
'worksheetDetails.targetVas.product',
|
|
48
|
+
'worksheetDetails.targetVas.newProduct',
|
|
49
|
+
'worksheetDetails.targetVas.orderVasItems',
|
|
50
|
+
'worksheetDetails.targetVas.orderVasItems.vas',
|
|
50
51
|
'creator',
|
|
51
52
|
'updater'
|
|
52
53
|
],
|
|
@@ -83,7 +84,7 @@ export const vasWorksheetResolver = {
|
|
|
83
84
|
relatedOrderInv: wsd.targetInventory,
|
|
84
85
|
batchId: targetVas?.batchId,
|
|
85
86
|
targetName: targetVas?.name,
|
|
86
|
-
vas: targetVas?.vas,
|
|
87
|
+
vas: targetVas?.orderVasItems?.vas,
|
|
87
88
|
set: targetVas?.set,
|
|
88
89
|
inventory: targetVas?.inventory,
|
|
89
90
|
locationInv: targetVas?.inventory?.location?.name,
|
|
@@ -98,7 +99,8 @@ export const vasWorksheetResolver = {
|
|
|
98
99
|
description: wsd.description,
|
|
99
100
|
remark: targetVas?.remark,
|
|
100
101
|
actualQty: targetVas?.actualQty,
|
|
101
|
-
actualUomValue: targetVas?.actualUomValue
|
|
102
|
+
actualUomValue: targetVas?.actualUomValue,
|
|
103
|
+
targetVas: targetVas ? targetVas : null
|
|
102
104
|
}
|
|
103
105
|
})
|
|
104
106
|
}
|
|
@@ -8,6 +8,7 @@ import { Inventory, INVENTORY_STATUS, InventoryHistory } from '@things-factory/w
|
|
|
8
8
|
|
|
9
9
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
10
10
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
11
|
+
import { OrderTargetFields } from 'server/controllers'
|
|
11
12
|
|
|
12
13
|
interface WorksheetInterface extends Worksheet {
|
|
13
14
|
orderProducts: OrderProduct[]
|
|
@@ -47,10 +48,15 @@ export const worksheetResolver = {
|
|
|
47
48
|
'worksheetDetails.targetProduct',
|
|
48
49
|
'worksheetDetails.targetProduct.product',
|
|
49
50
|
'worksheetDetails.targetVas',
|
|
51
|
+
'worksheetDetails.targetVas.orderInventory',
|
|
50
52
|
'worksheetDetails.targetVas.vas',
|
|
51
53
|
'worksheetDetails.targetVas.inventory',
|
|
52
54
|
'worksheetDetails.targetVas.inventory.location',
|
|
53
|
-
'worksheetDetails.targetVas.
|
|
55
|
+
'worksheetDetails.targetVas.product',
|
|
56
|
+
'worksheetDetails.targetVas.newProduct',
|
|
57
|
+
'worksheetDetails.targetVas.newProductDetail',
|
|
58
|
+
'worksheetDetails.targetVas.orderVasItems',
|
|
59
|
+
'worksheetDetails.targetVas.orderVasItems.vas',
|
|
54
60
|
'worksheetDetails.targetInventory',
|
|
55
61
|
'worksheetDetails.targetInventory.releaseGood',
|
|
56
62
|
'worksheetDetails.targetInventory.product',
|
|
@@ -255,13 +261,16 @@ export const worksheetResolver = {
|
|
|
255
261
|
})
|
|
256
262
|
}
|
|
257
263
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
264
|
+
// need use promise all for better performance
|
|
265
|
+
for (let i = 0; i < worksheet.worksheetDetails.length; i++) {
|
|
266
|
+
if (worksheet.worksheetDetails[i].targetInventory !== null) {
|
|
267
|
+
worksheet.worksheetDetails.sort(function (a, b) {
|
|
268
|
+
return (
|
|
269
|
+
worksheet.orderInventories.map(oi => oi.id).indexOf(a.targetInventory.id) -
|
|
270
|
+
worksheet.orderInventories.map(oi => oi.id).indexOf(b.targetInventory.id)
|
|
271
|
+
)
|
|
272
|
+
})
|
|
273
|
+
}
|
|
265
274
|
}
|
|
266
275
|
|
|
267
276
|
if (worksheet?.returnOrder?.id) {
|
|
@@ -310,7 +319,6 @@ export const worksheetResolver = {
|
|
|
310
319
|
return worksheet
|
|
311
320
|
},
|
|
312
321
|
|
|
313
|
-
|
|
314
322
|
async inboundWorksheetDetails(_: any, { name }, context: any) {
|
|
315
323
|
const { domain }: { domain: Domain } = context.state
|
|
316
324
|
|
|
@@ -339,7 +347,8 @@ export const worksheetResolver = {
|
|
|
339
347
|
|
|
340
348
|
let worksheetDetails: WorksheetDetail[] = []
|
|
341
349
|
if (foundWorksheet.type === 'UNLOADING') {
|
|
342
|
-
qbWorksheetDetails
|
|
350
|
+
qbWorksheetDetails
|
|
351
|
+
.select('worksheetDetails')
|
|
343
352
|
.leftJoinAndSelect('worksheetDetails.targetProduct', 'targetProduct')
|
|
344
353
|
.leftJoinAndSelect('targetProduct.product', 'product')
|
|
345
354
|
.where('worksheetDetails.worksheet_id =:worksheetId', { worksheetId: foundWorksheet.id })
|
|
@@ -360,11 +369,23 @@ export const worksheetResolver = {
|
|
|
360
369
|
worksheetDetails = await qbWorksheetDetails.getMany()
|
|
361
370
|
}
|
|
362
371
|
|
|
363
|
-
let orderInventories: OrderInventory[] = worksheetDetails.filter(wd => {
|
|
372
|
+
let orderInventories: OrderInventory[] = worksheetDetails.filter(wd => {
|
|
373
|
+
if (wd.targetInventory) {
|
|
374
|
+
return wd.targetInventory
|
|
375
|
+
}
|
|
376
|
+
})
|
|
364
377
|
|
|
365
|
-
let orderProducts: OrderProduct[] = worksheetDetails.filter(wd => {
|
|
378
|
+
let orderProducts: OrderProduct[] = worksheetDetails.filter(wd => {
|
|
379
|
+
if (wd.targetProduct) {
|
|
380
|
+
return wd.targetProduct
|
|
381
|
+
}
|
|
382
|
+
})
|
|
366
383
|
|
|
367
|
-
let orderVas: OrderVas[] = worksheetDetails.filter(wd => {
|
|
384
|
+
let orderVas: OrderVas[] = worksheetDetails.filter(wd => {
|
|
385
|
+
if (wd.targetVas) {
|
|
386
|
+
return wd.targetVas
|
|
387
|
+
}
|
|
388
|
+
})
|
|
368
389
|
|
|
369
390
|
// console.time('map')
|
|
370
391
|
let worksheet: WorksheetInterface = {
|
|
@@ -2,7 +2,7 @@ import { User } from '@things-factory/auth-base'
|
|
|
2
2
|
import { Domain } from '@things-factory/shell'
|
|
3
3
|
import { EntityManager } from 'typeorm'
|
|
4
4
|
import { getPermittedBizplaceIds, Worker } from '@things-factory/biz-base'
|
|
5
|
-
import { OrderProduct, OrderVas } from '@things-factory/sales-base'
|
|
5
|
+
import { OrderProduct, OrderVas, OrderInventory } from '@things-factory/sales-base'
|
|
6
6
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
7
7
|
|
|
8
8
|
export const createWorksheetDetail = {
|
|
@@ -24,6 +24,10 @@ export const createWorksheetDetail = {
|
|
|
24
24
|
worksheetDetail.targetProduct = await tx.getRepository(OrderProduct).findOne(worksheetDetail.targetProduct.id)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
if (worksheetDetail.targetInventory && worksheetDetail.targetInventory.id) {
|
|
28
|
+
worksheetDetail.targetInventory = await tx.getRepository(OrderInventory).findOne(worksheetDetail.targetInventory.id)
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
if (worksheetDetail.targetVas && worksheetDetail.targetVas.id) {
|
|
28
32
|
worksheetDetail.targetVas = await tx.getRepository(OrderVas).findOne(worksheetDetail.targetVas.id)
|
|
29
33
|
}
|
|
@@ -14,7 +14,7 @@ export const worksheetDetailResolver = {
|
|
|
14
14
|
bizplace: In(await getPermittedBizplaceIds(domain, user)),
|
|
15
15
|
name
|
|
16
16
|
},
|
|
17
|
-
relations: ['domain', 'bizplace', 'worksheet', 'worker', 'targetProduct', 'targetVas', 'creator', 'updater']
|
|
17
|
+
relations: ['domain', 'bizplace', 'worksheet', 'worker', 'targetInventory', 'targetProduct', 'targetVas', 'creator', 'updater']
|
|
18
18
|
})
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -314,6 +314,7 @@ export const Mutation = /* GraphQL */ `
|
|
|
314
314
|
undoLoading (
|
|
315
315
|
deliveryOrder: ObjectRef!
|
|
316
316
|
palletIds: [String]!
|
|
317
|
+
productIds: [String]!
|
|
317
318
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
318
319
|
|
|
319
320
|
transfer (
|
|
@@ -497,7 +498,7 @@ export const Mutation = /* GraphQL */ `
|
|
|
497
498
|
completeVas (
|
|
498
499
|
orderNo: String!
|
|
499
500
|
orderType: String!
|
|
500
|
-
worksheetDetails: [WorksheetDetailPatch]
|
|
501
|
+
worksheetDetails: [WorksheetDetailPatch]
|
|
501
502
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
502
503
|
|
|
503
504
|
repalletizing (
|