@things-factory/worksheet-base 4.3.159 → 4.3.162
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/putaway-returning-worksheet-controller.js +3 -1
- package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inbound/putaway-worksheet-controller.js +3 -1
- package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +25 -14
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-manifest.js +11 -11
- package/dist-server/controllers/render-manifest.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +9 -17
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +20 -13
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +155 -124
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +249 -217
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +23 -5
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +2 -2
- package/dist-server/utils/inventory-util.js +29 -1
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +6 -6
- package/server/controllers/inbound/putaway-returning-worksheet-controller.ts +3 -1
- package/server/controllers/inbound/putaway-worksheet-controller.ts +3 -1
- package/server/controllers/outbound/picking-worksheet-controller.ts +32 -16
- package/server/controllers/render-manifest.ts +10 -12
- package/server/controllers/worksheet-controller.ts +13 -17
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +24 -13
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +180 -142
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +276 -239
- package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +38 -8
- package/server/graphql/types/worksheet/index.ts +2 -2
- package/server/utils/inventory-util.ts +36 -0
package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js
CHANGED
|
@@ -24,6 +24,7 @@ async function regenerateReleaseGoodWorksheetDetails(tx, domain, user, worksheet
|
|
|
24
24
|
'worksheetDetails.targetInventory',
|
|
25
25
|
'worksheetDetails.targetInventory.inventory',
|
|
26
26
|
'worksheetDetails.targetInventory.product',
|
|
27
|
+
'worksheetDetails.targetInventory.binLocation',
|
|
27
28
|
'worksheetDetails.targetInventory.releaseGood',
|
|
28
29
|
'worksheetDetails.targetInventory.orderProduct',
|
|
29
30
|
'worksheetDetails.targetInventory.bizplace'
|
|
@@ -34,23 +35,40 @@ async function regenerateReleaseGoodWorksheetDetails(tx, domain, user, worksheet
|
|
|
34
35
|
if (targetInv.orderProductId === orderProductId)
|
|
35
36
|
return wsd.id;
|
|
36
37
|
});
|
|
38
|
+
let binLocations = [];
|
|
37
39
|
// TODO: Update prev inventory locked qty and delete order inventories
|
|
38
40
|
if (prevWSDs === null || prevWSDs === void 0 ? void 0 : prevWSDs.length) {
|
|
39
41
|
const wsdIds = prevWSDs.map((wsd) => wsd.id);
|
|
40
42
|
const prevOrderInvIds = prevWSDs.map((wsd) => wsd.targetInventory.id);
|
|
41
43
|
const prevOrderInventories = prevWSDs.map((wsd) => wsd.targetInventory);
|
|
44
|
+
binLocations = prevOrderInventories.map(oi => {
|
|
45
|
+
return {
|
|
46
|
+
product: oi === null || oi === void 0 ? void 0 : oi.product,
|
|
47
|
+
binLocation: (oi === null || oi === void 0 ? void 0 : oi.binLocation) || null
|
|
48
|
+
};
|
|
49
|
+
});
|
|
42
50
|
await Promise.all(prevOrderInventories.map(async (prevOI) => {
|
|
43
51
|
if (prevOI === null || prevOI === void 0 ? void 0 : prevOI.inventory) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
if (prevOI.pickedQty == prevOI.releaseQty) {
|
|
53
|
+
await tx.getRepository(warehouse_base_1.Inventory).update({ id: prevOI.inventory.id }, {
|
|
54
|
+
qty: prevOI.inventory.qty + prevOI.releaseQty,
|
|
55
|
+
uomValue: prevOI.inventory.uomValue + prevOI.releaseUomValue
|
|
56
|
+
});
|
|
57
|
+
await (0, warehouse_base_1.generateInventoryHistory)(prevOI.inventory, prevOI.releaseGood, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.RETURN, prevOI.releaseQty, prevOI.releaseUomValue, user, tx);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
await tx.getRepository(warehouse_base_1.Inventory).update({ id: prevOI.inventory.id }, {
|
|
61
|
+
lockedQty: prevOI.inventory.lockedQty - prevOI.releaseQty,
|
|
62
|
+
lockedUomValue: prevOI.inventory.lockedUomValue - prevOI.releaseUomValue
|
|
63
|
+
});
|
|
64
|
+
}
|
|
48
65
|
}
|
|
49
66
|
}));
|
|
50
67
|
await tx.getRepository(entities_1.WorksheetDetail).delete(wsdIds);
|
|
51
68
|
await tx.getRepository(sales_base_1.OrderInventory).delete(prevOrderInvIds);
|
|
52
69
|
}
|
|
53
70
|
await Promise.all(worksheetDetails.map(async (wsd) => {
|
|
71
|
+
var _a;
|
|
54
72
|
// 2. Create order inventory
|
|
55
73
|
let targetInventory = wsd.targetInventory;
|
|
56
74
|
const inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne(targetInventory.inventory.id);
|
|
@@ -58,7 +76,7 @@ async function regenerateReleaseGoodWorksheetDetails(tx, domain, user, worksheet
|
|
|
58
76
|
.getRepository(sales_base_1.OrderProduct)
|
|
59
77
|
.findOne({ where: { id: wsd.targetProduct.id }, relations: ['releaseGood'] });
|
|
60
78
|
targetInventory = await tx.getRepository(sales_base_1.OrderInventory).save(Object.assign(Object.assign({}, targetInventory), { domain, bizplace: worksheet.bizplace, name: sales_base_1.OrderNoGenerator.orderInventory(), releaseGood: worksheet.type == constants_1.WORKSHEET_TYPE.BATCH_PICKING ? targetProduct.releaseGood : worksheet.releaseGood, inventory, batchId: inventory.batchId, batchIdRef: inventory.batchIdRef, status: sales_base_1.ORDER_INVENTORY_STATUS.READY_TO_PICK, product: await tx.getRepository(product_base_1.Product).findOne(productId), productDetail: productDetailId, packingType,
|
|
61
|
-
packingSize, orderProduct: targetProduct, refWorksheetId: worksheet.type == constants_1.WORKSHEET_TYPE.BATCH_PICKING ? worksheet.id : null, creator: user, updater: user }));
|
|
79
|
+
packingSize, orderProduct: targetProduct, refWorksheetId: worksheet.type == constants_1.WORKSHEET_TYPE.BATCH_PICKING ? worksheet.id : null, binLocation: (binLocations === null || binLocations === void 0 ? void 0 : binLocations.length) ? (_a = binLocations.find(bl => bl.product.id === productId)) === null || _a === void 0 ? void 0 : _a.binLocation : null, creator: user, updater: user }));
|
|
62
80
|
const currentLockedQty = inventory.lockedQty;
|
|
63
81
|
const currentLockedUomValue = inventory.lockedUomValue;
|
|
64
82
|
await tx.getRepository(warehouse_base_1.Inventory).save(Object.assign(Object.assign({}, targetInventory.inventory), { lockedQty: Boolean(currentLockedQty)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regenerate-release-good-worksheet-details.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts"],"names":[],"mappings":";;;AAGA,+DAAsD;AACtD,2DAMmC;AAEnC,
|
|
1
|
+
{"version":3,"file":"regenerate-release-good-worksheet-details.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts"],"names":[],"mappings":"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"}
|
|
@@ -428,7 +428,7 @@ exports.Mutation = `
|
|
|
428
428
|
|
|
429
429
|
completePicking (
|
|
430
430
|
releaseGoodNo: String!
|
|
431
|
-
):
|
|
431
|
+
): Inventory @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
432
432
|
|
|
433
433
|
completeOrderSorting (
|
|
434
434
|
releaseGoodNo: String!
|
|
@@ -445,7 +445,7 @@ exports.Mutation = `
|
|
|
445
445
|
|
|
446
446
|
completeBatchPicking (
|
|
447
447
|
taskNo: String!
|
|
448
|
-
):
|
|
448
|
+
): Inventory @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
449
449
|
|
|
450
450
|
completeInspection (
|
|
451
451
|
inventoryCheckNo: String!
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isInventoryExpiring = exports.inventoriesByStrategy = exports.checkPalletIdenticallity = exports.checkPalletDuplication = exports.switchLocationStatus = void 0;
|
|
3
|
+
exports.isInventoryObsolete = exports.isInventoryExpiring = exports.inventoriesByStrategy = exports.checkPalletIdenticallity = exports.checkPalletDuplication = exports.switchLocationStatus = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
5
|
const product_base_1 = require("@things-factory/product-base");
|
|
6
6
|
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
@@ -102,6 +102,8 @@ async function inventoriesByStrategy({ worksheetId, batchId, bizplaceId, product
|
|
|
102
102
|
.andWhere('"LOC"."type" NOT IN (:...locationTypes)', {
|
|
103
103
|
locationTypes: [warehouse_base_1.LOCATION_TYPE.QUARANTINE, warehouse_base_1.LOCATION_TYPE.RESERVE]
|
|
104
104
|
})
|
|
105
|
+
.andWhere('"INV"."obsolete" = false')
|
|
106
|
+
.andWhere('case when "INV"."expiration_date" is not null and "PROD"."shelf_life" is not null then CURRENT_DATE < "INV"."expiration_date" - "PROD"."shelf_life" else true end')
|
|
105
107
|
.setParameters({
|
|
106
108
|
domainId: domain.id,
|
|
107
109
|
productId,
|
|
@@ -203,4 +205,30 @@ async function isInventoryExpiring(inventory) {
|
|
|
203
205
|
return expiryDate < acceptBefore;
|
|
204
206
|
}
|
|
205
207
|
exports.isInventoryExpiring = isInventoryExpiring;
|
|
208
|
+
async function isInventoryObsolete(inventories) {
|
|
209
|
+
if ((inventories === null || inventories === void 0 ? void 0 : inventories.length) < 1)
|
|
210
|
+
throw new Error('No inventory id provided');
|
|
211
|
+
let obsoleteInventories = [];
|
|
212
|
+
for (let i = 0; i < inventories.length; i++) {
|
|
213
|
+
let product = inventories[i].product;
|
|
214
|
+
if (!product) {
|
|
215
|
+
let inventory = await (0, typeorm_1.getRepository)(warehouse_base_1.Inventory).findOne(inventories[i].id, {
|
|
216
|
+
relations: ['product']
|
|
217
|
+
});
|
|
218
|
+
product = inventory.product;
|
|
219
|
+
}
|
|
220
|
+
let { expirationDate } = inventories[i];
|
|
221
|
+
const { shelfLife } = product;
|
|
222
|
+
if (shelfLife && expirationDate) {
|
|
223
|
+
let date = new Date();
|
|
224
|
+
expirationDate = new Date(expirationDate);
|
|
225
|
+
const releaseBefore = new Date(expirationDate.setDate(expirationDate.getDate() - shelfLife));
|
|
226
|
+
if (date > releaseBefore) {
|
|
227
|
+
obsoleteInventories.push(inventories[i].id);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return obsoleteInventories;
|
|
232
|
+
}
|
|
233
|
+
exports.isInventoryObsolete = isInventoryObsolete;
|
|
206
234
|
//# sourceMappingURL=inventory-util.js.map
|
|
@@ -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.
|
|
3
|
+
"version": "4.3.162",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -27,18 +27,18 @@
|
|
|
27
27
|
"@things-factory/biz-base": "^4.3.159",
|
|
28
28
|
"@things-factory/document-template-base": "^4.3.159",
|
|
29
29
|
"@things-factory/id-rule-base": "^4.3.159",
|
|
30
|
-
"@things-factory/integration-accounting": "^4.3.
|
|
30
|
+
"@things-factory/integration-accounting": "^4.3.162",
|
|
31
31
|
"@things-factory/integration-lmd": "^4.3.159",
|
|
32
32
|
"@things-factory/integration-marketplace": "^4.3.159",
|
|
33
33
|
"@things-factory/integration-sellercraft": "^4.3.159",
|
|
34
34
|
"@things-factory/integration-sftp": "^4.3.159",
|
|
35
|
-
"@things-factory/marketplace-base": "^4.3.
|
|
35
|
+
"@things-factory/marketplace-base": "^4.3.161",
|
|
36
36
|
"@things-factory/notification": "^4.3.159",
|
|
37
|
-
"@things-factory/sales-base": "^4.3.
|
|
37
|
+
"@things-factory/sales-base": "^4.3.162",
|
|
38
38
|
"@things-factory/setting-base": "^4.3.159",
|
|
39
39
|
"@things-factory/shell": "^4.3.159",
|
|
40
40
|
"@things-factory/transport-base": "^4.3.159",
|
|
41
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
41
|
+
"@things-factory/warehouse-base": "^4.3.162"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "c933f88307fc147abcfa0cf6cf5c9b62db187f24"
|
|
44
44
|
}
|
|
@@ -147,7 +147,9 @@ export class PutawayReturningWorksheetController extends VasWorksheetController
|
|
|
147
147
|
if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)
|
|
148
148
|
|
|
149
149
|
const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN, [
|
|
150
|
-
'bufferLocation'
|
|
150
|
+
'bufferLocation',
|
|
151
|
+
'worksheetDetails',
|
|
152
|
+
'worksheetDetails.targetInventory'
|
|
151
153
|
])
|
|
152
154
|
await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)
|
|
153
155
|
return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)
|
|
@@ -158,7 +158,9 @@ export class PutawayWorksheetController extends VasWorksheetController {
|
|
|
158
158
|
if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)
|
|
159
159
|
|
|
160
160
|
const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY, [
|
|
161
|
-
'bufferLocation'
|
|
161
|
+
'bufferLocation',
|
|
162
|
+
'worksheetDetails',
|
|
163
|
+
'worksheetDetails.targetInventory'
|
|
162
164
|
])
|
|
163
165
|
await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)
|
|
164
166
|
return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
import { TASK_NUMBER_RULE_TYPE, TASK_NUMBER_SETTING_KEY, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
|
|
39
39
|
import { SellercraftController } from '../../controllers'
|
|
40
40
|
import { Worksheet, WorksheetDetail } from '../../entities'
|
|
41
|
-
import { WorksheetNoGenerator } from '../../utils'
|
|
41
|
+
import { WorksheetNoGenerator, isInventoryObsolete } from '../../utils'
|
|
42
42
|
import { VasWorksheetController } from '../vas/vas-worksheet-controller'
|
|
43
43
|
|
|
44
44
|
export class PickingWorksheetController extends VasWorksheetController {
|
|
@@ -1224,13 +1224,7 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1224
1224
|
}
|
|
1225
1225
|
}
|
|
1226
1226
|
|
|
1227
|
-
async completePicking(
|
|
1228
|
-
let releaseGood: ReleaseGood = await this.findRefOrder(ReleaseGood, {
|
|
1229
|
-
domain: this.domain,
|
|
1230
|
-
name: releaseGoodNo,
|
|
1231
|
-
status: ORDER_STATUS.PICKING
|
|
1232
|
-
})
|
|
1233
|
-
|
|
1227
|
+
async completePicking(releaseGood: ReleaseGood, worksheet: Worksheet, inventories: Inventory[]): Promise<any> {
|
|
1234
1228
|
const foundNotSealedOrderTote = await this.trxMgr
|
|
1235
1229
|
.getRepository(OrderTote)
|
|
1236
1230
|
.findOne({ where: { releaseGood, closedDate: IsNull() } })
|
|
@@ -1239,10 +1233,15 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1239
1233
|
throw new Error('Please seal the tote(s) before completing')
|
|
1240
1234
|
}
|
|
1241
1235
|
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1236
|
+
//check if any inventories is obsolete
|
|
1237
|
+
if (!releaseGood.recall) {
|
|
1238
|
+
let foundObsoleteInventories = await isInventoryObsolete(inventories)
|
|
1239
|
+
|
|
1240
|
+
if (foundObsoleteInventories?.length > 0) {
|
|
1241
|
+
return foundObsoleteInventories
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1246
1245
|
await this.checkRecordValidity(worksheet, { status: WORKSHEET_STATUS.EXECUTING })
|
|
1247
1246
|
|
|
1248
1247
|
let inventoryItems: InventoryItem = await this.trxMgr
|
|
@@ -1280,7 +1279,8 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1280
1279
|
'bizplace.domain',
|
|
1281
1280
|
'worksheetDetails',
|
|
1282
1281
|
'worksheetDetails.targetInventory',
|
|
1283
|
-
'worksheetDetails.targetInventory.releaseGood'
|
|
1282
|
+
'worksheetDetails.targetInventory.releaseGood',
|
|
1283
|
+
'worksheetDetails.targetInventory.inventory'
|
|
1284
1284
|
]
|
|
1285
1285
|
})
|
|
1286
1286
|
|
|
@@ -1289,14 +1289,12 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1289
1289
|
worksheet.status = WORKSHEET_STATUS.DONE
|
|
1290
1290
|
worksheet.endedAt = new Date()
|
|
1291
1291
|
worksheet.updater = this.user
|
|
1292
|
-
worksheet = await this.trxMgr.getRepository(Worksheet).save(worksheet)
|
|
1293
1292
|
|
|
1294
1293
|
const worksheetDetails: any = worksheet.worksheetDetails.filter(wsD => wsD.status != 'MISSING')
|
|
1295
1294
|
worksheetDetails.forEach((wsd: WorksheetDetail) => {
|
|
1296
1295
|
wsd.status = WORKSHEET_STATUS.DONE
|
|
1297
1296
|
wsd.updater = this.user
|
|
1298
1297
|
})
|
|
1299
|
-
await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetails)
|
|
1300
1298
|
|
|
1301
1299
|
const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {
|
|
1302
1300
|
let targetInventory: OrderInventory = wsd.targetInventory
|
|
@@ -1304,8 +1302,10 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1304
1302
|
targetInventory.updater = this.user
|
|
1305
1303
|
return targetInventory
|
|
1306
1304
|
})
|
|
1307
|
-
await this.updateOrderTargets(targetInventories)
|
|
1308
1305
|
|
|
1306
|
+
const inventories: Inventory[] = targetInventories.map((ti: OrderInventory) => ti.inventory)
|
|
1307
|
+
|
|
1308
|
+
let isRecall
|
|
1309
1309
|
const releaseGoods: ReleaseGood[] = worksheetDetails.map((wsd: WorksheetDetail) => {
|
|
1310
1310
|
let releaseGood: ReleaseGood = wsd.targetInventory.releaseGood
|
|
1311
1311
|
|
|
@@ -1318,8 +1318,24 @@ export class PickingWorksheetController extends VasWorksheetController {
|
|
|
1318
1318
|
|
|
1319
1319
|
releaseGood.status = orderStatus
|
|
1320
1320
|
releaseGood.updater = this.user
|
|
1321
|
+
if (releaseGood.recall) {
|
|
1322
|
+
isRecall = true
|
|
1323
|
+
}
|
|
1321
1324
|
return releaseGood
|
|
1322
1325
|
})
|
|
1326
|
+
//check if any inventories is obsolete
|
|
1327
|
+
if (!isRecall) {
|
|
1328
|
+
let foundObsoleteInventories = await isInventoryObsolete(inventories)
|
|
1329
|
+
|
|
1330
|
+
if (foundObsoleteInventories?.length > 0) {
|
|
1331
|
+
return foundObsoleteInventories
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
worksheet = await this.trxMgr.getRepository(Worksheet).save(worksheet)
|
|
1336
|
+
await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetails)
|
|
1337
|
+
await this.updateOrderTargets(targetInventories)
|
|
1338
|
+
|
|
1323
1339
|
await this.trxMgr.getRepository(ReleaseGood).save(releaseGoods)
|
|
1324
1340
|
|
|
1325
1341
|
return worksheet
|
|
@@ -31,8 +31,6 @@ export async function renderManifest({ manifestNo }, context: any) {
|
|
|
31
31
|
relations: ['releaseGood', 'releaseGood.bizplace']
|
|
32
32
|
})
|
|
33
33
|
|
|
34
|
-
let releaseGoods: ReleaseGood[] = orderPackages.map(op => op.releaseGood)
|
|
35
|
-
|
|
36
34
|
// 7. find grn template based on category
|
|
37
35
|
const foundTemplate: Attachment = await getRepository(Attachment).findOne({
|
|
38
36
|
where: { domain, category: TEMPLATE_TYPE.MANIFEST_TEMPLATE }
|
|
@@ -44,22 +42,22 @@ export async function renderManifest({ manifestNo }, context: any) {
|
|
|
44
42
|
shipping_provider: manifest?.shippingProvider,
|
|
45
43
|
manifest_no: manifest?.name,
|
|
46
44
|
manifest_date: DateTimeConverter.date(manifest?.createdAt).toString(),
|
|
47
|
-
total_list:
|
|
45
|
+
total_list: orderPackages?.length || 0,
|
|
48
46
|
product_list: await Promise.all(
|
|
49
|
-
|
|
50
|
-
const customerBizplaceId: string = item.bizplace.id
|
|
47
|
+
orderPackages.map(async (item, idx) => {
|
|
48
|
+
const customerBizplaceId: string = item.releaseGood.bizplace.id
|
|
51
49
|
const custCompanyBizplace: Bizplace = await getCompanyBizplace(null, null, customerBizplaceId)
|
|
52
50
|
return {
|
|
53
51
|
list_no: idx + 1,
|
|
54
|
-
order_no: item?.refNo,
|
|
52
|
+
order_no: item?.releaseGood?.refNo,
|
|
55
53
|
tracking_no: item?.trackingNo,
|
|
56
|
-
phone: item?.phone1,
|
|
54
|
+
phone: item?.releaseGood?.phone1,
|
|
57
55
|
delivery_date: DateTimeConverter.date(manifest?.dispatchedAt).toString(),
|
|
58
|
-
attention_to: item?.attentionTo,
|
|
59
|
-
delivery_address: item?.deliveryAddress1,
|
|
60
|
-
postal_code_city: `${item?.postalCode}, ${item?.city}`,
|
|
61
|
-
remark: item?.remark,
|
|
62
|
-
status: item?.status,
|
|
56
|
+
attention_to: item?.releaseGood?.attentionTo,
|
|
57
|
+
delivery_address: item?.releaseGood?.deliveryAddress1,
|
|
58
|
+
postal_code_city: `${item?.releaseGood?.postalCode}, ${item?.releaseGood?.city}`,
|
|
59
|
+
remark: item?.releaseGood?.remark,
|
|
60
|
+
status: item?.releaseGood?.status,
|
|
63
61
|
company_domain_name: custCompanyBizplace.domain.name
|
|
64
62
|
}
|
|
65
63
|
})
|
|
@@ -703,28 +703,24 @@ export class WorksheetController {
|
|
|
703
703
|
async completeWorksheet(worksheet: Worksheet, updatedRefOrderStatus?: string): Promise<Worksheet> {
|
|
704
704
|
if (!worksheet.id) throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)
|
|
705
705
|
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
worksheet = await this.trxMgr.getRepository(Worksheet).save(worksheet)
|
|
706
|
+
await this.trxMgr
|
|
707
|
+
.getRepository(Worksheet)
|
|
708
|
+
.update({ id: worksheet.id }, { status: WORKSHEET_STATUS.DONE, endedAt: new Date(), updater: this.user })
|
|
710
709
|
|
|
711
710
|
const worksheetType: string = worksheet.type
|
|
712
|
-
worksheet = await this.findWorksheet(worksheet, [
|
|
713
|
-
'worksheetDetails',
|
|
714
|
-
'worksheetDetails.targetProduct',
|
|
715
|
-
'worksheetDetails.targetInventory',
|
|
716
|
-
'worksheetDetails.targetVas'
|
|
717
|
-
])
|
|
718
711
|
|
|
719
712
|
let worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
|
|
720
713
|
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
714
|
+
await this.trxMgr.getRepository(WorksheetDetail).update(
|
|
715
|
+
{
|
|
716
|
+
id: In(
|
|
717
|
+
worksheetDetails.map(wd => {
|
|
718
|
+
if (wd.status !== ORDER_INVENTORY_STATUS.REPLACED) return wd.id
|
|
719
|
+
})
|
|
720
|
+
)
|
|
721
|
+
},
|
|
722
|
+
{ status: WORKSHEET_STATUS.DONE, updater: this.user }
|
|
723
|
+
)
|
|
728
724
|
|
|
729
725
|
if (worksheetType === WORKSHEET_TYPE.UNLOADING) {
|
|
730
726
|
let targetProducts: OrderProduct[] = worksheet.worksheetDetails.map((wsd: WorksheetDetail) => {
|
|
@@ -53,19 +53,19 @@ export const inventoriesByPalletResolver = {
|
|
|
53
53
|
)
|
|
54
54
|
.andWhere(
|
|
55
55
|
`(iv.batch_id, product.name, iv.packing_type, product.brand) NOT IN (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
SELECT
|
|
57
|
+
oi.batch_id, p2.name, oi.packing_type, p2.brand
|
|
58
|
+
FROM
|
|
59
|
+
order_inventories oi
|
|
60
|
+
LEFT JOIN
|
|
61
|
+
products p2
|
|
62
|
+
ON
|
|
63
|
+
oi.product_id = p2.id
|
|
64
|
+
WHERE
|
|
65
|
+
oi.status = '${ORDER_INVENTORY_STATUS.PENDING_SPLIT}'
|
|
66
|
+
AND oi.bizplace_id IN (:...permittedBizplaceIds)
|
|
67
|
+
AND oi.domain_id = (:domainId)
|
|
68
|
+
)`,
|
|
69
69
|
{ permittedBizplaceIds, domainId: domain.id }
|
|
70
70
|
)
|
|
71
71
|
|
|
@@ -74,6 +74,17 @@ export const inventoriesByPalletResolver = {
|
|
|
74
74
|
qb.andWhere('iv.qty - CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END > 0')
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
if (recallFilters?.value === true) {
|
|
78
|
+
qb.andWhere(
|
|
79
|
+
'(iv.obsolete = true or case when iv.expiration_date is not null and product.shelf_life is not null then CURRENT_DATE > iv.expiration_date - product.shelf_life else true end)'
|
|
80
|
+
)
|
|
81
|
+
} else {
|
|
82
|
+
qb.andWhere('iv.obsolete = false')
|
|
83
|
+
qb.andWhere(
|
|
84
|
+
'case when iv.expiration_date is not null and product.shelf_life is not null then CURRENT_DATE < iv.expiration_date - product.shelf_life else true end'
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
|
|
77
88
|
if (locationFilters) {
|
|
78
89
|
qb.andWhere(`location.name ilike '${locationFilters.value}'`)
|
|
79
90
|
}
|