@things-factory/worksheet-base 4.3.185 → 4.3.187
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/constants/worksheet.js +3 -1
- package/dist-server/constants/worksheet.js.map +1 -1
- package/dist-server/controllers/ecommerce/ecommerce-controller.js +4 -1
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +10 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/index.js +1 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +19 -4
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/pos/xilnex-controller.js +5 -1
- package/dist-server/controllers/pos/xilnex-controller.js.map +1 -1
- package/dist-server/controllers/replenishment/index.js +18 -0
- package/dist-server/controllers/replenishment/index.js.map +1 -0
- package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js +455 -0
- package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/worksheet-controller.js +32 -9
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/entities/index.js +10 -2
- package/dist-server/entities/index.js.map +1 -1
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +15 -1
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
- package/dist-server/entities/warehouse-inventory-assignment-ranking.js +37 -0
- package/dist-server/entities/warehouse-inventory-assignment-ranking.js.map +1 -0
- package/dist-server/entities/worksheet.js +13 -9
- package/dist-server/entities/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cancel-replenishment.js +57 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-replenishment.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +23 -1
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +7 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-replenishement-worksheet.js +19 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-replenishement-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/index.js +5 -2
- package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +37 -26
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +16 -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 +290 -264
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/index.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/replenishment-picking.js +12 -0
- package/dist-server/graphql/resolvers/worksheet/picking/replenishment-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +142 -78
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-replenishment-putaway.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-replenishment-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/index.js +4 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/replenishment-putaway.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/replenishment-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/undo-replenishment-putaway.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/undo-replenishment-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-replenishment-worksheet.js +81 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-replenishment-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/activate-picking-replenishment.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/activate-picking-replenishment.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/index.js +6 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +1 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +28 -2
- package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +42 -1
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/replenish-inventory-patch.js +11 -0
- package/dist-server/graphql/types/worksheet/replenish-inventory-patch.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
- package/dist-server/index.js +1 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/utils/index.js +1 -0
- package/dist-server/utils/index.js.map +1 -1
- package/dist-server/utils/inventory-util.js +2 -0
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/dist-server/utils/lmd-util.js +76 -0
- package/dist-server/utils/lmd-util.js.map +1 -0
- package/dist-server/utils/worksheet-no-generator.js +21 -1
- package/dist-server/utils/worksheet-no-generator.js.map +1 -1
- package/dist-server/utils/worksheet-util.js +3 -0
- package/dist-server/utils/worksheet-util.js.map +1 -1
- package/package.json +13 -13
- package/server/constants/worksheet.ts +3 -1
- package/server/controllers/ecommerce/ecommerce-controller.ts +4 -1
- package/server/controllers/ecommerce/sellercraft-controller.ts +15 -1
- package/server/controllers/index.ts +1 -1
- package/server/controllers/outbound/picking-worksheet-controller.ts +30 -10
- package/server/controllers/pos/xilnex-controller.ts +6 -1
- package/server/controllers/replenishment/index.ts +1 -0
- package/server/controllers/replenishment/replenishment-worksheet-controller.ts +632 -0
- package/server/controllers/worksheet-controller.ts +47 -13
- package/server/entities/index.ts +15 -2
- package/server/entities/warehouse-bizplace-onhand-inventory.ts +13 -1
- package/server/entities/warehouse-inventory-assignment-ranking.ts +19 -0
- package/server/entities/worksheet.ts +5 -1
- package/server/graphql/resolvers/worksheet/cancel-replenishment.ts +69 -0
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +22 -1
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +6 -1
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-replenishement-worksheet.ts +30 -0
- package/server/graphql/resolvers/worksheet/generate-worksheet/index.ts +3 -1
- package/server/graphql/resolvers/worksheet/index.ts +8 -2
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +81 -41
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +16 -2
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +347 -301
- package/server/graphql/resolvers/worksheet/picking/index.ts +3 -1
- package/server/graphql/resolvers/worksheet/picking/replenishment-picking.ts +27 -0
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +177 -95
- package/server/graphql/resolvers/worksheet/putaway/complete-replenishment-putaway.ts +25 -0
- package/server/graphql/resolvers/worksheet/putaway/index.ts +7 -1
- package/server/graphql/resolvers/worksheet/putaway/replenishment-putaway.ts +23 -0
- package/server/graphql/resolvers/worksheet/putaway/undo-replenishment-putaway.ts +22 -0
- package/server/graphql/resolvers/worksheet/putaway-replenishment-worksheet.ts +95 -0
- package/server/graphql/resolvers/worksheet/replenishment/activate-picking-replenishment.ts +26 -0
- package/server/graphql/resolvers/worksheet/replenishment/index.ts +5 -0
- package/server/graphql/resolvers/worksheet/worksheet.ts +1 -0
- package/server/graphql/resolvers/worksheet/worksheets.ts +38 -3
- package/server/graphql/types/worksheet/index.ts +42 -1
- package/server/graphql/types/worksheet/replenish-inventory-patch.ts +8 -0
- package/server/graphql/types/worksheet/worksheet-info.ts +1 -0
- package/server/graphql/types/worksheet/worksheet.ts +1 -0
- package/server/index.ts +1 -0
- package/server/utils/index.ts +1 -0
- package/server/utils/inventory-util.ts +3 -0
- package/server/utils/lmd-util.ts +86 -0
- package/server/utils/worksheet-no-generator.ts +29 -1
- package/server/utils/worksheet-util.ts +4 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/worksheet-base",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.187",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -26,19 +26,19 @@
|
|
|
26
26
|
"@things-factory/auth-base": "^4.3.179",
|
|
27
27
|
"@things-factory/biz-base": "^4.3.179",
|
|
28
28
|
"@things-factory/document-template-base": "^4.3.179",
|
|
29
|
-
"@things-factory/id-rule-base": "^4.3.
|
|
30
|
-
"@things-factory/integration-accounting": "^4.3.
|
|
31
|
-
"@things-factory/integration-lmd": "^4.3.
|
|
32
|
-
"@things-factory/integration-marketplace": "^4.3.
|
|
33
|
-
"@things-factory/integration-sellercraft": "^4.3.
|
|
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.
|
|
38
|
-
"@things-factory/setting-base": "^4.3.
|
|
29
|
+
"@things-factory/id-rule-base": "^4.3.187",
|
|
30
|
+
"@things-factory/integration-accounting": "^4.3.186",
|
|
31
|
+
"@things-factory/integration-lmd": "^4.3.186",
|
|
32
|
+
"@things-factory/integration-marketplace": "^4.3.186",
|
|
33
|
+
"@things-factory/integration-sellercraft": "^4.3.186",
|
|
34
|
+
"@things-factory/integration-sftp": "^4.3.186",
|
|
35
|
+
"@things-factory/marketplace-base": "^4.3.186",
|
|
36
|
+
"@things-factory/notification": "^4.3.186",
|
|
37
|
+
"@things-factory/sales-base": "^4.3.187",
|
|
38
|
+
"@things-factory/setting-base": "^4.3.186",
|
|
39
39
|
"@things-factory/shell": "^4.3.179",
|
|
40
40
|
"@things-factory/transport-base": "^4.3.179",
|
|
41
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
41
|
+
"@things-factory/warehouse-base": "^4.3.187"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "a6192bef4662aafeb4e9d4e715dca07aa1459b2d"
|
|
44
44
|
}
|
|
@@ -11,7 +11,9 @@ export const WORKSHEET_TYPE = {
|
|
|
11
11
|
CYCLE_COUNT_RECHECK: 'CYCLE_COUNT_RECHECK',
|
|
12
12
|
WAREHOUSE_RETURN: 'WAREHOUSE_RETURN',
|
|
13
13
|
UNLOADING_RETURN: 'UNLOADING_RETURN',
|
|
14
|
-
PUTAWAY_RETURN: 'PUTAWAY_RETURN'
|
|
14
|
+
PUTAWAY_RETURN: 'PUTAWAY_RETURN',
|
|
15
|
+
PICKING_REPLENISHMENT: 'PICKING_REPLENISHMENT',
|
|
16
|
+
PUTAWAY_REPLENISHMENT: 'PUTAWAY_REPLENISHMENT'
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
export const WORKSHEET_STATUS = {
|
|
@@ -232,7 +232,7 @@ export class EcommerceController extends WorksheetController {
|
|
|
232
232
|
? marketplaceOrderShipping.ownTransporter
|
|
233
233
|
: marketplaceOrderShipping.transporter
|
|
234
234
|
|
|
235
|
-
|
|
235
|
+
let orderPackage: OrderPackage = {
|
|
236
236
|
name: OrderNoGenerator.orderPackage(),
|
|
237
237
|
packageId: null,
|
|
238
238
|
trackingNo,
|
|
@@ -262,5 +262,8 @@ export class EcommerceController extends WorksheetController {
|
|
|
262
262
|
})
|
|
263
263
|
|
|
264
264
|
await tx.getRepository(OrderPackageItem).save(orderPackageItems)
|
|
265
|
+
orderPackage.orderPackageItems = orderPackageItems
|
|
266
|
+
releaseGood.orderPackages = [orderPackage]
|
|
267
|
+
return releaseGood
|
|
265
268
|
}
|
|
266
269
|
}
|
|
@@ -336,12 +336,26 @@ export class SellercraftController extends WorksheetController {
|
|
|
336
336
|
.filter(op => op?.marketRtsCallSuccess == undefined)
|
|
337
337
|
.map(async op => {
|
|
338
338
|
if (!op?.packageId) throw new Error('Order package id is not found')
|
|
339
|
+
if (releaseGood.lmdOption && !op?.parcelId) return
|
|
339
340
|
|
|
340
|
-
|
|
341
|
+
let orderInformation: any = {
|
|
341
342
|
accountId: sellercraft.accountId,
|
|
342
343
|
orderId: releaseGood.refNo2,
|
|
343
344
|
packageId: op.packageId
|
|
344
345
|
}
|
|
346
|
+
if (releaseGood.lmdOption) {
|
|
347
|
+
let releaseGoodQuery: ReleaseGood = await getRepository(ReleaseGood).findOne({
|
|
348
|
+
where: { id: releaseGood.id },
|
|
349
|
+
relations: ['lastMileDelivery']
|
|
350
|
+
})
|
|
351
|
+
orderInformation = {
|
|
352
|
+
...orderInformation,
|
|
353
|
+
awb: op.airwayBill,
|
|
354
|
+
trackingNo: op.trackingNo,
|
|
355
|
+
lmdOption: releaseGood.lmdOption,
|
|
356
|
+
shipperName: releaseGoodQuery.lastMileDelivery.platform
|
|
357
|
+
}
|
|
358
|
+
}
|
|
345
359
|
|
|
346
360
|
try {
|
|
347
361
|
await SellercraftAPI.initiateOrderShipment(sellercraft, {
|
|
@@ -11,7 +11,6 @@ export * from './render-fm-grn'
|
|
|
11
11
|
export * from './render-manifest'
|
|
12
12
|
export * from './render-po'
|
|
13
13
|
|
|
14
|
-
|
|
15
14
|
/* Worksheet Controllers */
|
|
16
15
|
export * from './worksheet-controller'
|
|
17
16
|
export * from './ecommerce'
|
|
@@ -19,3 +18,4 @@ export * from './inbound'
|
|
|
19
18
|
export * from './inspect'
|
|
20
19
|
export * from './outbound'
|
|
21
20
|
export * from './vas'
|
|
21
|
+
export * from './replenishment'
|
|
@@ -2,7 +2,6 @@ import { EntityManager, Equal, getConnection, getManager, In, IsNull, Not } from
|
|
|
2
2
|
|
|
3
3
|
import { ApplicationType } from '@things-factory/auth-base'
|
|
4
4
|
import { Bizplace } from '@things-factory/biz-base'
|
|
5
|
-
import { logger } from '@things-factory/env'
|
|
6
5
|
import { generateId } from '@things-factory/id-rule-base'
|
|
7
6
|
import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
|
|
8
7
|
import { Product, ProductBarcode, ProductDetail } from '@things-factory/product-base'
|
|
@@ -18,7 +17,8 @@ import {
|
|
|
18
17
|
OrderToteItem,
|
|
19
18
|
OrderToteSeal,
|
|
20
19
|
OrderVas,
|
|
21
|
-
ReleaseGood
|
|
20
|
+
ReleaseGood,
|
|
21
|
+
Replenishment
|
|
22
22
|
} from '@things-factory/sales-base'
|
|
23
23
|
import { Setting } from '@things-factory/setting-base'
|
|
24
24
|
import {
|
|
@@ -40,6 +40,7 @@ import { SellercraftController } from '../../controllers'
|
|
|
40
40
|
import { Worksheet, WorksheetDetail } from '../../entities'
|
|
41
41
|
import { isInventoryObsolete, WorksheetNoGenerator } from '../../utils'
|
|
42
42
|
import { VasWorksheetController } from '../vas/vas-worksheet-controller'
|
|
43
|
+
import { logger } from '@things-factory/env'
|
|
43
44
|
|
|
44
45
|
export class PickingWorksheetController extends VasWorksheetController {
|
|
45
46
|
async generatePickingWorksheet(releaseGoodNo: string, currentStatus: string = null): Promise<Worksheet> {
|
|
@@ -187,7 +188,13 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
187
188
|
let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PICKING, [
|
|
188
189
|
'releaseGood',
|
|
189
190
|
'releaseGood.bizplace',
|
|
191
|
+
'releaseGood.domain',
|
|
192
|
+
'releaseGood.lastMileDelivery',
|
|
190
193
|
'releaseGood.bizplace.domain',
|
|
194
|
+
'releaseGood.orderPackages',
|
|
195
|
+
'releaseGood.orderPackages.orderPackageItems',
|
|
196
|
+
'releaseGood.orderPackages.orderPackageItems.orderProduct',
|
|
197
|
+
'releaseGood.orderPackages.orderPackageItems.orderProduct.product',
|
|
191
198
|
'domain',
|
|
192
199
|
'bizplace',
|
|
193
200
|
'bizplace.domain',
|
|
@@ -203,6 +210,7 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
203
210
|
let targetInventory: OrderInventory = wsd.targetInventory
|
|
204
211
|
targetInventory.status = ORDER_INVENTORY_STATUS.PICKING
|
|
205
212
|
targetInventory.updater = this.user
|
|
213
|
+
|
|
206
214
|
return targetInventory
|
|
207
215
|
})
|
|
208
216
|
this.updateOrderTargets(targetInventories)
|
|
@@ -274,6 +282,7 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
274
282
|
'worksheetDetails',
|
|
275
283
|
'worksheetDetails.targetInventory',
|
|
276
284
|
'worksheetDetails.targetInventory.releaseGood',
|
|
285
|
+
'worksheetDetails.targetInventory.releaseGood.domain',
|
|
277
286
|
'worksheetDetails.targetInventory.product',
|
|
278
287
|
'bizplace',
|
|
279
288
|
'bizplace.domain',
|
|
@@ -286,6 +295,7 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
286
295
|
let targetInventory: OrderInventory = wsd.targetInventory
|
|
287
296
|
targetInventory.status = ORDER_INVENTORY_STATUS.PICKING
|
|
288
297
|
targetInventory.updater = this.user
|
|
298
|
+
|
|
289
299
|
return targetInventory
|
|
290
300
|
})
|
|
291
301
|
this.updateOrderTargets(targetInventories)
|
|
@@ -296,12 +306,16 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
296
306
|
const pickingOrderInventory: OrderInventory[] = await this.trxMgr.getRepository(OrderInventory).find({
|
|
297
307
|
where: { domain: this.domain, refWorksheetId: worksheet.id, status: ORDER_STATUS.PICKING },
|
|
298
308
|
relations: [
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
309
|
+
'releaseGood',
|
|
310
|
+
'releaseGood.domain',
|
|
311
|
+
'releaseGood.lastMileDelivery',
|
|
312
|
+
'releaseGood.bizplace',
|
|
313
|
+
'releaseGood.bizplace.domain',
|
|
314
|
+
'releaseGood.orderPackages',
|
|
315
|
+
'releaseGood.orderPackages.orderPackageItems',
|
|
316
|
+
'releaseGood.orderPackages.orderPackageItems.orderProduct',
|
|
317
|
+
'releaseGood.orderPackages.orderPackageItems.orderProduct.product'
|
|
318
|
+
]
|
|
305
319
|
})
|
|
306
320
|
|
|
307
321
|
let releaseGoods: ReleaseGood[] = pickingOrderInventory.reduce((data, oi: OrderInventory) => {
|
|
@@ -624,7 +638,10 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
624
638
|
let releaseGood: ReleaseGood = await this.trxMgr
|
|
625
639
|
.getRepository(ReleaseGood)
|
|
626
640
|
.findOne({ where: { id: foundSerialNumber.outboundOrderId } })
|
|
627
|
-
|
|
641
|
+
|
|
642
|
+
if (releaseGood) {
|
|
643
|
+
throw new Error(`Inventory Item is already picked in ${releaseGood.name}`)
|
|
644
|
+
}
|
|
628
645
|
}
|
|
629
646
|
|
|
630
647
|
foundSerialNumber.status = INVENTORY_STATUS.PICKING
|
|
@@ -851,7 +868,10 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
851
868
|
let releaseGood: ReleaseGood = await this.trxMgr
|
|
852
869
|
.getRepository(ReleaseGood)
|
|
853
870
|
.findOne({ where: { id: foundSerialNumber.outboundOrderId } })
|
|
854
|
-
|
|
871
|
+
|
|
872
|
+
if (releaseGood) {
|
|
873
|
+
throw new Error(`Inventory Item is already picked in ${releaseGood.name}`)
|
|
874
|
+
}
|
|
855
875
|
}
|
|
856
876
|
|
|
857
877
|
foundSerialNumber.status = INVENTORY_STATUS.PICKING
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
DeliveryOrder,
|
|
8
8
|
ORDER_SOURCE_TYPE,
|
|
9
9
|
OrderInventory,
|
|
10
|
+
OrderProduct,
|
|
10
11
|
ReleaseGood
|
|
11
12
|
} from '@things-factory/sales-base'
|
|
12
13
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
@@ -31,14 +32,17 @@ export class XilnexController extends WorksheetController {
|
|
|
31
32
|
.getRepository(Inventory)
|
|
32
33
|
.createQueryBuilder('iv')
|
|
33
34
|
.select('p.sku', 'productSku')
|
|
35
|
+
.addSelect('op.ref_item_id', 'refItemId')
|
|
34
36
|
.addSelect('SUM(COALESCE(iv.qty,0))', 'totalQty')
|
|
35
37
|
.addSelect('SUM(COALESCE(iv.unit_cost,0))', 'unitCost')
|
|
36
38
|
.innerJoin('iv.location', 'loc')
|
|
37
39
|
.innerJoin('iv.product', 'p')
|
|
40
|
+
.leftJoin(OrderProduct, 'op', 'iv.order_product_id::uuid = op.id::uuid')
|
|
38
41
|
.where('"iv"."id" IN (:...inventoryIds)')
|
|
39
42
|
.groupBy('iv.product_id')
|
|
40
43
|
.addGroupBy('p.sku')
|
|
41
44
|
.addGroupBy('iv.batch_id')
|
|
45
|
+
.addGroupBy('op.ref_item_id')
|
|
42
46
|
.setParameters({
|
|
43
47
|
inventoryIds: inventoryIds
|
|
44
48
|
})
|
|
@@ -50,7 +54,8 @@ export class XilnexController extends WorksheetController {
|
|
|
50
54
|
sku: item.productSku
|
|
51
55
|
},
|
|
52
56
|
actualPackQty: item.totalQty,
|
|
53
|
-
unitPrice: item.unitCost
|
|
57
|
+
unitPrice: item.unitCost,
|
|
58
|
+
refItemId: item.refItemId
|
|
54
59
|
}
|
|
55
60
|
})
|
|
56
61
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './replenishment-worksheet-controller'
|