@things-factory/worksheet-base 4.3.137 → 4.3.139
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 +59 -73
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +2 -4
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +5 -4
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +23 -23
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +157 -120
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +14 -14
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +1 -2
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +7 -7
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/entities/index.js +3 -2
- package/dist-server/entities/index.js.map +1 -1
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +29 -62
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +6 -0
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +1 -2
- 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/find-sorting-release-orders-by-task-no.js +2 -2
- package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +4 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +3 -2
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.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/unloaded-inventories.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.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 +1 -0
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/utils/inventory-util.js +1 -98
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +16 -16
- package/server/controllers/inbound/unloading-worksheet-controller.ts +74 -86
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +2 -4
- package/server/controllers/outbound/loading-worksheet-controller.ts +13 -3
- package/server/controllers/outbound/packing-worksheet-controller.ts +32 -37
- package/server/controllers/outbound/picking-worksheet-controller.ts +186 -150
- package/server/controllers/outbound/sorting-worksheet-controller.ts +14 -21
- package/server/controllers/vas/vas-worksheet-controller.ts +2 -2
- package/server/controllers/worksheet-controller.ts +15 -10
- package/server/entities/index.ts +2 -2
- package/server/entities/warehouse-bizplace-onhand-inventory.ts +29 -63
- package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +6 -0
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +1 -2
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +2 -2
- package/server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts +2 -2
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +3 -1
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +4 -2
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +3 -2
- package/server/graphql/resolvers/worksheet/transfer.ts +18 -16
- package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +1 -1
- package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +3 -2
- package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +4 -1
- package/server/graphql/types/worksheet-detail/index.ts +1 -0
- package/server/utils/inventory-util.ts +1 -126
|
@@ -1,107 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isInventoryExpiring = exports.inventoriesByStrategy = exports.checkPalletIdenticallity = exports.checkPalletDuplication = exports.switchLocationStatus =
|
|
3
|
+
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");
|
|
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;
|
|
105
8
|
/**
|
|
106
9
|
* @description: Check location emptiness and update status of location
|
|
107
10
|
* @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":"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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.139",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -23,22 +23,22 @@
|
|
|
23
23
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@things-factory/auth-base": "^4.3.
|
|
27
|
-
"@things-factory/biz-base": "^4.3.
|
|
26
|
+
"@things-factory/auth-base": "^4.3.138",
|
|
27
|
+
"@things-factory/biz-base": "^4.3.138",
|
|
28
28
|
"@things-factory/document-template-base": "^4.3.131",
|
|
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.138",
|
|
30
|
+
"@things-factory/integration-accounting": "^4.3.138",
|
|
31
|
+
"@things-factory/integration-lmd": "^4.3.138",
|
|
32
|
+
"@things-factory/integration-marketplace": "^4.3.138",
|
|
33
|
+
"@things-factory/integration-sellercraft": "^4.3.138",
|
|
34
|
+
"@things-factory/integration-sftp": "^4.3.138",
|
|
35
|
+
"@things-factory/marketplace-base": "^4.3.138",
|
|
36
|
+
"@things-factory/notification": "^4.3.138",
|
|
37
|
+
"@things-factory/sales-base": "^4.3.139",
|
|
38
|
+
"@things-factory/setting-base": "^4.3.138",
|
|
39
39
|
"@things-factory/shell": "^4.3.131",
|
|
40
|
-
"@things-factory/transport-base": "^4.3.
|
|
41
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
40
|
+
"@things-factory/transport-base": "^4.3.138",
|
|
41
|
+
"@things-factory/warehouse-base": "^4.3.138"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "82a27c0caaf2f2c98cd094b92fc603bf768d2513"
|
|
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 { Domain } from '@things-factory/shell'
|
|
23
22
|
import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
23
|
+
import { Domain } from '@things-factory/shell'
|
|
24
24
|
import {
|
|
25
25
|
Inventory,
|
|
26
26
|
INVENTORY_ITEM_SOURCE,
|
|
@@ -31,12 +31,13 @@ import {
|
|
|
31
31
|
InventoryNoGenerator,
|
|
32
32
|
Location,
|
|
33
33
|
Pallet,
|
|
34
|
-
Warehouse
|
|
34
|
+
Warehouse,
|
|
35
|
+
generateInventoryHistory
|
|
35
36
|
} from '@things-factory/warehouse-base'
|
|
36
37
|
|
|
37
38
|
import { RULE_TYPE, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
|
|
38
39
|
import { Worksheet, WorksheetDetail } from '../../entities'
|
|
39
|
-
import { DateGenerator
|
|
40
|
+
import { DateGenerator } from '../../utils'
|
|
40
41
|
import { VasWorksheetController } from '../vas/vas-worksheet-controller'
|
|
41
42
|
|
|
42
43
|
export type UnloadingWorksheetDetail = Partial<WorksheetDetail> & {
|
|
@@ -95,11 +96,13 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
95
96
|
'worksheet.bufferLocation.warehouse',
|
|
96
97
|
'targetProduct',
|
|
97
98
|
'targetProduct.product',
|
|
99
|
+
'targetProduct.productDetail',
|
|
98
100
|
'targetProduct.product.productDetails',
|
|
99
101
|
'targetProduct.product.productDetails.childProductDetail',
|
|
100
102
|
'targetInventory',
|
|
101
103
|
'targetInventory.inventory',
|
|
102
104
|
'targetInventory.product',
|
|
105
|
+
'targetInventory.productDetail',
|
|
103
106
|
'targetInventory.product.productDetails',
|
|
104
107
|
'targetInventory.product.productDetails.childProductDetail'
|
|
105
108
|
]
|
|
@@ -121,6 +124,9 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
121
124
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
122
125
|
const batchIdRef: string = Boolean(arrivalNotice) ? targetProduct.batchIdRef : null
|
|
123
126
|
const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
|
|
127
|
+
let productDetail: ProductDetail = Boolean(arrivalNotice)
|
|
128
|
+
? targetProduct.productDetail
|
|
129
|
+
: targetInventory.productDetail
|
|
124
130
|
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
125
131
|
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
126
132
|
const remark: string = Boolean(arrivalNotice) ? targetProduct.remark : targetInventory.remark
|
|
@@ -140,6 +146,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
140
146
|
|
|
141
147
|
const palletId: string = inventory?.palletId
|
|
142
148
|
const cartonId: string = inventory?.cartonId
|
|
149
|
+
let matchingProduct
|
|
143
150
|
|
|
144
151
|
if (!inventory?.palletId) {
|
|
145
152
|
inventory.palletId = await generateId({
|
|
@@ -153,35 +160,24 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
153
160
|
}
|
|
154
161
|
|
|
155
162
|
if (productBarcode) {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
+
matchingProduct = await this.getDirectQty(
|
|
164
|
+
{
|
|
165
|
+
...productDetail,
|
|
166
|
+
product: targetInventory?.product
|
|
167
|
+
},
|
|
168
|
+
productBarcode,
|
|
169
|
+
qty
|
|
163
170
|
)
|
|
164
171
|
|
|
165
|
-
|
|
166
|
-
|
|
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
|
-
)
|
|
172
|
+
//validate matching product details based on scanned barcode
|
|
173
|
+
if (!matchingProduct) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
174
174
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
} else {
|
|
182
|
-
uom = foundProductDetail.uom
|
|
183
|
-
qty
|
|
184
|
-
}
|
|
175
|
+
qty = matchingProduct.qty
|
|
176
|
+
uom = arrivalNotice ? targetProduct.uom : matchingProduct.uom
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (!uom) {
|
|
180
|
+
uom = productDetail.uom
|
|
185
181
|
}
|
|
186
182
|
|
|
187
183
|
const uomValue: number =
|
|
@@ -200,6 +196,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
200
196
|
newInventory.cartonId = inventory.cartonId
|
|
201
197
|
newInventory.batchId = batchId
|
|
202
198
|
newInventory.product = product
|
|
199
|
+
newInventory.productDetail = productDetail
|
|
203
200
|
newInventory.packingType = packingType
|
|
204
201
|
newInventory.packingSize = packingSize
|
|
205
202
|
newInventory.uom = uom
|
|
@@ -241,6 +238,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
241
238
|
targetProduct.actualPackQty += qty
|
|
242
239
|
targetProduct.status = ORDER_PRODUCT_STATUS.UNLOADED
|
|
243
240
|
targetProduct.updater = this.user
|
|
241
|
+
targetProduct.productDetail = productDetail
|
|
244
242
|
this.updateOrderTargets([targetProduct])
|
|
245
243
|
} else if (returnOrder) {
|
|
246
244
|
targetInventory.actualPalletQty++
|
|
@@ -270,9 +268,11 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
270
268
|
'worksheet.bufferLocation.warehouse',
|
|
271
269
|
'targetProduct',
|
|
272
270
|
'targetProduct.product',
|
|
271
|
+
'targetProduct.productDetail',
|
|
273
272
|
'targetProduct.product.productDetails',
|
|
274
273
|
'targetProduct.product.productDetails.childProductDetail',
|
|
275
274
|
'targetInventory',
|
|
275
|
+
'targetInventory.productDetail',
|
|
276
276
|
'targetInventory.product',
|
|
277
277
|
'targetInventory.product.productDetails',
|
|
278
278
|
'targetInventory.product.productDetails.childProductDetail'
|
|
@@ -289,7 +289,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
289
289
|
|
|
290
290
|
const targetProduct: OrderProduct = worksheetDetail.targetProduct
|
|
291
291
|
|
|
292
|
-
if (targetProduct
|
|
292
|
+
if (targetProduct?.status == ORDER_PRODUCT_STATUS.EDITED)
|
|
293
293
|
throw new Error('this product is pending for changes approval')
|
|
294
294
|
|
|
295
295
|
const bizplace: Bizplace = worksheetDetail.bizplace
|
|
@@ -298,6 +298,9 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
298
298
|
const returnOrder: ReturnOrder = worksheet.returnOrder
|
|
299
299
|
const targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
300
300
|
const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
|
|
301
|
+
const productDetail: ProductDetail = Boolean(arrivalNotice)
|
|
302
|
+
? targetProduct.productDetail
|
|
303
|
+
: targetInventory.productDetail
|
|
301
304
|
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
302
305
|
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
303
306
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
@@ -309,15 +312,13 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
309
312
|
|
|
310
313
|
qty++
|
|
311
314
|
|
|
312
|
-
const invQb: SelectQueryBuilder<Inventory> =
|
|
315
|
+
const invQb: SelectQueryBuilder<Inventory> = this.trxMgr
|
|
313
316
|
.getRepository(Inventory)
|
|
314
317
|
.createQueryBuilder('INV')
|
|
315
318
|
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
316
319
|
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
317
|
-
.andWhere('INV.
|
|
320
|
+
.andWhere('INV.product_detail_id = :productDetailId', { productDetailId: productDetail.id })
|
|
318
321
|
.andWhere('INV.batch_id = :batchId', { batchId: batchId })
|
|
319
|
-
.andWhere('INV.packing_type = :packingType', { packingType: packingType })
|
|
320
|
-
.andWhere('INV.packing_size = :packingSize', { packingSize: packingSize })
|
|
321
322
|
|
|
322
323
|
if (arrivalNotice) invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id })
|
|
323
324
|
else if (returnOrder) invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id })
|
|
@@ -357,6 +358,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
357
358
|
newInventory.batchId = batchId
|
|
358
359
|
newInventory.batchIdRef = batchIdRef
|
|
359
360
|
newInventory.product = product
|
|
361
|
+
newInventory.productDetail = productDetail
|
|
360
362
|
newInventory.packingType = packingType
|
|
361
363
|
newInventory.packingSize = packingSize
|
|
362
364
|
newInventory.uom = uom
|
|
@@ -421,6 +423,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
421
423
|
inventoryItem.status = foundInventory.status
|
|
422
424
|
inventoryItem.inboundOrderId = foundInventory.refOrderId
|
|
423
425
|
inventoryItem.product = product
|
|
426
|
+
inventoryItem.productDetail = productDetail
|
|
424
427
|
inventoryItem.inventory = foundInventory
|
|
425
428
|
inventoryItem.source = INVENTORY_ITEM_SOURCE.INBOUND
|
|
426
429
|
inventoryItem.domain = this.domain
|
|
@@ -457,10 +460,12 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
457
460
|
'worksheet.bufferLocation.warehouse',
|
|
458
461
|
'targetProduct',
|
|
459
462
|
'targetProduct.product',
|
|
463
|
+
'targetProduct.productDetail',
|
|
460
464
|
'targetProduct.product.productDetails',
|
|
461
465
|
'targetProduct.product.productDetails.childProductDetail',
|
|
462
466
|
'targetInventory',
|
|
463
467
|
'targetInventory.product',
|
|
468
|
+
'targetInventory.productDetail',
|
|
464
469
|
'targetInventory.product.productDetails',
|
|
465
470
|
'targetInventory.product.productDetails.childProductDetail'
|
|
466
471
|
]
|
|
@@ -485,56 +490,41 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
485
490
|
const returnOrder: ReturnOrder = worksheet.returnOrder
|
|
486
491
|
const targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
487
492
|
const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
|
|
493
|
+
let productDetail: ProductDetail = Boolean(arrivalNotice)
|
|
494
|
+
? targetProduct.productDetail
|
|
495
|
+
: targetInventory.productDetail
|
|
488
496
|
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
489
497
|
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
490
498
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
491
|
-
let qty: number =
|
|
499
|
+
let qty: number = 1
|
|
492
500
|
let uom: string = Boolean(arrivalNotice) ? targetProduct.uom : targetInventory.uom
|
|
493
501
|
const cartonId: string = inventory.cartonId
|
|
494
502
|
const orderId: string = Boolean(arrivalNotice) ? arrivalNotice.id : returnOrder.id
|
|
495
503
|
await this.checkCartonDuplication(cartonId, orderId)
|
|
504
|
+
let matchingProduct
|
|
496
505
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
(detail: ProductDetail) =>
|
|
505
|
-
detail.gtin === productBarcode && detail.packingType === packingType && detail.packingSize == packingSize
|
|
506
|
+
matchingProduct = await this.getDirectQty(
|
|
507
|
+
{
|
|
508
|
+
...productDetail,
|
|
509
|
+
product: targetInventory?.product
|
|
510
|
+
},
|
|
511
|
+
productBarcode,
|
|
512
|
+
qty
|
|
506
513
|
)
|
|
507
514
|
|
|
508
|
-
|
|
509
|
-
|
|
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
|
-
)
|
|
515
|
+
//validate matching product details based on scanned barcode
|
|
516
|
+
if (!matchingProduct) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
|
|
517
517
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
} else {
|
|
521
|
-
uom = orderProductDetail.uom
|
|
522
|
-
}
|
|
523
|
-
qty = await this.getChildQty(productDetails, productBarcode, orderProductDetail)
|
|
524
|
-
} else {
|
|
525
|
-
uom = foundProductDetail.uom
|
|
526
|
-
qty++
|
|
527
|
-
}
|
|
518
|
+
qty = matchingProduct.qty
|
|
519
|
+
uom = arrivalNotice ? targetProduct.uom : matchingProduct.uom
|
|
528
520
|
|
|
529
|
-
const invQb: SelectQueryBuilder<Inventory> =
|
|
521
|
+
const invQb: SelectQueryBuilder<Inventory> = this.trxMgr
|
|
530
522
|
.getRepository(Inventory)
|
|
531
523
|
.createQueryBuilder('INV')
|
|
532
524
|
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
533
525
|
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
534
|
-
.andWhere('INV.
|
|
526
|
+
.andWhere('INV.product_detail_id = :productDetailId', { productDetailId: productDetail.id })
|
|
535
527
|
.andWhere('INV.batch_id = :batchId', { batchId: batchId })
|
|
536
|
-
.andWhere('INV.packing_type = :packingType', { packingType: packingType })
|
|
537
|
-
.andWhere('INV.packing_size = :packingSize', { packingSize: packingSize })
|
|
538
528
|
|
|
539
529
|
if (arrivalNotice) invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id })
|
|
540
530
|
else if (returnOrder) invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id })
|
|
@@ -574,6 +564,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
574
564
|
newInventory.batchId = batchId
|
|
575
565
|
newInventory.batchIdRef = batchIdRef
|
|
576
566
|
newInventory.product = product
|
|
567
|
+
newInventory.productDetail = productDetail
|
|
577
568
|
newInventory.packingType = packingType
|
|
578
569
|
newInventory.packingSize = packingSize
|
|
579
570
|
newInventory.uom = uom
|
|
@@ -627,13 +618,16 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
627
618
|
: targetInventory.returnUomValue / targetInventory.returnQty) *
|
|
628
619
|
100
|
|
629
620
|
) / 100
|
|
621
|
+
foundInventory.productDetail = productDetail
|
|
630
622
|
if (arrivalNotice) targetProduct.actualPackQty = targetProduct.actualPackQty + qty
|
|
631
623
|
else if (returnOrder) targetInventory.actualPackQty = targetInventory.actualPackQty + qty
|
|
624
|
+
|
|
632
625
|
await this.trxMgr.getRepository(Inventory).save(foundInventory)
|
|
633
626
|
}
|
|
634
627
|
|
|
635
628
|
if (arrivalNotice) {
|
|
636
629
|
targetProduct.updater = this.user
|
|
630
|
+
targetProduct.productDetail = productDetail
|
|
637
631
|
this.updateOrderTargets([targetProduct])
|
|
638
632
|
} else if (returnOrder) {
|
|
639
633
|
targetInventory.updater = this.user
|
|
@@ -656,8 +650,10 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
656
650
|
'worksheet.bufferLocation.warehouse',
|
|
657
651
|
'targetProduct',
|
|
658
652
|
'targetProduct.product',
|
|
653
|
+
'targetProduct.productDetail',
|
|
659
654
|
'targetInventory',
|
|
660
|
-
'targetInventory.product'
|
|
655
|
+
'targetInventory.product',
|
|
656
|
+
'targetInventory.productDetail'
|
|
661
657
|
]
|
|
662
658
|
})
|
|
663
659
|
if (!worksheetDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName))
|
|
@@ -668,9 +664,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
668
664
|
const returnOrder: ReturnOrder = worksheet.returnOrder
|
|
669
665
|
const targetProduct: OrderProduct = worksheetDetail.targetProduct
|
|
670
666
|
const targetInventory: OrderInventory = worksheetDetail.targetInventory
|
|
671
|
-
const
|
|
672
|
-
const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
|
|
673
|
-
const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
|
|
667
|
+
const productDetail: Product = Boolean(arrivalNotice) ? targetProduct.productDetail : targetInventory.productDetail
|
|
674
668
|
const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
|
|
675
669
|
|
|
676
670
|
const invQb: SelectQueryBuilder<Inventory> = await this.trxMgr
|
|
@@ -678,10 +672,8 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
678
672
|
.createQueryBuilder('INV')
|
|
679
673
|
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
680
674
|
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
681
|
-
.andWhere('INV.
|
|
675
|
+
.andWhere('INV.product_detail_id = :productDetailId', { productDetailId: productDetail.id })
|
|
682
676
|
.andWhere('INV.batch_id = :batchId', { batchId: batchId })
|
|
683
|
-
.andWhere('INV.packing_type = :packingType', { packingType: packingType })
|
|
684
|
-
.andWhere('INV.packing_size = :packingSize', { packingSize: packingSize })
|
|
685
677
|
|
|
686
678
|
if (arrivalNotice) invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id })
|
|
687
679
|
else if (returnOrder) invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id })
|
|
@@ -714,7 +706,7 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
714
706
|
const inventoryId: string = inventoryIds[i]
|
|
715
707
|
let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({
|
|
716
708
|
where: { domain: this.domain, id: inventoryId },
|
|
717
|
-
relations: ['location', 'product']
|
|
709
|
+
relations: ['location', 'product', 'productDetail']
|
|
718
710
|
})
|
|
719
711
|
|
|
720
712
|
this.checkRecordValidity(inventory, {
|
|
@@ -744,14 +736,11 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
744
736
|
if (orderType === ORDER_TYPES.ARRIVAL_NOTICE) {
|
|
745
737
|
arrivalNotice = await this.trxMgr.getRepository(ArrivalNotice).findOne({
|
|
746
738
|
where: { domain: this.domain, name: orderNo },
|
|
747
|
-
relations: ['orderProducts', 'orderProducts.product']
|
|
739
|
+
relations: ['orderProducts', 'orderProducts.product', 'orderProducts.productDetail']
|
|
748
740
|
})
|
|
749
741
|
|
|
750
742
|
targetProduct = arrivalNotice.orderProducts.find(
|
|
751
|
-
op =>
|
|
752
|
-
op.batchId == inventory.batchId &&
|
|
753
|
-
op.packingType == inventory.packingType &&
|
|
754
|
-
op.product.id === inventory.product.id
|
|
743
|
+
op => op.batchId == inventory.batchId && op.productDetail.id == inventory.productDetail.id
|
|
755
744
|
)
|
|
756
745
|
|
|
757
746
|
if (inventory.status == INVENTORY_STATUS.UNLOADED) {
|
|
@@ -770,18 +759,17 @@ export class UnloadingWorksheetController extends VasWorksheetController {
|
|
|
770
759
|
worksheetDetail = await this.trxMgr
|
|
771
760
|
.getRepository(WorksheetDetail)
|
|
772
761
|
.findOne({ where: { domain: this.domain, targetProduct } })
|
|
762
|
+
|
|
763
|
+
//remove all related serial numbers
|
|
764
|
+
await this.trxMgr.getRepository(InventoryItem).delete({ inventory: inventoryId })
|
|
773
765
|
} else {
|
|
774
766
|
returnOrder = await this.trxMgr.getRepository(ReturnOrder).findOne({
|
|
775
767
|
where: { domain: this.domain, name: orderNo },
|
|
776
|
-
relations: ['orderInventories', 'orderInventories.inventory', 'orderInventories.
|
|
768
|
+
relations: ['orderInventories', 'orderInventories.inventory', 'orderInventories.productDetail']
|
|
777
769
|
})
|
|
778
770
|
|
|
779
771
|
targetInventory = returnOrder.orderInventories.find(
|
|
780
|
-
oi =>
|
|
781
|
-
oi.batchId == inventory.batchId &&
|
|
782
|
-
oi.packingType == inventory.packingType &&
|
|
783
|
-
oi.product.id == inventory.product.id &&
|
|
784
|
-
oi.packingSize === inventory.packingSize
|
|
772
|
+
oi => oi.batchId == inventory.batchId && oi.productDetail.id == inventory.productDetail.id
|
|
785
773
|
)
|
|
786
774
|
if (inventory.status == INVENTORY_STATUS.UNLOADED) {
|
|
787
775
|
targetInventory.actualPackQty -= qty
|
|
@@ -103,16 +103,14 @@ export class CycleCountWorksheetController extends WorksheetController {
|
|
|
103
103
|
let keyval = {
|
|
104
104
|
batchId: 'batch_id',
|
|
105
105
|
batchIdRef: 'batch_id_ref',
|
|
106
|
-
|
|
107
|
-
packingSize: 'packing_size',
|
|
108
|
-
productId: 'product_id'
|
|
106
|
+
productDetailId: 'product_detail_id'
|
|
109
107
|
}
|
|
110
108
|
|
|
111
109
|
qb.andWhere(
|
|
112
110
|
new Brackets(qb => {
|
|
113
111
|
orderInventory.forEach((itm, idx) => {
|
|
114
112
|
// sample itm value
|
|
115
|
-
// batchId: 'WO00019730', batchIdRef: null,
|
|
113
|
+
// batchId: 'WO00019730', batchIdRef: null, productDetailId: '1d679587-c713-42d6-bd0a-74e587e39cc7'
|
|
116
114
|
qb.orWhere(
|
|
117
115
|
new Brackets(qb2 => {
|
|
118
116
|
let first = true
|
|
@@ -12,11 +12,16 @@ import {
|
|
|
12
12
|
OrderToteItem,
|
|
13
13
|
ReleaseGood
|
|
14
14
|
} from '@things-factory/sales-base'
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
generateInventoryHistory,
|
|
17
|
+
Inventory,
|
|
18
|
+
INVENTORY_TRANSACTION_TYPE,
|
|
19
|
+
Tote,
|
|
20
|
+
TOTE_STATUS
|
|
21
|
+
} from '@things-factory/warehouse-base'
|
|
16
22
|
|
|
17
23
|
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
|
|
18
24
|
import { Worksheet, WorksheetDetail } from '../../entities'
|
|
19
|
-
import { generateInventoryHistory } from '../../utils'
|
|
20
25
|
import { VasWorksheetController } from '../vas/vas-worksheet-controller'
|
|
21
26
|
|
|
22
27
|
export class LoadingWorksheetController extends VasWorksheetController {
|
|
@@ -48,7 +53,7 @@ export class LoadingWorksheetController extends VasWorksheetController {
|
|
|
48
53
|
{ domain: this.domain, name: releaseGoodNo },
|
|
49
54
|
['bizplace']
|
|
50
55
|
)
|
|
51
|
-
return await this.
|
|
56
|
+
return await this.updateLoadWorksheet(
|
|
52
57
|
WORKSHEET_TYPE.LOADING,
|
|
53
58
|
releaseGood,
|
|
54
59
|
worksheet,
|
|
@@ -114,9 +119,13 @@ export class LoadingWorksheetController extends VasWorksheetController {
|
|
|
114
119
|
WORKSHEET_TYPE.LOADING,
|
|
115
120
|
[
|
|
116
121
|
'worksheet',
|
|
122
|
+
|
|
117
123
|
'targetInventory',
|
|
124
|
+
|
|
118
125
|
'targetInventory.inventory',
|
|
126
|
+
|
|
119
127
|
'targetInventory.product',
|
|
128
|
+
'targetInventory.productDetail',
|
|
120
129
|
'targetInventory.orderProduct'
|
|
121
130
|
]
|
|
122
131
|
)
|
|
@@ -176,6 +185,7 @@ export class LoadingWorksheetController extends VasWorksheetController {
|
|
|
176
185
|
newTargetInventory.releaseQty = remainQty
|
|
177
186
|
newTargetInventory.releaseUomValue = remainUomValue
|
|
178
187
|
newTargetInventory.product = targetInventory.product
|
|
188
|
+
newTargetInventory.productDetail = targetInventory.productDetail
|
|
179
189
|
newTargetInventory.packingType = targetInventory.packingType
|
|
180
190
|
newTargetInventory.batchId = targetInventory.batchId
|
|
181
191
|
newTargetInventory.orderProduct = targetInventory.orderProduct
|