@things-factory/worksheet-base 4.3.82 → 4.3.83
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 +49 -49
- 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 +151 -71
- 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 +37 -2
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/entities/worksheet-detail.js +2 -1
- package/dist-server/entities/worksheet-detail.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/scan-product-picking.js +4 -7
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-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/proceed-extra-products.js +4 -6
- package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.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/transfer.js +9 -9
- package/dist-server/graphql/resolvers/worksheet/transfer.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 +70 -49
- 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 +212 -85
- 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 +49 -5
- package/server/entities/worksheet-detail.ts +5 -0
- 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/scan-product-picking.ts +10 -30
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +2 -3
- package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +4 -5
- package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +15 -45
- package/server/graphql/resolvers/worksheet/transfer.ts +16 -18
- 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,10 +1,107 @@
|
|
|
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.isInventoryExpiring = exports.inventoriesByStrategy = exports.checkPalletIdenticallity = exports.checkPalletDuplication = exports.switchLocationStatus = exports.generateInventoryHistory = 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");
|
|
7
7
|
/**
|
|
8
|
+
* @description It will insert new record into inventory histories table.
|
|
9
|
+
* seq will be calculated based on number of records for one specific pallet id (provided by inventory object)
|
|
10
|
+
*/
|
|
11
|
+
async function generateInventoryHistory(inventory, refOrder, transactionType, qty = 0, uomValue = 0, user, trxMgr, targetInventory = {}) {
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
const invHistoryRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(warehouse_base_1.InventoryHistory)) || (0, typeorm_1.getRepository)(warehouse_base_1.InventoryHistory);
|
|
14
|
+
const invRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(warehouse_base_1.Inventory)) || (0, typeorm_1.getRepository)(warehouse_base_1.Inventory);
|
|
15
|
+
if (!(inventory === null || inventory === void 0 ? void 0 : inventory.id))
|
|
16
|
+
throw new Error(`Can't find out ID of inventory.`);
|
|
17
|
+
if (!(refOrder === null || refOrder === void 0 ? void 0 : refOrder.id) || !refOrder.name)
|
|
18
|
+
throw new Error(`Can't find out ID or Name of Reference Order`);
|
|
19
|
+
if (!(inventory === null || inventory === void 0 ? void 0 : inventory.domain) ||
|
|
20
|
+
!(inventory === null || inventory === void 0 ? void 0 : inventory.bizplace) ||
|
|
21
|
+
!((_a = inventory === null || inventory === void 0 ? void 0 : inventory.product) === null || _a === void 0 ? void 0 : _a.id) ||
|
|
22
|
+
!((_b = inventory === null || inventory === void 0 ? void 0 : inventory.warehouse) === null || _b === void 0 ? void 0 : _b.id) ||
|
|
23
|
+
!((_c = inventory === null || inventory === void 0 ? void 0 : inventory.location) === null || _c === void 0 ? void 0 : _c.id)) {
|
|
24
|
+
inventory = await invRepo.findOne({
|
|
25
|
+
where: { id: inventory.id },
|
|
26
|
+
relations: ['domain', 'bizplace', 'product', 'warehouse', 'location']
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const domain = inventory.domain;
|
|
30
|
+
const location = inventory.location;
|
|
31
|
+
const seq = await invHistoryRepo.count({ domain: inventory.domain, palletId: inventory.palletId });
|
|
32
|
+
let openingQty = 0;
|
|
33
|
+
let openingUomValue = 0;
|
|
34
|
+
if (seq) {
|
|
35
|
+
const lastInvHistory = await invHistoryRepo.findOne({
|
|
36
|
+
domain: inventory.domain,
|
|
37
|
+
palletId: inventory.palletId,
|
|
38
|
+
seq: seq - 1
|
|
39
|
+
});
|
|
40
|
+
openingQty = lastInvHistory.openingQty + lastInvHistory.qty;
|
|
41
|
+
openingUomValue = lastInvHistory.openingUomValue + lastInvHistory.uomValue;
|
|
42
|
+
}
|
|
43
|
+
if (transactionType == 'PICKING' || transactionType == 'UNLOADING') {
|
|
44
|
+
const [findSameOrderHistory, total] = await invHistoryRepo.findAndCount({
|
|
45
|
+
domain: inventory.domain,
|
|
46
|
+
palletId: inventory.palletId,
|
|
47
|
+
refOrderId: refOrder.id
|
|
48
|
+
});
|
|
49
|
+
if (findSameOrderHistory) {
|
|
50
|
+
let prevTotalQty = 0;
|
|
51
|
+
let prevTotalUomValue = 0;
|
|
52
|
+
for (let oh of findSameOrderHistory) {
|
|
53
|
+
prevTotalQty += oh.qty;
|
|
54
|
+
prevTotalUomValue += oh.uomValue;
|
|
55
|
+
}
|
|
56
|
+
qty -= prevTotalQty;
|
|
57
|
+
uomValue -= prevTotalUomValue;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
let inventoryHistory = new warehouse_base_1.InventoryHistory();
|
|
61
|
+
inventoryHistory.name = warehouse_base_1.InventoryNoGenerator.inventoryHistoryName();
|
|
62
|
+
inventoryHistory.description = inventory.description;
|
|
63
|
+
inventoryHistory.seq = seq;
|
|
64
|
+
inventoryHistory.palletId = inventory.palletId;
|
|
65
|
+
inventoryHistory.cartonId = inventory.cartonId;
|
|
66
|
+
inventoryHistory.batchId = inventory.batchId;
|
|
67
|
+
inventoryHistory.batchIdRef = inventory.batchIdRef;
|
|
68
|
+
inventoryHistory.status = inventory.status;
|
|
69
|
+
inventoryHistory.transactionType = transactionType;
|
|
70
|
+
inventoryHistory.refOrderId = (refOrder === null || refOrder === void 0 ? void 0 : refOrder.id) || null;
|
|
71
|
+
inventoryHistory.orderNo = (refOrder === null || refOrder === void 0 ? void 0 : refOrder.name) || null;
|
|
72
|
+
inventoryHistory.orderRefNo = (refOrder === null || refOrder === void 0 ? void 0 : refOrder.refNo) || null;
|
|
73
|
+
inventoryHistory.inventory = inventory;
|
|
74
|
+
inventoryHistory.targetInventory = targetInventory;
|
|
75
|
+
inventoryHistory.product = inventory.product;
|
|
76
|
+
inventoryHistory.reusablePallet = inventory.reusablePallet;
|
|
77
|
+
inventoryHistory.zone = inventory.zone;
|
|
78
|
+
inventoryHistory.warehouse = inventory.warehouse;
|
|
79
|
+
inventoryHistory.location = inventory.location;
|
|
80
|
+
inventoryHistory.expirationDate = inventory.expirationDate;
|
|
81
|
+
inventoryHistory.packingType = inventory.packingType;
|
|
82
|
+
inventoryHistory.packingSize = inventory.packingSize;
|
|
83
|
+
inventoryHistory.uom = inventory.uom;
|
|
84
|
+
inventoryHistory.qty = qty;
|
|
85
|
+
inventoryHistory.openingQty = openingQty;
|
|
86
|
+
inventoryHistory.uomValue = uomValue;
|
|
87
|
+
inventoryHistory.openingUomValue = openingUomValue;
|
|
88
|
+
inventoryHistory.unitCost = inventory.unitCost;
|
|
89
|
+
inventoryHistory.domain = inventory.domain;
|
|
90
|
+
inventoryHistory.bizplace = inventory.bizplace;
|
|
91
|
+
inventoryHistory.creator = user;
|
|
92
|
+
inventoryHistory.updater = user;
|
|
93
|
+
inventoryHistory = await invHistoryRepo.save(inventoryHistory);
|
|
94
|
+
if (inventory.lastSeq !== seq) {
|
|
95
|
+
await invRepo.save({
|
|
96
|
+
id: inventory.id,
|
|
97
|
+
lastSeq: inventoryHistory.seq,
|
|
98
|
+
updater: user
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
await switchLocationStatus(domain, location, user, trxMgr);
|
|
102
|
+
return inventoryHistory;
|
|
103
|
+
}
|
|
104
|
+
exports.generateInventoryHistory = generateInventoryHistory;
|
|
8
105
|
/**
|
|
9
106
|
* @description: Check location emptiness and update status of location
|
|
10
107
|
* @param domain
|
|
@@ -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":";;;AAAA,qCAAkE;AAIlE,+DAAsD;AAEtD,mEAQuC;AAEvC;;;GAGG;AACI,KAAK,UAAU,wBAAwB,CAC5C,SAAoB,EACpB,QAAa,EACb,eAAuB,EACvB,MAAc,CAAC,EACf,WAAmB,CAAC,EACpB,IAAU,EACV,MAAsB,EACtB,kBAA6B,EAAE;;IAE/B,MAAM,cAAc,GAClB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,iCAAgB,CAAC,KAAI,IAAA,uBAAa,EAAC,iCAAgB,CAAC,CAAA;IAC5E,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,0BAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAA;IAEnG,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACtE,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACpG,IACE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA;QAClB,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAA;QACpB,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,EAAE,CAAA;QACvB,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,0CAAE,EAAE,CAAA;QACzB,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,0CAAE,EAAE,CAAA,EACxB;QACA,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC;SACtE,CAAC,CAAA;KACH;IAED,MAAM,MAAM,GAAW,SAAS,CAAC,MAAM,CAAA;IACvC,MAAM,QAAQ,GAAa,SAAS,CAAC,QAAQ,CAAA;IAE7C,MAAM,GAAG,GAAW,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1G,IAAI,UAAU,GAAW,CAAC,CAAA;IAC1B,IAAI,eAAe,GAAW,CAAC,CAAA;IAE/B,IAAI,GAAG,EAAE;QACP,MAAM,cAAc,GAAqB,MAAM,cAAc,CAAC,OAAO,CAAC;YACpE,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,GAAG,EAAE,GAAG,GAAG,CAAC;SACb,CAAC,CAAA;QAEF,UAAU,GAAG,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,GAAG,CAAA;QAC3D,eAAe,GAAG,cAAc,CAAC,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAA;KAC3E;IAED,IAAI,eAAe,IAAI,SAAS,IAAI,eAAe,IAAI,WAAW,EAAE;QAClE,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAqB,MAAM,cAAc,CAAC,YAAY,CAAC;YACxF,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,QAAQ,CAAC,EAAE;SACxB,CAAC,CAAA;QAEF,IAAI,oBAAoB,EAAE;YACxB,IAAI,YAAY,GAAG,CAAC,CAAA;YACpB,IAAI,iBAAiB,GAAG,CAAC,CAAA;YACzB,KAAK,IAAI,EAAE,IAAI,oBAAoB,EAAE;gBACnC,YAAY,IAAI,EAAE,CAAC,GAAG,CAAA;gBACtB,iBAAiB,IAAI,EAAE,CAAC,QAAQ,CAAA;aACjC;YACD,GAAG,IAAI,YAAY,CAAA;YACnB,QAAQ,IAAI,iBAAiB,CAAA;SAC9B;KACF;IAED,IAAI,gBAAgB,GAAqB,IAAI,iCAAgB,EAAE,CAAA;IAC/D,gBAAgB,CAAC,IAAI,GAAG,qCAAoB,CAAC,oBAAoB,EAAE,CAAA;IACnE,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;IACpD,gBAAgB,CAAC,GAAG,GAAG,GAAG,CAAA;IAC1B,gBAAgB,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;IAC9C,gBAAgB,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;IAC9C,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;IAC5C,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;IAClD,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;IAC1C,gBAAgB,CAAC,eAAe,GAAG,eAAe,CAAA;IAClD,gBAAgB,CAAC,UAAU,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,KAAI,IAAI,CAAA;IAClD,gBAAgB,CAAC,OAAO,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,IAAI,CAAA;IACjD,gBAAgB,CAAC,UAAU,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,KAAI,IAAI,CAAA;IACrD,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAA;IACtC,gBAAgB,CAAC,eAAe,GAAG,eAAe,CAAA;IAClD,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;IAC5C,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAA;IAC1D,gBAAgB,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;IACtC,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;IAChD,gBAAgB,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;IAC9C,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAA;IAC1D,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;IACpD,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;IACpD,gBAAgB,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;IACpC,gBAAgB,CAAC,GAAG,GAAG,GAAG,CAAA;IAC1B,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAA;IACxC,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACpC,gBAAgB,CAAC,eAAe,GAAG,eAAe,CAAA;IAClD,gBAAgB,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;IAC9C,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;IAC1C,gBAAgB,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;IAC9C,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAA;IAC/B,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAA;IAE/B,gBAAgB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAE9D,IAAI,SAAS,CAAC,OAAO,KAAK,GAAG,EAAE;QAC7B,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,OAAO,EAAE,gBAAgB,CAAC,GAAG;YAC7B,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;KACH;IAED,MAAM,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC1D,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAhHD,4DAgHC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,QAAkB,EAClB,OAAa,EACb,MAAsB;IAEtB,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,0BAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAA;IACnG,MAAM,YAAY,GAAyB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,yBAAQ,CAAC,KAAI,IAAA,uBAAa,EAAC,yBAAQ,CAAC,CAAA;IACrG,MAAM,iBAAiB,GAAW,MAAM,OAAO,CAAC,KAAK,CAAC;QACpD,MAAM;QACN,MAAM,EAAE,iCAAgB,CAAC,MAAM;QAC/B,QAAQ;KACT,CAAC,CAAA;IAEF,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,MAAM,KAAK,gCAAe,CAAC,KAAK,EAAE;QACnE,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,iCAC7B,QAAQ,KACX,MAAM,EAAE,gCAAe,CAAC,KAAK,EAC7B,OAAO,IACP,CAAA;KACH;SAAM,IAAI,iBAAiB,IAAI,QAAQ,CAAC,MAAM,KAAK,gCAAe,CAAC,KAAK,EAAE;QACzE,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,iCAC7B,QAAQ,KACX,MAAM,EAAE,gCAAe,CAAC,QAAQ,EAChC,OAAO,IACP,CAAA;KACH;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AA7BD,oDA6BC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,QAAkB,EAClB,QAAgB,EAChB,MAAsB;IAEtB,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,0BAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAA;IACnG,MAAM,mBAAmB,GAAW,MAAM,OAAO,CAAC,KAAK,CAAC;QACtD,MAAM;QACN,QAAQ;QACR,QAAQ;KACT,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,mBAAmB,CAAC,CAAA;AACrC,CAAC;AAdD,wDAcC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,QAAkB,EAClB,QAAgB,EAChB,OAAe,EACf,OAAyB,EACzB,WAAmB,EACnB,MAAsB;;IAEtB,MAAM,WAAW,GAAwB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,sBAAO,CAAC,KAAI,IAAA,uBAAa,EAAC,sBAAO,CAAC,CAAA;IACjG,MAAM,OAAO,GAA0B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,0BAAS,CAAC,KAAI,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAA;IAEnG,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,MAAM,YAAY,GAAY,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChE,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAA;QAC5E,OAAO,GAAG,YAAY,CAAA;KACvB;IAED,MAAM,GAAG,GAAc,MAAM,OAAO,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;QACrC,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,IAAI,OAAO,KAAK,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAA;IAErH,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,OAAK,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,EAAE,CAAA;QAClC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,+BAA+B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAA;IAE9F,IAAI,WAAW,KAAK,GAAG,CAAC,WAAW;QACjC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,oCAAoC,WAAW,EAAE,EAAE,CAAA;IAElG,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;AAChC,CAAC;AAhCD,4DAgCC;AAED;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CACzC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,oBAAoB,EAAE,EACrH,MAAc,EACd,MAAqB;IAErB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,0BAAS,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC1E,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC;SACzC,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC;SACzC,SAAS,CAAC,QAAQ,CAAC,EAAE,CACpB,QAAQ;SACL,MAAM,CAAC,+BAA+B,EAAE,YAAY,CAAC;SACrD,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;SAC/B,KAAK,CAAC,kCAAkC,CAAC;SACzC,QAAQ,CAAC,2FAA2F,CAAC;SACrG,QAAQ,CAAC,yCAAyC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CACrF;SACA,SAAS,CAAC,QAAQ,CAAC,EAAE,CACpB,QAAQ;SACL,MAAM,CAAC,qCAAqC,EAAE,iBAAiB,CAAC;SAChE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;SAC/B,KAAK,CAAC,kCAAkC,CAAC;SACzC,QAAQ,CAAC,2FAA2F,CAAC;SACrG,QAAQ,CAAC,yCAAyC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CACrF;SACA,QAAQ,CAAC,+BAA+B,CAAC;SACzC,QAAQ,CAAC,0BAA0B,CAAC;SACpC,QAAQ,CAAC,qCAAqC,CAAC;SAC/C,QAAQ,CAAC,qCAAqC,CAAC;SAC/C,QAAQ,CAAC,oBAAoB,CAAC;SAC9B,QAAQ,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;SAC1D,QAAQ,CAAC,yCAAyC,EAAE;QACnD,aAAa,EAAE,CAAC,8BAAa,CAAC,UAAU,EAAE,8BAAa,CAAC,OAAO,CAAC;KACjE,CAAC;SACD,aAAa,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,SAAS;QACT,WAAW;QACX,WAAW;QACX,GAAG;KACJ,CAAC,CAAA;IAEJ,IAAI,OAAO,KAAK,EAAE,EAAE;QAClB,EAAE,CAAC,QAAQ,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;KACxD;IAED,IAAI,UAAU,EAAE;QACd,EAAE,CAAC,QAAQ,CAAC,mCAAmC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;KAC7E;IAED,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,QAAQ,eAAe,CAAC,WAAW,EAAE,EAAE;QACrC,KAAK,MAAM;YACT,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;YACvC,IAAI,oBAAoB,EAAE;gBACxB,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;oBACtC,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;iBACvD;aACF;YACD,MAAK;QAEP,KAAK,MAAM;YACT,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;YACxC,IAAI,oBAAoB,EAAE;gBACxB,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;oBACtC,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;iBACvD;aACF;YACD,MAAK;QAEP,KAAK,MAAM;YACT,EAAE,CAAC,OAAO,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;YAC5C,EAAE,CAAC,UAAU,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;YAC1C,IAAI,oBAAoB,EAAE;gBACxB,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;oBACtC,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;iBACvD;aACF;YACD,MAAK;QAEP,KAAK,MAAM;YACT,EAAE,CAAC,OAAO,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;YAC7C,EAAE,CAAC,UAAU,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;YAC1C,IAAI,oBAAoB,EAAE;gBACxB,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;oBACtC,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;iBACvD;aACF;YACD,MAAK;QAEP,KAAK,UAAU;YACb,IAAI,oBAAoB,EAAE;gBACxB,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;oBACtC,IAAI,MAAM,KAAK,CAAC,EAAE;wBAChB,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;qBACpD;yBAAM;wBACL,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;qBACvD;oBACD,EAAE,MAAM,CAAA;iBACT;aACF;;gBAAM,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YACzC,MAAK;KACR;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,iBAAiB,EAAE,CAAA;IACtD,MAAM,KAAK,GAAG,QAAQ;SACnB,GAAG,CAAC,CAAC,GAAc,EAAE,GAAW,EAAE,EAAE;QACnC,MAAM,GAAG,GAAW,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,IAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAW,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,IAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7D,MAAM,SAAS,GAAW,GAAG,CAAC,SAAS,IAAI,CAAC,CAAA;QAC5C,MAAM,cAAc,GAAW,GAAG,CAAC,cAAc,IAAI,CAAC,CAAA;QACtD,MAAM,UAAU,GAAW,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7D,MAAM,eAAe,GAAW,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAEzE,uCACK,GAAG,KACN,GAAG,EAAE,GAAG,GAAG,SAAS,GAAG,UAAU,EACjC,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,eAAe,IACtD;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;IAE1C,MAAM,KAAK,GAAW,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;IACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACzB,CAAC;AA5HD,sDA4HC;AAEM,KAAK,UAAU,mBAAmB,CAAC,SAAoB;IAC5D,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC9D,IAAI,OAAO,GAAwB,SAAS,CAAC,OAAO,CAAA;IACpD,IAAI,CAAC,OAAO,EAAE;QACZ,SAAS,GAAG,MAAM,IAAA,uBAAa,EAAC,0BAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,SAAS,CAAC;SACvB,CAAC,CAAA;QACF,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;KAC5B;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAA;IACpC,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAA;IAE3D,IAAI,CAAC,qBAAqB,IAAI,CAAC,gBAAgB,IAAI,cAAc,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAEpF,IAAI,IAAI,GAAS,IAAI,IAAI,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAA;IACpF,MAAM,UAAU,GAAS,IAAI,IAAI,CAAC,cAAc,CAAC,CAAA;IAEjD,OAAO,UAAU,GAAG,YAAY,CAAA;AAClC,CAAC;AApBD,kDAoBC"}
|
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.83",
|
|
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.
|
|
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.
|
|
39
|
-
"@things-factory/shell": "^4.3.
|
|
40
|
-
"@things-factory/transport-base": "^4.3.
|
|
41
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
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.81",
|
|
36
|
+
"@things-factory/notification": "^4.3.78",
|
|
37
|
+
"@things-factory/sales-base": "^4.3.83",
|
|
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.83"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "afffa43403f362b29b2040a7fefa8dea531bfb9a"
|
|
44
44
|
}
|
|
@@ -19,8 +19,8 @@ import {
|
|
|
19
19
|
VAS_TARGET_TYPES,
|
|
20
20
|
VAS_TYPES
|
|
21
21
|
} from '@things-factory/sales-base'
|
|
22
|
-
import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
23
22
|
import { Domain } from '@things-factory/shell'
|
|
23
|
+
import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
24
24
|
import {
|
|
25
25
|
Inventory,
|
|
26
26
|
INVENTORY_ITEM_SOURCE,
|
|
@@ -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> & {
|
|
@@ -96,13 +95,11 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
96
95
|
'worksheet.bufferLocation.warehouse',
|
|
97
96
|
'targetProduct',
|
|
98
97
|
'targetProduct.product',
|
|
99
|
-
'targetProduct.productDetail',
|
|
100
98
|
'targetProduct.product.productDetails',
|
|
101
99
|
'targetProduct.product.productDetails.childProductDetail',
|
|
102
100
|
'targetInventory',
|
|
103
101
|
'targetInventory.inventory',
|
|
104
102
|
'targetInventory.product',
|
|
105
|
-
'targetInventory.productDetail',
|
|
106
103
|
'targetInventory.product.productDetails',
|
|
107
104
|
'targetInventory.product.productDetails.childProductDetail'
|
|
108
105
|
]
|
|
@@ -124,9 +121,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
124
121
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
125
122
|
const batchIdRef: string = Boolean(arrivalNotice) ? targetProduct.batchIdRef : null
|
|
126
123
|
const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
|
|
127
|
-
const productDetail: ProductDetail = Boolean(arrivalNotice)
|
|
128
|
-
? targetProduct.productDetail
|
|
129
|
-
: targetInventory.productDetail
|
|
130
124
|
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
131
125
|
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
132
126
|
const remark: string = Boolean(arrivalNotice) ? targetProduct.remark : targetInventory.remark
|
|
@@ -160,19 +154,32 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
160
154
|
|
|
161
155
|
if (productBarcode) {
|
|
162
156
|
const productDetails: ProductDetail[] = product?.productDetails.filter(detail => !detail.deletedAt)
|
|
163
|
-
const
|
|
164
|
-
if (!
|
|
157
|
+
const isMatchingBarcode: boolean = productDetails.map(detail => detail.gtin).includes(productBarcode)
|
|
158
|
+
if (!isMatchingBarcode) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
159
|
+
|
|
160
|
+
const foundProductDetail: ProductDetail = productDetails.find(
|
|
161
|
+
(detail: ProductDetail) =>
|
|
162
|
+
detail.gtin === productBarcode && detail.packingType === packingType && detail.packingSize == packingSize
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
if (!foundProductDetail) {
|
|
166
|
+
const orderProductDetail: ProductDetail = productDetails.find(
|
|
167
|
+
(parentDetail: ProductDetail) =>
|
|
168
|
+
parentDetail.packingType === packingType && parentDetail.packingSize == packingSize
|
|
169
|
+
)
|
|
170
|
+
if (!orderProductDetail)
|
|
171
|
+
throw new Error(
|
|
172
|
+
this.ERROR_MSG.FIND.NO_RESULT(`Packing Type ( ${packingType}) or Packing Size (${packingSize})`)
|
|
173
|
+
)
|
|
165
174
|
|
|
166
|
-
if (scannedProductDetail.id !== productDetail.id) {
|
|
167
|
-
let childQty = await this.getChildQty(productDetails, productBarcode, productDetail, scannedProductDetail)
|
|
168
175
|
if (arrivalNotice) {
|
|
169
176
|
uom = targetProduct.uom
|
|
170
177
|
} else {
|
|
171
|
-
uom =
|
|
178
|
+
uom = orderProductDetail.uom
|
|
172
179
|
}
|
|
173
|
-
qty
|
|
180
|
+
qty = (await this.getChildQty(productDetails, productBarcode, orderProductDetail)) * qty
|
|
174
181
|
} else {
|
|
175
|
-
uom =
|
|
182
|
+
uom = foundProductDetail.uom
|
|
176
183
|
qty
|
|
177
184
|
}
|
|
178
185
|
}
|
|
@@ -193,7 +200,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
193
200
|
newInventory.cartonId = inventory.cartonId
|
|
194
201
|
newInventory.batchId = batchId
|
|
195
202
|
newInventory.product = product
|
|
196
|
-
newInventory.productDetail = productDetail
|
|
197
203
|
newInventory.packingType = packingType
|
|
198
204
|
newInventory.packingSize = packingSize
|
|
199
205
|
newInventory.uom = uom
|
|
@@ -264,7 +270,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
264
270
|
'worksheet.bufferLocation.warehouse',
|
|
265
271
|
'targetProduct',
|
|
266
272
|
'targetProduct.product',
|
|
267
|
-
'targetProduct.productDetail',
|
|
268
273
|
'targetProduct.product.productDetails',
|
|
269
274
|
'targetProduct.product.productDetails.childProductDetail',
|
|
270
275
|
'targetInventory',
|
|
@@ -293,9 +298,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
293
298
|
const returnOrder: ReturnOrder = worksheet.returnOrder
|
|
294
299
|
const targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
295
300
|
const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
|
|
296
|
-
const productDetail: ProductDetail = Boolean(arrivalNotice)
|
|
297
|
-
? targetProduct.productDetail
|
|
298
|
-
: targetInventory.productDetail
|
|
299
301
|
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
300
302
|
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
301
303
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
@@ -307,13 +309,15 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
307
309
|
|
|
308
310
|
qty++
|
|
309
311
|
|
|
310
|
-
const invQb: SelectQueryBuilder<Inventory> = this.trxMgr
|
|
312
|
+
const invQb: SelectQueryBuilder<Inventory> = await this.trxMgr
|
|
311
313
|
.getRepository(Inventory)
|
|
312
314
|
.createQueryBuilder('INV')
|
|
313
315
|
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
314
316
|
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
315
|
-
.andWhere('INV.
|
|
317
|
+
.andWhere('INV.product_id = :productId', { productId: product.id })
|
|
316
318
|
.andWhere('INV.batch_id = :batchId', { batchId: batchId })
|
|
319
|
+
.andWhere('INV.packing_type = :packingType', { packingType: packingType })
|
|
320
|
+
.andWhere('INV.packing_size = :packingSize', { packingSize: packingSize })
|
|
317
321
|
|
|
318
322
|
if (arrivalNotice) invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id })
|
|
319
323
|
else if (returnOrder) invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id })
|
|
@@ -353,7 +357,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
353
357
|
newInventory.batchId = batchId
|
|
354
358
|
newInventory.batchIdRef = batchIdRef
|
|
355
359
|
newInventory.product = product
|
|
356
|
-
newInventory.productDetail = productDetail
|
|
357
360
|
newInventory.packingType = packingType
|
|
358
361
|
newInventory.packingSize = packingSize
|
|
359
362
|
newInventory.uom = uom
|
|
@@ -418,7 +421,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
418
421
|
inventoryItem.status = foundInventory.status
|
|
419
422
|
inventoryItem.inboundOrderId = foundInventory.refOrderId
|
|
420
423
|
inventoryItem.product = product
|
|
421
|
-
inventoryItem.productDetail = productDetail
|
|
422
424
|
inventoryItem.inventory = foundInventory
|
|
423
425
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.INBOUND
|
|
424
426
|
inventoryItem.domain = this.domain
|
|
@@ -455,12 +457,10 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
455
457
|
'worksheet.bufferLocation.warehouse',
|
|
456
458
|
'targetProduct',
|
|
457
459
|
'targetProduct.product',
|
|
458
|
-
'targetProduct.productDetail',
|
|
459
460
|
'targetProduct.product.productDetails',
|
|
460
461
|
'targetProduct.product.productDetails.childProductDetail',
|
|
461
462
|
'targetInventory',
|
|
462
463
|
'targetInventory.product',
|
|
463
|
-
'targetInventory.productDetail',
|
|
464
464
|
'targetInventory.product.productDetails',
|
|
465
465
|
'targetInventory.product.productDetails.childProductDetail'
|
|
466
466
|
]
|
|
@@ -485,9 +485,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
485
485
|
const returnOrder: ReturnOrder = worksheet.returnOrder
|
|
486
486
|
const targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
487
487
|
const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
|
|
488
|
-
const productDetail: ProductDetail = Boolean(arrivalNotice)
|
|
489
|
-
? targetProduct.productDetail
|
|
490
|
-
: targetInventory.productDetail
|
|
491
488
|
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
492
489
|
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
493
490
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
@@ -499,29 +496,45 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
499
496
|
|
|
500
497
|
// search for matching product barcode
|
|
501
498
|
const productDetails: ProductDetail[] = product?.productDetails.filter(detail => !detail.deletedAt)
|
|
502
|
-
const
|
|
503
|
-
if (!
|
|
499
|
+
const isMatchingBarcode: boolean = productDetails.map(detail => detail.gtin).includes(productBarcode)
|
|
500
|
+
if (!isMatchingBarcode) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
501
|
+
|
|
502
|
+
// case for scanning parent packing type, packing size
|
|
503
|
+
const foundProductDetail: ProductDetail = productDetails.find(
|
|
504
|
+
(detail: ProductDetail) =>
|
|
505
|
+
detail.gtin === productBarcode && detail.packingType === packingType && detail.packingSize == packingSize
|
|
506
|
+
)
|
|
507
|
+
|
|
508
|
+
if (!foundProductDetail) {
|
|
509
|
+
const orderProductDetail: ProductDetail = productDetails.find(
|
|
510
|
+
(parentDetail: ProductDetail) =>
|
|
511
|
+
parentDetail.packingType === packingType && parentDetail.packingSize == packingSize
|
|
512
|
+
)
|
|
513
|
+
if (!orderProductDetail)
|
|
514
|
+
throw new Error(
|
|
515
|
+
this.ERROR_MSG.FIND.NO_RESULT(`Packing Type ( ${packingType}) or Packing Size (${packingSize})`)
|
|
516
|
+
)
|
|
504
517
|
|
|
505
|
-
if (scannedProductDetail.id !== productDetail.id && arrivalNotice) {
|
|
506
|
-
let childQty = await this.getChildQty(productDetails, productBarcode, productDetail, scannedProductDetail)
|
|
507
518
|
if (arrivalNotice) {
|
|
508
519
|
uom = targetProduct.uom
|
|
509
520
|
} else {
|
|
510
|
-
uom =
|
|
521
|
+
uom = orderProductDetail.uom
|
|
511
522
|
}
|
|
512
|
-
qty =
|
|
523
|
+
qty = await this.getChildQty(productDetails, productBarcode, orderProductDetail)
|
|
513
524
|
} else {
|
|
514
|
-
uom =
|
|
525
|
+
uom = foundProductDetail.uom
|
|
515
526
|
qty++
|
|
516
527
|
}
|
|
517
528
|
|
|
518
|
-
const invQb: SelectQueryBuilder<Inventory> = this.trxMgr
|
|
529
|
+
const invQb: SelectQueryBuilder<Inventory> = await this.trxMgr
|
|
519
530
|
.getRepository(Inventory)
|
|
520
531
|
.createQueryBuilder('INV')
|
|
521
532
|
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
522
533
|
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
523
|
-
.andWhere('INV.
|
|
534
|
+
.andWhere('INV.product_id = :productId', { productId: product.id })
|
|
524
535
|
.andWhere('INV.batch_id = :batchId', { batchId: batchId })
|
|
536
|
+
.andWhere('INV.packing_type = :packingType', { packingType: packingType })
|
|
537
|
+
.andWhere('INV.packing_size = :packingSize', { packingSize: packingSize })
|
|
525
538
|
|
|
526
539
|
if (arrivalNotice) invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id })
|
|
527
540
|
else if (returnOrder) invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id })
|
|
@@ -561,7 +574,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
561
574
|
newInventory.batchId = batchId
|
|
562
575
|
newInventory.batchIdRef = batchIdRef
|
|
563
576
|
newInventory.product = product
|
|
564
|
-
newInventory.productDetail = productDetail
|
|
565
577
|
newInventory.packingType = packingType
|
|
566
578
|
newInventory.packingSize = packingSize
|
|
567
579
|
newInventory.uom = uom
|
|
@@ -644,10 +656,8 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
644
656
|
'worksheet.bufferLocation.warehouse',
|
|
645
657
|
'targetProduct',
|
|
646
658
|
'targetProduct.product',
|
|
647
|
-
'targetProduct.productDetail',
|
|
648
659
|
'targetInventory',
|
|
649
|
-
'targetInventory.product'
|
|
650
|
-
'targetInventory.productDetail'
|
|
660
|
+
'targetInventory.product'
|
|
651
661
|
]
|
|
652
662
|
})
|
|
653
663
|
if (!worksheetDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName))
|
|
@@ -658,7 +668,9 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
658
668
|
const returnOrder: ReturnOrder = worksheet.returnOrder
|
|
659
669
|
const targetProduct: OrderProduct = worksheetDetail.targetProduct
|
|
660
670
|
const targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
661
|
-
const
|
|
671
|
+
const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
|
|
672
|
+
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
673
|
+
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
662
674
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
663
675
|
|
|
664
676
|
const invQb: SelectQueryBuilder<Inventory> = await this.trxMgr
|
|
@@ -666,8 +678,10 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
666
678
|
.createQueryBuilder('INV')
|
|
667
679
|
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
668
680
|
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
669
|
-
.andWhere('INV.
|
|
681
|
+
.andWhere('INV.product_id = :productId', { productId: product.id })
|
|
670
682
|
.andWhere('INV.batch_id = :batchId', { batchId: batchId })
|
|
683
|
+
.andWhere('INV.packing_type = :packingType', { packingType: packingType })
|
|
684
|
+
.andWhere('INV.packing_size = :packingSize', { packingSize: packingSize })
|
|
671
685
|
|
|
672
686
|
if (arrivalNotice) invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id })
|
|
673
687
|
else if (returnOrder) invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id })
|
|
@@ -700,7 +714,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
700
714
|
const inventoryId: string = inventoryIds[i]
|
|
701
715
|
let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({
|
|
702
716
|
where: { domain: this.domain, id: inventoryId },
|
|
703
|
-
relations: ['location', 'product'
|
|
717
|
+
relations: ['location', 'product']
|
|
704
718
|
})
|
|
705
719
|
|
|
706
720
|
this.checkRecordValidity(inventory, {
|
|
@@ -730,11 +744,14 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
730
744
|
if (orderType === ORDER_TYPES.ARRIVAL_NOTICE) {
|
|
731
745
|
arrivalNotice = await this.trxMgr.getRepository(ArrivalNotice).findOne({
|
|
732
746
|
where: { domain: this.domain, name: orderNo },
|
|
733
|
-
relations: ['orderProducts', 'orderProducts.product'
|
|
747
|
+
relations: ['orderProducts', 'orderProducts.product']
|
|
734
748
|
})
|
|
735
749
|
|
|
736
750
|
targetProduct = arrivalNotice.orderProducts.find(
|
|
737
|
-
op =>
|
|
751
|
+
op =>
|
|
752
|
+
op.batchId == inventory.batchId &&
|
|
753
|
+
op.packingType == inventory.packingType &&
|
|
754
|
+
op.product.id === inventory.product.id
|
|
738
755
|
)
|
|
739
756
|
|
|
740
757
|
if (inventory.status == INVENTORY_STATUS.UNLOADED) {
|
|
@@ -760,7 +777,11 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
760
777
|
})
|
|
761
778
|
|
|
762
779
|
targetInventory = returnOrder.orderInventories.find(
|
|
763
|
-
oi =>
|
|
780
|
+
oi =>
|
|
781
|
+
oi.batchId == inventory.batchId &&
|
|
782
|
+
oi.packingType == inventory.packingType &&
|
|
783
|
+
oi.product.id == inventory.product.id &&
|
|
784
|
+
oi.packingSize === inventory.packingSize
|
|
764
785
|
)
|
|
765
786
|
if (inventory.status == INVENTORY_STATUS.UNLOADED) {
|
|
766
787
|
targetInventory.actualPackQty -= 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
|