@things-factory/worksheet-base 4.3.79-alpha.1 → 4.3.79
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 +4 -2
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +4 -10
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +20 -22
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +39 -34
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +14 -12
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +2 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +3 -2
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +0 -6
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +2 -1
- 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/inventories-by-pallet.js +1 -2
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +28 -67
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +8 -23
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +7 -30
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +8 -23
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +8 -25
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +12 -59
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +25 -51
- 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 +118 -262
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +2 -3
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +14 -39
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.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-detail/index.js +0 -1
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/utils/inventory-util.js +98 -1
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +17 -17
- package/server/controllers/inbound/unloading-worksheet-controller.ts +4 -5
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +4 -2
- package/server/controllers/outbound/loading-worksheet-controller.ts +3 -9
- package/server/controllers/outbound/packing-worksheet-controller.ts +31 -23
- package/server/controllers/outbound/picking-worksheet-controller.ts +51 -34
- 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 +6 -4
- package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +0 -6
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +2 -1
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +2 -2
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +1 -3
- package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +33 -77
- package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +9 -26
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +9 -34
- package/server/graphql/resolvers/worksheet/packing/packing.ts +9 -26
- package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +9 -28
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +13 -68
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +30 -60
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +2 -2
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +130 -288
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +2 -3
- package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +15 -45
- package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +2 -3
- package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +1 -4
- package/server/graphql/types/worksheet-detail/index.ts +0 -1
- package/server/utils/inventory-util.ts +126 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/worksheet-base",
|
|
3
|
-
"version": "4.3.79
|
|
3
|
+
"version": "4.3.79",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,21 +24,21 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@things-factory/auth-base": "^4.3.
|
|
28
|
-
"@things-factory/biz-base": "^4.3.
|
|
29
|
-
"@things-factory/document-template-base": "^4.3.
|
|
30
|
-
"@things-factory/id-rule-base": "^4.3.
|
|
31
|
-
"@things-factory/integration-lmd": "^4.3.
|
|
32
|
-
"@things-factory/integration-marketplace": "^4.3.
|
|
33
|
-
"@things-factory/integration-sellercraft": "^4.3.79
|
|
34
|
-
"@things-factory/integration-sftp": "^4.3.
|
|
35
|
-
"@things-factory/marketplace-base": "^4.3.
|
|
36
|
-
"@things-factory/notification": "^4.3.
|
|
37
|
-
"@things-factory/sales-base": "^4.3.79
|
|
38
|
-
"@things-factory/setting-base": "^4.3.
|
|
39
|
-
"@things-factory/shell": "^4.3.
|
|
40
|
-
"@things-factory/transport-base": "^4.3.
|
|
41
|
-
"@things-factory/warehouse-base": "^4.3.79
|
|
27
|
+
"@things-factory/auth-base": "^4.3.78",
|
|
28
|
+
"@things-factory/biz-base": "^4.3.78",
|
|
29
|
+
"@things-factory/document-template-base": "^4.3.78",
|
|
30
|
+
"@things-factory/id-rule-base": "^4.3.78",
|
|
31
|
+
"@things-factory/integration-lmd": "^4.3.78",
|
|
32
|
+
"@things-factory/integration-marketplace": "^4.3.78",
|
|
33
|
+
"@things-factory/integration-sellercraft": "^4.3.79",
|
|
34
|
+
"@things-factory/integration-sftp": "^4.3.78",
|
|
35
|
+
"@things-factory/marketplace-base": "^4.3.78",
|
|
36
|
+
"@things-factory/notification": "^4.3.78",
|
|
37
|
+
"@things-factory/sales-base": "^4.3.79",
|
|
38
|
+
"@things-factory/setting-base": "^4.3.78",
|
|
39
|
+
"@things-factory/shell": "^4.3.78",
|
|
40
|
+
"@things-factory/transport-base": "^4.3.78",
|
|
41
|
+
"@things-factory/warehouse-base": "^4.3.79"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "e1d319473973c800e4605cc6c47836b9a328c71b"
|
|
44
44
|
}
|
|
@@ -31,13 +31,12 @@ import {
|
|
|
31
31
|
InventoryNoGenerator,
|
|
32
32
|
Location,
|
|
33
33
|
Pallet,
|
|
34
|
-
Warehouse
|
|
35
|
-
generateInventoryHistory
|
|
34
|
+
Warehouse
|
|
36
35
|
} from '@things-factory/warehouse-base'
|
|
37
36
|
|
|
38
37
|
import { RULE_TYPE, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
|
|
39
38
|
import { Worksheet, WorksheetDetail } from '../../entities'
|
|
40
|
-
import { DateGenerator } from '../../utils'
|
|
39
|
+
import { DateGenerator, generateInventoryHistory } from '../../utils'
|
|
41
40
|
import { VasWorksheetController } from '../vas/vas-worksheet-controller'
|
|
42
41
|
|
|
43
42
|
export type UnloadingWorksheetDetail = Partial<WorksheetDetail> & {
|
|
@@ -178,7 +177,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
178
177
|
} else {
|
|
179
178
|
uom = orderProductDetail.uom
|
|
180
179
|
}
|
|
181
|
-
qty = (await this.getChildQty(productDetails, productBarcode, orderProductDetail
|
|
180
|
+
qty = (await this.getChildQty(productDetails, productBarcode, orderProductDetail)) * qty
|
|
182
181
|
} else {
|
|
183
182
|
uom = foundProductDetail.uom
|
|
184
183
|
qty
|
|
@@ -521,7 +520,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
521
520
|
} else {
|
|
522
521
|
uom = orderProductDetail.uom
|
|
523
522
|
}
|
|
524
|
-
qty = await this.getChildQty(productDetails, productBarcode, orderProductDetail
|
|
523
|
+
qty = await this.getChildQty(productDetails, productBarcode, orderProductDetail)
|
|
525
524
|
} else {
|
|
526
525
|
uom = foundProductDetail.uom
|
|
527
526
|
qty++
|
|
@@ -103,14 +103,16 @@ export class CycleCountWorksheetController extends WorksheetController {
|
|
|
103
103
|
let keyval = {
|
|
104
104
|
batchId: 'batch_id',
|
|
105
105
|
batchIdRef: 'batch_id_ref',
|
|
106
|
-
|
|
106
|
+
packingType: 'packing_type',
|
|
107
|
+
packingSize: 'packing_size',
|
|
108
|
+
productId: 'product_id'
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
qb.andWhere(
|
|
110
112
|
new Brackets(qb => {
|
|
111
113
|
orderInventory.forEach((itm, idx) => {
|
|
112
114
|
// sample itm value
|
|
113
|
-
// batchId: 'WO00019730', batchIdRef: null,
|
|
115
|
+
// batchId: 'WO00019730', batchIdRef: null, packingType: 'CARBOY', packingSize: 1, productId: '1d679587-c713-42d6-bd0a-74e587e39cc7'
|
|
114
116
|
qb.orWhere(
|
|
115
117
|
new Brackets(qb2 => {
|
|
116
118
|
let first = true
|
|
@@ -12,10 +12,11 @@ import {
|
|
|
12
12
|
OrderToteItem,
|
|
13
13
|
OrderTote
|
|
14
14
|
} from '@things-factory/sales-base'
|
|
15
|
-
import { Inventory, INVENTORY_TRANSACTION_TYPE, Tote, TOTE_STATUS
|
|
15
|
+
import { Inventory, INVENTORY_TRANSACTION_TYPE, Tote, TOTE_STATUS } from '@things-factory/warehouse-base'
|
|
16
16
|
|
|
17
17
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
|
|
18
18
|
import { Worksheet, WorksheetDetail } from '../../entities'
|
|
19
|
+
import { generateInventoryHistory } from '../../utils'
|
|
19
20
|
import { VasWorksheetController } from '../vas/vas-worksheet-controller'
|
|
20
21
|
|
|
21
22
|
export class LoadingWorksheetController extends VasWorksheetController {
|
|
@@ -111,13 +112,7 @@ export class LoadingWorksheetController extends VasWorksheetController {
|
|
|
111
112
|
let worksheetDetail = await this.findExecutableWorksheetDetailByName(
|
|
112
113
|
worksheetDetails[i].name,
|
|
113
114
|
WORKSHEET_TYPE.LOADING,
|
|
114
|
-
[
|
|
115
|
-
'worksheet',
|
|
116
|
-
'targetInventory',
|
|
117
|
-
'targetInventory.inventory',
|
|
118
|
-
'targetInventory.product',
|
|
119
|
-
'targetInventory.productDetail'
|
|
120
|
-
]
|
|
115
|
+
['worksheet', 'targetInventory', 'targetInventory.inventory', 'targetInventory.product']
|
|
121
116
|
)
|
|
122
117
|
|
|
123
118
|
const worksheet: Worksheet = worksheetDetail.worksheet
|
|
@@ -175,7 +170,6 @@ export class LoadingWorksheetController extends VasWorksheetController {
|
|
|
175
170
|
newTargetInventory.releaseQty = remainQty
|
|
176
171
|
newTargetInventory.releaseUomValue = remainUomValue
|
|
177
172
|
newTargetInventory.product = targetInventory.product
|
|
178
|
-
newTargetInventory.productDetail = targetInventory.productDetail
|
|
179
173
|
newTargetInventory.packingType = targetInventory.packingType
|
|
180
174
|
newTargetInventory.batchId = targetInventory.batchId
|
|
181
175
|
newTargetInventory.creator = this.user
|
|
@@ -93,15 +93,13 @@ export class PackingWorksheetController extends VasWorksheetController {
|
|
|
93
93
|
'targetInventory.releaseGood',
|
|
94
94
|
'targetInventory.inventory',
|
|
95
95
|
'targetInventory.inventory.location',
|
|
96
|
-
'targetInventory.product'
|
|
97
|
-
'targetInventory.productDetail'
|
|
96
|
+
'targetInventory.product'
|
|
98
97
|
]
|
|
99
98
|
)
|
|
100
|
-
let targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
101
|
-
let inventory: Inventory = targetInventory.inventory
|
|
102
99
|
const releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
|
|
100
|
+
let targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
103
101
|
const product: Product = targetInventory.product
|
|
104
|
-
|
|
102
|
+
let inventory: Inventory = targetInventory.inventory
|
|
105
103
|
const pickedQty: number = targetInventory.releaseQty
|
|
106
104
|
|
|
107
105
|
if (packedQty > pickedQty) {
|
|
@@ -116,7 +114,8 @@ export class PackingWorksheetController extends VasWorksheetController {
|
|
|
116
114
|
}
|
|
117
115
|
|
|
118
116
|
let foundSerialNumber: InventoryItem = await this.trxMgr.getRepository(InventoryItem).findOne({
|
|
119
|
-
where: { domain: this.domain, serialNumber: serialNumber,
|
|
117
|
+
where: { domain: this.domain, serialNumber: serialNumber, product },
|
|
118
|
+
relations: ['product', 'inventory']
|
|
120
119
|
})
|
|
121
120
|
|
|
122
121
|
if (foundSerialNumber) {
|
|
@@ -140,7 +139,6 @@ export class PackingWorksheetController extends VasWorksheetController {
|
|
|
140
139
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.OUTBOUND
|
|
141
140
|
inventoryItem.outboundOrderId = releaseGood.id
|
|
142
141
|
inventoryItem.product = product
|
|
143
|
-
inventoryItem.productDetail = productDetail
|
|
144
142
|
inventoryItem.inventory = inventory
|
|
145
143
|
inventoryItem.domain = this.domain
|
|
146
144
|
|
|
@@ -196,28 +194,39 @@ export class PackingWorksheetController extends VasWorksheetController {
|
|
|
196
194
|
'targetInventory.inventory.product',
|
|
197
195
|
'targetInventory.inventory.product.productDetails',
|
|
198
196
|
'targetInventory.inventory.product.productDetails.childProductDetail',
|
|
199
|
-
'targetInventory.inventory.location'
|
|
200
|
-
'targetInventory.productDetail'
|
|
197
|
+
'targetInventory.inventory.location'
|
|
201
198
|
]
|
|
202
199
|
)
|
|
200
|
+
const releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
|
|
201
|
+
const product: Product = worksheetDetail.targetInventory.inventory.product
|
|
202
|
+
const filterProductDetails: ProductDetail[] = product?.productDetails.filter(detail => !detail.deletedAt)
|
|
203
203
|
let targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
204
204
|
let inventory: Inventory = targetInventory.inventory
|
|
205
205
|
let packedQty: number = 1
|
|
206
206
|
let pickedQty: number = targetInventory.releaseQty
|
|
207
|
-
const releaseGood: ReleaseGood = targetInventory.releaseGood
|
|
208
|
-
const product: Product = targetInventory.inventory.product
|
|
209
|
-
const productDetail: ProductDetail = targetInventory.productDetail
|
|
210
207
|
|
|
211
208
|
// search for matching product barcode
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
209
|
+
const productDetail: ProductDetail = product?.productDetails
|
|
210
|
+
.filter(detail => !detail.deletedAt)
|
|
211
|
+
.find(
|
|
212
|
+
detail =>
|
|
213
|
+
detail.gtin === productBarcode &&
|
|
214
|
+
detail.packingType === inventory.packingType &&
|
|
215
|
+
detail.packingSize === inventory.packingSize
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
if (!productDetail && !product?.isRequireSerialNumberScanningOutbound) {
|
|
219
|
+
let roProductDetail: ProductDetail = product?.productDetails.find(
|
|
220
|
+
(parentDetail: ProductDetail) =>
|
|
221
|
+
parentDetail.packingType === inventory.packingType && parentDetail.packingSize == inventory.packingSize
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
roProductDetail.product = product
|
|
225
|
+
|
|
226
|
+
let childQty = await this.getChildQty(filterProductDetails, productBarcode, roProductDetail)
|
|
227
|
+
packedQty *= childQty
|
|
228
|
+
} else if (!productDetail) {
|
|
229
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
221
230
|
}
|
|
222
231
|
|
|
223
232
|
if (packedQty + targetInventory.packedQty > pickedQty) {
|
|
@@ -233,7 +242,7 @@ export class PackingWorksheetController extends VasWorksheetController {
|
|
|
233
242
|
|
|
234
243
|
let foundSerialNumber: InventoryItem = await this.trxMgr
|
|
235
244
|
.getRepository(InventoryItem)
|
|
236
|
-
.findOne({ where: { domain: this.domain, serialNumber: serialNumber,
|
|
245
|
+
.findOne({ where: { domain: this.domain, serialNumber: serialNumber, product } })
|
|
237
246
|
|
|
238
247
|
if (foundSerialNumber) {
|
|
239
248
|
if (foundSerialNumber.inventoryId !== inventory.id) {
|
|
@@ -260,7 +269,6 @@ export class PackingWorksheetController extends VasWorksheetController {
|
|
|
260
269
|
inventoryItem.outboundOrderId = releaseGood.id
|
|
261
270
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.OUTBOUND
|
|
262
271
|
inventoryItem.product = product
|
|
263
|
-
inventoryItem.productDetail = productDetail
|
|
264
272
|
inventoryItem.inventory = inventory
|
|
265
273
|
inventoryItem.domain = this.domain
|
|
266
274
|
|
|
@@ -261,7 +261,7 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
261
261
|
})
|
|
262
262
|
|
|
263
263
|
let releaseGoods: ReleaseGood[] = pickingOrderInventory.map((oi: OrderInventory) => oi.releaseGood)
|
|
264
|
-
|
|
264
|
+
|
|
265
265
|
if (releaseGoods?.length) {
|
|
266
266
|
releaseGoods = releaseGoods.map((rg: ReleaseGood) => {
|
|
267
267
|
return {
|
|
@@ -435,8 +435,7 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
435
435
|
'targetInventory.orderProduct',
|
|
436
436
|
'targetInventory.product.productDetails',
|
|
437
437
|
'targetInventory.product.productDetails.product',
|
|
438
|
-
'targetInventory.product.productDetails.childProductDetail'
|
|
439
|
-
'targetInventory.productDetail'
|
|
438
|
+
'targetInventory.product.productDetails.childProductDetail'
|
|
440
439
|
]
|
|
441
440
|
)
|
|
442
441
|
|
|
@@ -444,7 +443,6 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
444
443
|
let targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
445
444
|
let targetProduct: OrderProduct = targetInventory.orderProduct
|
|
446
445
|
const product: Product = targetInventory.product
|
|
447
|
-
const productDetail: ProductDetail = targetInventory.productDetail
|
|
448
446
|
let inventory: Inventory = targetInventory.inventory
|
|
449
447
|
let bizplace: Bizplace = worksheetDetail.worksheet.bizplace
|
|
450
448
|
|
|
@@ -460,6 +458,9 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
460
458
|
if (inventory.cartonId !== cartonId)
|
|
461
459
|
throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('Carton ID', cartonId, inventory.cartonId))
|
|
462
460
|
|
|
461
|
+
const packingType: string = inventory.packingType
|
|
462
|
+
const packingSize: number = inventory.packingSize
|
|
463
|
+
|
|
463
464
|
let pickedQty: number = pickingQty ? pickingQty : 1
|
|
464
465
|
const releaseQty: number = targetInventory.releaseQty
|
|
465
466
|
|
|
@@ -467,15 +468,28 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
467
468
|
|
|
468
469
|
// search for matching product barcode
|
|
469
470
|
const productDetails: ProductDetail[] = product?.productDetails.filter(detail => !detail.deletedAt)
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
if (!scannedProductDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
471
|
+
const isMatchingBarcode: boolean = productDetails.map(detail => detail.gtin).includes(productBarcode)
|
|
472
|
+
if (!isMatchingBarcode) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
473
473
|
|
|
474
474
|
// case for scanning parent packing type, packing size
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
475
|
+
const foundProductDetail: ProductDetail = productDetails.find(
|
|
476
|
+
(detail: ProductDetail) =>
|
|
477
|
+
detail.gtin === productBarcode &&
|
|
478
|
+
detail.packingType === packingType &&
|
|
479
|
+
detail.packingSize == packingSize &&
|
|
480
|
+
detail.product?.id === product.id
|
|
481
|
+
)
|
|
482
|
+
|
|
483
|
+
if (!foundProductDetail && !product?.isRequireSerialNumberScanningOutbound) {
|
|
484
|
+
const roProductDetail: ProductDetail = productDetails.find(
|
|
485
|
+
(parentDetail: ProductDetail) =>
|
|
486
|
+
parentDetail.packingType === packingType && parentDetail.packingSize == packingSize
|
|
487
|
+
)
|
|
488
|
+
|
|
489
|
+
let childQty = await this.getChildQty(productDetails, productBarcode, roProductDetail)
|
|
478
490
|
pickedQty *= childQty
|
|
491
|
+
} else if (!foundProductDetail) {
|
|
492
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
479
493
|
}
|
|
480
494
|
|
|
481
495
|
if (pickedQty + targetInventory.pickedQty > releaseQty) {
|
|
@@ -527,7 +541,6 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
527
541
|
inventoryItem.outboundOrderId = releaseGood.id
|
|
528
542
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.OUTBOUND
|
|
529
543
|
inventoryItem.product = product
|
|
530
|
-
inventoryItem.productDetail = productDetail
|
|
531
544
|
inventoryItem.inventory = inventory
|
|
532
545
|
inventoryItem.domain = this.domain
|
|
533
546
|
|
|
@@ -567,15 +580,13 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
567
580
|
'targetInventory.orderProduct',
|
|
568
581
|
'targetInventory.inventory',
|
|
569
582
|
'targetInventory.inventory.location',
|
|
570
|
-
'targetInventory.product'
|
|
571
|
-
'targetInventory.productDetail'
|
|
583
|
+
'targetInventory.product'
|
|
572
584
|
]
|
|
573
585
|
)
|
|
574
586
|
|
|
575
587
|
const releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
|
|
576
588
|
let targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
577
589
|
const product: Product = targetInventory.product
|
|
578
|
-
const productDetail: ProductDetail = targetInventory.productDetail
|
|
579
590
|
let inventory: Inventory = targetInventory.inventory
|
|
580
591
|
let targetProduct: OrderProduct = targetInventory.orderProduct
|
|
581
592
|
let bizplace: Bizplace = worksheetDetail.worksheet.bizplace
|
|
@@ -605,13 +616,13 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
605
616
|
})
|
|
606
617
|
|
|
607
618
|
let foundSerialNumber: InventoryItem = await this.trxMgr.getRepository(InventoryItem).findOne({
|
|
608
|
-
where: { domain: this.domain, serialNumber: serialNumber,
|
|
609
|
-
relations: ['product', '
|
|
619
|
+
where: { domain: this.domain, serialNumber: serialNumber, product },
|
|
620
|
+
relations: ['product', 'inventory']
|
|
610
621
|
})
|
|
611
622
|
|
|
612
623
|
let scannedPalletIdInventory: Inventory = await this.trxMgr
|
|
613
624
|
.getRepository(Inventory)
|
|
614
|
-
.findOne({ where: { domain: this.domain, palletId }, relations: ['
|
|
625
|
+
.findOne({ where: { domain: this.domain, palletId }, relations: ['product'] })
|
|
615
626
|
|
|
616
627
|
if (foundSerialNumber) {
|
|
617
628
|
if (foundSerialNumber.outboundOrderId) {
|
|
@@ -638,7 +649,6 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
638
649
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.OUTBOUND
|
|
639
650
|
inventoryItem.outboundOrderId = releaseGood.id
|
|
640
651
|
inventoryItem.product = product
|
|
641
|
-
inventoryItem.productDetail = productDetail
|
|
642
652
|
inventoryItem.inventory = scannedPalletIdInventory
|
|
643
653
|
inventoryItem.domain = this.domain
|
|
644
654
|
|
|
@@ -664,7 +674,8 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
664
674
|
)
|
|
665
675
|
} else if (
|
|
666
676
|
scannedPalletIdInventory.batchId == inventory.batchId &&
|
|
667
|
-
scannedPalletIdInventory.
|
|
677
|
+
scannedPalletIdInventory.product.id == product.id &&
|
|
678
|
+
scannedPalletIdInventory.product.packingType == product.packingType
|
|
668
679
|
) {
|
|
669
680
|
//if replacement order inventory does not exist
|
|
670
681
|
await this.serialNumberReplacement(
|
|
@@ -672,7 +683,6 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
672
683
|
scannedPalletIdInventory,
|
|
673
684
|
releaseGood,
|
|
674
685
|
product,
|
|
675
|
-
productDetail,
|
|
676
686
|
worksheetDetail,
|
|
677
687
|
foundSerialNumber
|
|
678
688
|
)
|
|
@@ -848,19 +858,16 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
848
858
|
'worksheetDetails.targetInventory.releaseGood',
|
|
849
859
|
'worksheetDetails.targetInventory.inventory',
|
|
850
860
|
'worksheetDetails.targetInventory.inventory.location',
|
|
851
|
-
'worksheetDetails.targetInventory.
|
|
852
|
-
'worksheetDetails.targetInventory.productDetail.product',
|
|
861
|
+
'worksheetDetails.targetInventory.product',
|
|
853
862
|
'worksheetDetails.targetInventory.product.productDetails',
|
|
854
863
|
'worksheetDetails.targetInventory.product.productDetails.childProductDetail'
|
|
855
864
|
]
|
|
856
865
|
})
|
|
857
866
|
|
|
858
867
|
const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
|
|
859
|
-
const
|
|
868
|
+
const product: Product = worksheetDetails
|
|
860
869
|
.map((wsd: WorksheetDetail) => wsd.targetInventory.product)
|
|
861
|
-
.find((
|
|
862
|
-
|
|
863
|
-
const product: Product = productDetail.product
|
|
870
|
+
.find((product: Product) => product.id === inventory.product.id)
|
|
864
871
|
|
|
865
872
|
const batchId: string = inventory.batchId
|
|
866
873
|
const packingType: string = inventory.packingType
|
|
@@ -879,14 +886,26 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
879
886
|
|
|
880
887
|
// search for matching product barcode
|
|
881
888
|
const productDetails: ProductDetail[] = product?.productDetails.filter(detail => !detail.deletedAt)
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
if (!scannedProductDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
889
|
+
const isMatchingBarcode: boolean = productDetails.map(detail => detail.gtin).includes(productBarcode)
|
|
890
|
+
if (!isMatchingBarcode) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(`GTIN (${productBarcode})`))
|
|
885
891
|
|
|
886
892
|
// case for scanning parent packing type, packing size
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
893
|
+
const foundProductDetail: ProductDetail = productDetails.find(
|
|
894
|
+
(detail: ProductDetail) =>
|
|
895
|
+
detail.gtin === productBarcode && detail.packingType === packingType && detail.packingSize == packingSize
|
|
896
|
+
)
|
|
897
|
+
|
|
898
|
+
if (!foundProductDetail) {
|
|
899
|
+
const roProductDetail: ProductDetail = productDetails.find(
|
|
900
|
+
(parentDetail: ProductDetail) =>
|
|
901
|
+
parentDetail.packingType === packingType && parentDetail.packingSize == packingSize
|
|
902
|
+
)
|
|
903
|
+
if (!roProductDetail)
|
|
904
|
+
throw new Error(
|
|
905
|
+
this.ERROR_MSG.FIND.NO_RESULT(`Packing Type ( ${packingType}) or Packing Size (${packingSize})`)
|
|
906
|
+
)
|
|
907
|
+
|
|
908
|
+
let childQty = await this.getChildQty(productDetails, productBarcode, roProductDetail)
|
|
890
909
|
pickedQty *= childQty
|
|
891
910
|
}
|
|
892
911
|
|
|
@@ -1281,7 +1300,6 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1281
1300
|
scannedPalletIdInventory,
|
|
1282
1301
|
releaseGood,
|
|
1283
1302
|
product,
|
|
1284
|
-
productDetail,
|
|
1285
1303
|
worksheetDetail,
|
|
1286
1304
|
foundSerialNumber
|
|
1287
1305
|
) {
|
|
@@ -1346,7 +1364,6 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1346
1364
|
releaseUomValue: newOrderInventoryReleaseUomValue,
|
|
1347
1365
|
pickedQty: 1,
|
|
1348
1366
|
product,
|
|
1349
|
-
productDetail,
|
|
1350
1367
|
inventory: scannedPalletIdInventory,
|
|
1351
1368
|
creator: this.user,
|
|
1352
1369
|
updater: this.user
|
|
@@ -95,8 +95,7 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
95
95
|
'worksheetDetails.targetInventory.inventory.product',
|
|
96
96
|
'worksheetDetails.targetInventory.inventory.product.productDetails',
|
|
97
97
|
'worksheetDetails.targetInventory.inventory.product.productDetails.product',
|
|
98
|
-
'worksheetDetails.targetInventory.releaseGood'
|
|
99
|
-
'worksheetDetails.targetInventory.productDetail'
|
|
98
|
+
'worksheetDetails.targetInventory.releaseGood'
|
|
100
99
|
]
|
|
101
100
|
})
|
|
102
101
|
|
|
@@ -119,12 +118,17 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
119
118
|
const matchingProductDetail: ProductDetail = productDetails.find(
|
|
120
119
|
(productDetail: ProductDetail) => productDetail.gtin === productBarcode
|
|
121
120
|
)
|
|
122
|
-
if (!matchingProductDetail) throw new Error(
|
|
121
|
+
if (!matchingProductDetail) throw new Error('Unable to find product barcode.')
|
|
123
122
|
const packingType: string = matchingProductDetail.packingType
|
|
124
123
|
const packingSize: number = matchingProductDetail.packingSize
|
|
124
|
+
if (!matchingProductDetail)
|
|
125
|
+
throw new Error(this.ERROR_MSG.PRODUCT.BARCODE_NOT_EXIST(productBarcode, packingType, packingSize))
|
|
125
126
|
|
|
126
127
|
let matchingOIs: OrderInventory[] = orderInventories.filter(
|
|
127
|
-
(oi: OrderInventory) =>
|
|
128
|
+
(oi: OrderInventory) =>
|
|
129
|
+
oi.packingType === packingType &&
|
|
130
|
+
oi.packingSize === packingSize &&
|
|
131
|
+
oi.product?.id === matchingProductDetail.product?.id
|
|
128
132
|
)
|
|
129
133
|
|
|
130
134
|
let sortedQty: number = 1
|
|
@@ -138,7 +142,6 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
138
142
|
const inventory: Inventory = matchingOI.inventory
|
|
139
143
|
const releaseGood: ReleaseGood = matchingOI.releaseGood
|
|
140
144
|
const product: Product = inventory.product
|
|
141
|
-
const productDetail: ProductDetail = matchingOI.productDetail
|
|
142
145
|
|
|
143
146
|
if (releaseQty != matchingOI?.sortedQty && sortedQty == 1) {
|
|
144
147
|
// Serial Number scanning for batch picking
|
|
@@ -150,7 +153,7 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
150
153
|
|
|
151
154
|
let foundSerialNumber: InventoryItem = await this.trxMgr
|
|
152
155
|
.getRepository(InventoryItem)
|
|
153
|
-
.findOne({ where: { domain: this.domain, serialNumber: serialNumber,
|
|
156
|
+
.findOne({ where: { domain: this.domain, serialNumber: serialNumber, product } })
|
|
154
157
|
|
|
155
158
|
if (foundSerialNumber) {
|
|
156
159
|
if (foundSerialNumber.inventoryId !== inventory.id) {
|
|
@@ -177,7 +180,6 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
177
180
|
inventoryItem.outboundOrderId = releaseGood.id
|
|
178
181
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.OUTBOUND
|
|
179
182
|
inventoryItem.product = product
|
|
180
|
-
inventoryItem.productDetail = productDetail
|
|
181
183
|
inventoryItem.inventory = inventory
|
|
182
184
|
inventoryItem.domain = this.domain
|
|
183
185
|
|
|
@@ -261,8 +263,7 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
261
263
|
'worksheetDetails.targetInventory.inventory.product',
|
|
262
264
|
'worksheetDetails.targetInventory.inventory.product.productDetails',
|
|
263
265
|
'worksheetDetails.targetInventory.inventory.product.productDetails.product',
|
|
264
|
-
'worksheetDetails.targetInventory.releaseGood'
|
|
265
|
-
'worksheetDetails.targetInventory.productDetail'
|
|
266
|
+
'worksheetDetails.targetInventory.releaseGood'
|
|
266
267
|
]
|
|
267
268
|
})
|
|
268
269
|
|
|
@@ -282,7 +283,6 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
282
283
|
const inventory: Inventory = matchingOI.inventory
|
|
283
284
|
const releaseGood: ReleaseGood = matchingOI.releaseGood
|
|
284
285
|
const product: Product = matchingOI.inventory.product
|
|
285
|
-
const productDetail: ProductDetail = matchingOI.productDetail
|
|
286
286
|
const packingType: string = matchingOI.packingType
|
|
287
287
|
const packingSize: number = matchingOI.packingSize
|
|
288
288
|
|
|
@@ -292,7 +292,8 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
292
292
|
}
|
|
293
293
|
|
|
294
294
|
let foundSerialNumber: InventoryItem = await this.trxMgr.getRepository(InventoryItem).findOne({
|
|
295
|
-
where: { domain: this.domain, serialNumber: serialNumber,
|
|
295
|
+
where: { domain: this.domain, serialNumber: serialNumber, product },
|
|
296
|
+
relations: ['product', 'inventory']
|
|
296
297
|
})
|
|
297
298
|
|
|
298
299
|
if (foundSerialNumber) {
|
|
@@ -316,7 +317,6 @@ export class SortingWorksheetController extends VasWorksheetController {
|
|
|
316
317
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.OUTBOUND
|
|
317
318
|
inventoryItem.outboundOrderId = releaseGood.id
|
|
318
319
|
inventoryItem.product = product
|
|
319
|
-
inventoryItem.productDetail = productDetail
|
|
320
320
|
inventoryItem.inventory = inventory
|
|
321
321
|
inventoryItem.domain = this.domain
|
|
322
322
|
|
|
@@ -22,8 +22,7 @@ import {
|
|
|
22
22
|
InventoryNoGenerator,
|
|
23
23
|
Location,
|
|
24
24
|
LOCATION_TYPE,
|
|
25
|
-
Warehouse
|
|
26
|
-
generateInventoryHistory
|
|
25
|
+
Warehouse
|
|
27
26
|
} from '@things-factory/warehouse-base'
|
|
28
27
|
|
|
29
28
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
|
|
@@ -37,6 +36,7 @@ import {
|
|
|
37
36
|
RefOrderType
|
|
38
37
|
} from '../../graphql/resolvers/worksheet/vas-transactions'
|
|
39
38
|
import { PackingUnits } from '../../graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging'
|
|
39
|
+
import { generateInventoryHistory } from '../../utils'
|
|
40
40
|
import { ReferenceOrderType, WorksheetController } from '../worksheet-controller'
|
|
41
41
|
|
|
42
42
|
type CompleteTransactionType = (trxMgr: EntityManager, orderVas: OrderVas, user: User) => Promise<void>
|
|
@@ -19,11 +19,11 @@ import {
|
|
|
19
19
|
VasOrder
|
|
20
20
|
} from '@things-factory/sales-base'
|
|
21
21
|
import { Domain } from '@things-factory/shell'
|
|
22
|
-
import { Inventory, INVENTORY_STATUS, InventoryItem, Pallet
|
|
22
|
+
import { Inventory, INVENTORY_STATUS, InventoryItem, Pallet } from '@things-factory/warehouse-base'
|
|
23
23
|
|
|
24
24
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'
|
|
25
25
|
import { Worksheet, WorksheetDetail } from '../entities'
|
|
26
|
-
import { WorksheetNoGenerator } from '../utils'
|
|
26
|
+
import { generateInventoryHistory, WorksheetNoGenerator } from '../utils'
|
|
27
27
|
|
|
28
28
|
export type ReferenceOrderType = ArrivalNotice | ReleaseGood | VasOrder | InventoryCheck | DeliveryOrder | ReturnOrder
|
|
29
29
|
export type OrderTargetTypes = OrderProduct | OrderInventory | OrderVas
|
|
@@ -1007,9 +1007,11 @@ export class WorksheetController {
|
|
|
1007
1007
|
async getChildQty(
|
|
1008
1008
|
productDetails: ProductDetail[],
|
|
1009
1009
|
productBarcode: string,
|
|
1010
|
-
orderProductDetail: ProductDetail
|
|
1011
|
-
scannedProductDetail: ProductDetail
|
|
1010
|
+
orderProductDetail: ProductDetail
|
|
1012
1011
|
): Promise<number> {
|
|
1012
|
+
const scannedProductDetail: ProductDetail = productDetails.find(
|
|
1013
|
+
(productDetail: ProductDetail) => productDetail.gtin === productBarcode
|
|
1014
|
+
)
|
|
1013
1015
|
let hasChildRelation: boolean = Boolean(scannedProductDetail?.childProductDetail)
|
|
1014
1016
|
let hasMatchingChild: boolean
|
|
1015
1017
|
let childQty: number
|