@things-factory/worksheet-base 4.1.16 → 4.1.21
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/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +35 -3
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +168 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/index.js +5 -4
- package/dist-server/graphql/resolvers/worksheet-detail/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/index.js +10 -2
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/utils/inventory-util.js +6 -10
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +17 -17
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +34 -3
- package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +243 -0
- package/server/graphql/resolvers/worksheet-detail/index.ts +5 -3
- package/server/graphql/types/worksheet-detail/index.ts +10 -2
- package/server/utils/inventory-util.ts +3 -9
|
@@ -25,9 +25,39 @@ exports.confirmCancellationReleaseOrder = {
|
|
|
25
25
|
let foundOVs = releaseGood.orderVass;
|
|
26
26
|
// 1. Check Order Inventory status
|
|
27
27
|
// 1a. separate into two groups, group 1: pending cancel, group 2: picked
|
|
28
|
-
let cancelOI = targetOIs.filter((oi) => oi.status === sales_base_1.ORDER_INVENTORY_STATUS.PENDING_CANCEL)
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
let cancelOI = targetOIs.filter((oi) => oi.status === sales_base_1.ORDER_INVENTORY_STATUS.PENDING_CANCEL).reduce((acc, oi) => {
|
|
29
|
+
let existingRecordIdx = acc.findIndex(i => i.inventory.id == oi.inventory.id);
|
|
30
|
+
if (existingRecordIdx >= 0) {
|
|
31
|
+
acc[existingRecordIdx].releaseQty += oi.releaseQty;
|
|
32
|
+
acc[existingRecordIdx].releaseUomValue += oi.releaseQty;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
acc.push(oi);
|
|
36
|
+
}
|
|
37
|
+
return acc;
|
|
38
|
+
}, []);
|
|
39
|
+
let pickedOI = targetOIs.filter((oi) => oi.status === sales_base_1.ORDER_INVENTORY_STATUS.PENDING_REVERSE).reduce((acc, oi) => {
|
|
40
|
+
let existingRecordIdx = acc.findIndex(i => i.inventory.id == oi.inventory.id);
|
|
41
|
+
if (existingRecordIdx >= 0) {
|
|
42
|
+
acc[existingRecordIdx].releaseQty += oi.releaseQty;
|
|
43
|
+
acc[existingRecordIdx].releaseUomValue += oi.releaseQty;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
acc.push(oi);
|
|
47
|
+
}
|
|
48
|
+
return acc;
|
|
49
|
+
}, []);
|
|
50
|
+
let replacedOI = targetOIs.filter((oi) => oi.status === sales_base_1.ORDER_INVENTORY_STATUS.REPLACED).reduce((acc, oi) => {
|
|
51
|
+
let existingRecordIdx = acc.findIndex(i => i.inventory.id == oi.inventory.id);
|
|
52
|
+
if (existingRecordIdx >= 0) {
|
|
53
|
+
acc[existingRecordIdx].releaseQty += oi.releaseQty;
|
|
54
|
+
acc[existingRecordIdx].releaseUomValue += oi.releaseQty;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
acc.push(oi);
|
|
58
|
+
}
|
|
59
|
+
return acc;
|
|
60
|
+
}, []);
|
|
31
61
|
if (pickedOI && (pickedOI === null || pickedOI === void 0 ? void 0 : pickedOI.length)) {
|
|
32
62
|
await tx.getRepository(sales_base_1.OrderInventory).save(await Promise.all(pickedOI.map(async (orderInventory) => {
|
|
33
63
|
let inventory = orderInventory.inventory;
|
|
@@ -36,6 +66,7 @@ exports.confirmCancellationReleaseOrder = {
|
|
|
36
66
|
cancelledTargetInventory.status = sales_base_1.ORDER_INVENTORY_STATUS.CANCELLED;
|
|
37
67
|
cancelledTargetInventory.updater = user;
|
|
38
68
|
if (inventory) {
|
|
69
|
+
inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne({ id: inventory.id });
|
|
39
70
|
inventory.qty += orderInventory.releaseQty;
|
|
40
71
|
inventory.uomValue += orderInventory.releaseUomValue;
|
|
41
72
|
inventory.status = warehouse_base_1.INVENTORY_STATUS.STORED;
|
|
@@ -57,6 +88,7 @@ exports.confirmCancellationReleaseOrder = {
|
|
|
57
88
|
await tx.getRepository(sales_base_1.OrderInventory).save(await Promise.all(cancelOI.map(async (orderInventory) => {
|
|
58
89
|
let inventory = orderInventory.inventory;
|
|
59
90
|
if (inventory) {
|
|
91
|
+
inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne({ id: inventory.id });
|
|
60
92
|
inventory.lockedQty -= orderInventory.releaseQty;
|
|
61
93
|
inventory.lockedUomValue -= orderInventory.releaseUomValue;
|
|
62
94
|
await tx.getRepository(warehouse_base_1.Inventory).save(inventory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-cancellation-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts"],"names":[],"mappings":";;;AAAA,mEAMuC;AAGvC,qCAA2C;AAC3C,2DAQmC;AACnC,0CAAyD;AACzD,gDAA8D;AAEjD,QAAA,+BAA+B,GAAG;IAC7C,KAAK,CAAC,+BAA+B,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAY;QAClE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,IAAI,WAAW,GAAgB,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAW,CAAC,CAAC,OAAO,CAAC;YACzE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,yBAAY,CAAC,cAAc,EAAE;YAC5D,SAAS,EAAE;gBACT,UAAU;gBACV,kBAAkB;gBAClB,4BAA4B;gBAC5B,qCAAqC;gBACrC,WAAW;aACZ;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvE,IAAI,SAAS,GAAqB,WAAW,CAAC,gBAAgB,CAAA;QAC9D,IAAI,QAAQ,GAAe,WAAW,CAAC,SAAS,CAAA;QAEhD,kCAAkC;QAClC,yEAAyE;QACzE,IAAI,QAAQ,GAAqB,SAAS,CAAC,MAAM,CAC/C,CAAC,EAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,mCAAsB,CAAC,cAAc,CAC5E,CAAA;
|
|
1
|
+
{"version":3,"file":"confirm-cancellation-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generatePickingWorksheetDetailsResolver = void 0;
|
|
4
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
5
|
+
const setting_base_1 = require("@things-factory/setting-base");
|
|
6
|
+
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
7
|
+
const constants_1 = require("../../../constants");
|
|
8
|
+
const entities_1 = require("../../../entities");
|
|
9
|
+
const utils_1 = require("../../../utils");
|
|
10
|
+
exports.generatePickingWorksheetDetailsResolver = {
|
|
11
|
+
async generatePickingWorksheetDetails(_, { bizplaceId, selectedItems, pickingStrategy, worksheetNo, locationSortingRules }, context) {
|
|
12
|
+
const { tx, user, domain } = context.state;
|
|
13
|
+
// 1. find related worksheet
|
|
14
|
+
const worksheet = await tx.getRepository(entities_1.Worksheet).findOne({
|
|
15
|
+
where: { name: worksheetNo, status: constants_1.WORKSHEET_STATUS.DEACTIVATED, domain },
|
|
16
|
+
relations: ['releaseGood']
|
|
17
|
+
});
|
|
18
|
+
if (!worksheet)
|
|
19
|
+
throw new Error('picking worksheet not found');
|
|
20
|
+
const worksheetId = worksheet.id;
|
|
21
|
+
// 2. search for sorting rules
|
|
22
|
+
const inventoryAssignmentSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
23
|
+
where: { domain, name: 'rule-for-inventory-assignment' }
|
|
24
|
+
});
|
|
25
|
+
if (!locationSortingRules && inventoryAssignmentSetting) {
|
|
26
|
+
locationSortingRules = [];
|
|
27
|
+
let locationSetting = JSON.parse(inventoryAssignmentSetting.value);
|
|
28
|
+
for (const key in locationSetting) {
|
|
29
|
+
locationSortingRules.push({ name: key, desc: locationSetting[key] == 'ASC' ? false : true });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
// 3. get all related inventories by strategy
|
|
34
|
+
let inventories = await (0, warehouse_base_1.getInventoriesByStrategy)(domain.id, bizplaceId, worksheetId, selectedItems, pickingStrategy, locationSortingRules, tx);
|
|
35
|
+
// 4. get worksheet details
|
|
36
|
+
let worksheetDetails = selectedItems.reduce((accWSD, oi) => {
|
|
37
|
+
const relatedInventories = inventories.filter(inv => inv.productId == oi.productId &&
|
|
38
|
+
inv.batchId == oi.batchId &&
|
|
39
|
+
inv.packingType == oi.packingType &&
|
|
40
|
+
inv.packingSize == oi.packingSize &&
|
|
41
|
+
inv.uom == oi.uom &&
|
|
42
|
+
inv.remainQty);
|
|
43
|
+
if (relatedInventories.length &&
|
|
44
|
+
oi.releaseQty <= inventories.reduce((totalQty, inv) => totalQty + inv.remainQty, 0)) {
|
|
45
|
+
let composedWSD = _composeWorksheetDetails(domain, user, worksheet.releaseGood, bizplaceId, oi, relatedInventories);
|
|
46
|
+
accWSD.push(...composedWSD);
|
|
47
|
+
}
|
|
48
|
+
return accWSD;
|
|
49
|
+
}, []);
|
|
50
|
+
let targetInventories = worksheetDetails.map((wsd) => wsd.targetInventory);
|
|
51
|
+
// 5. remove existing worksheet details and its target inventory if there's any
|
|
52
|
+
await _removeOldWorksheetDetails(targetInventories, worksheet.id, tx);
|
|
53
|
+
targetInventories = await tx.getRepository(sales_base_1.OrderInventory).save(targetInventories);
|
|
54
|
+
let newWorksheetDetails = [];
|
|
55
|
+
for (let i = 0, l = targetInventories.length; i < l; i++) {
|
|
56
|
+
const targetInventory = targetInventories[i];
|
|
57
|
+
// 6. update inventory lockedQty and lockedUomValue
|
|
58
|
+
await tx
|
|
59
|
+
.createQueryBuilder()
|
|
60
|
+
.update(warehouse_base_1.Inventory)
|
|
61
|
+
.set({
|
|
62
|
+
lockedQty: () => `COALESCE("locked_qty", 0) + ${targetInventory.releaseQty}`,
|
|
63
|
+
lockedUomValue: () => `COALESCE("locked_uom_value", 0) + ${targetInventory.releaseUomValue}`,
|
|
64
|
+
updater: user
|
|
65
|
+
})
|
|
66
|
+
.where('id = :id', { id: targetInventory.inventory.id })
|
|
67
|
+
.execute();
|
|
68
|
+
// 7. collect new worksheet details records
|
|
69
|
+
const worksheetDetail = Object.assign(new entities_1.WorksheetDetail(), {
|
|
70
|
+
domain,
|
|
71
|
+
bizplace: { id: bizplaceId },
|
|
72
|
+
worksheet,
|
|
73
|
+
name: utils_1.WorksheetNoGenerator.pickingDetail(),
|
|
74
|
+
seq: 0,
|
|
75
|
+
targetInventory,
|
|
76
|
+
type: constants_1.WORKSHEET_TYPE.PICKING,
|
|
77
|
+
status: constants_1.WORKSHEET_STATUS.DEACTIVATED,
|
|
78
|
+
creator: user,
|
|
79
|
+
updater: user
|
|
80
|
+
});
|
|
81
|
+
newWorksheetDetails.push(worksheetDetail);
|
|
82
|
+
}
|
|
83
|
+
// 8. save worksheet details
|
|
84
|
+
await tx.getRepository(entities_1.WorksheetDetail).save(newWorksheetDetails);
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
function _composeWorksheetDetails(domain, user, releaseGood, bizplaceId, record, inventories) {
|
|
93
|
+
let leftReleaseQty = record.releaseQty;
|
|
94
|
+
let leftReleaseUomValue = record.releaseUomValue;
|
|
95
|
+
let compReleaseQty = 0;
|
|
96
|
+
let compReleaseUomValue = 0;
|
|
97
|
+
let worksheetDetails = [];
|
|
98
|
+
let idx = 0;
|
|
99
|
+
while (compReleaseQty < record.releaseQty) {
|
|
100
|
+
const inv = inventories[idx];
|
|
101
|
+
let releaseQty = 0;
|
|
102
|
+
let releaseUomValue = 0;
|
|
103
|
+
if (inv.remainQty > leftReleaseQty) {
|
|
104
|
+
compReleaseQty += leftReleaseQty;
|
|
105
|
+
compReleaseUomValue += leftReleaseUomValue;
|
|
106
|
+
releaseQty = leftReleaseQty;
|
|
107
|
+
releaseUomValue = leftReleaseUomValue;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
compReleaseQty += inv.remainQty;
|
|
111
|
+
compReleaseUomValue += inv.remainUomValue;
|
|
112
|
+
leftReleaseQty -= inv.remainQty;
|
|
113
|
+
leftReleaseUomValue -= inv.remainUomValue;
|
|
114
|
+
releaseQty = inv.remainQty;
|
|
115
|
+
releaseUomValue = inv.remainUomValue;
|
|
116
|
+
}
|
|
117
|
+
let worksheetDetail = Object.assign(new entities_1.WorksheetDetail(), {
|
|
118
|
+
targetInventory: {
|
|
119
|
+
domain,
|
|
120
|
+
bizplace: { id: bizplaceId },
|
|
121
|
+
name: sales_base_1.OrderNoGenerator.orderInventory(),
|
|
122
|
+
releaseGood,
|
|
123
|
+
inventory: { id: inv.id },
|
|
124
|
+
product: { id: inv.productId },
|
|
125
|
+
batchId: inv.batchId,
|
|
126
|
+
batchIdRef: inv.batchIdRef,
|
|
127
|
+
packingType: inv.packingType,
|
|
128
|
+
packingSize: inv.packingSize,
|
|
129
|
+
releaseQty,
|
|
130
|
+
releaseUomValue,
|
|
131
|
+
creator: user,
|
|
132
|
+
updater: user,
|
|
133
|
+
status: sales_base_1.ORDER_INVENTORY_STATUS.READY_TO_PICK,
|
|
134
|
+
type: sales_base_1.ORDER_TYPES.RELEASE_OF_GOODS.value
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
worksheetDetails.push(worksheetDetail);
|
|
138
|
+
idx++;
|
|
139
|
+
}
|
|
140
|
+
return worksheetDetails;
|
|
141
|
+
}
|
|
142
|
+
async function _removeOldWorksheetDetails(targetInventories, worksheetId, tx) {
|
|
143
|
+
let orderProductJson = JSON.stringify(targetInventories.map((target) => {
|
|
144
|
+
return {
|
|
145
|
+
product_id: target.product.id,
|
|
146
|
+
batch_id: target.batchId,
|
|
147
|
+
packing_type: target.packingType,
|
|
148
|
+
packing_size: target.packingSize
|
|
149
|
+
};
|
|
150
|
+
}));
|
|
151
|
+
// get worksheetDetail IDs and their targetInventory IDs
|
|
152
|
+
let existingOIandWSD = await tx.query(`
|
|
153
|
+
SELECT wsd.id AS "worksheetDetailId", oi.id AS "orderInventoryId"
|
|
154
|
+
FROM order_inventories oi
|
|
155
|
+
INNER JOIN JSON_POPULATE_RECORDSET(NULL::order_products, $1) js ON oi.batch_id = js.batch_id
|
|
156
|
+
AND oi.product_id = js.product_id
|
|
157
|
+
AND oi.packing_type = js.packing_type
|
|
158
|
+
AND oi.packing_size = js.packing_size
|
|
159
|
+
LEFT JOIN worksheet_details wsd ON oi.id = wsd.target_inventory_id
|
|
160
|
+
WHERE oi.release_good_id = $2
|
|
161
|
+
`, [orderProductJson, worksheetId]);
|
|
162
|
+
// if found the records then delete, so that we can create new records
|
|
163
|
+
if (existingOIandWSD.length) {
|
|
164
|
+
await tx.getRepository(entities_1.WorksheetDetail).delete(existingOIandWSD.map((wsd) => wsd.worksheetDetailId));
|
|
165
|
+
await tx.getRepository(sales_base_1.OrderInventory).delete(existingOIandWSD.map((wsd) => wsd.orderInventoryId));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=generate-picking-worksheet-details.js.map
|
package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-picking-worksheet-details.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Mutation = exports.Query = void 0;
|
|
4
|
+
const check_progressing_pallet_1 = require("./check-progressing-pallet");
|
|
4
5
|
const create_worksheet_detail_1 = require("./create-worksheet-detail");
|
|
5
6
|
const delete_worksheet_detail_1 = require("./delete-worksheet-detail");
|
|
6
|
-
const generate_release_good_worksheet_details_1 = require("./generate-release-good-worksheet-details");
|
|
7
7
|
const generate_batch_picking_worksheet_details_1 = require("./generate-batch-picking-worksheet-details");
|
|
8
8
|
const generate_batch_picking_worksheet_details_by_bulk_1 = require("./generate-batch-picking-worksheet-details-by-bulk");
|
|
9
|
-
const check_progressing_pallet_1 = require("./check-progressing-pallet");
|
|
10
|
-
const generate_pallet_id_1 = require("./generate-pallet-id");
|
|
11
9
|
const generate_carton_id_1 = require("./generate-carton-id");
|
|
10
|
+
const generate_pallet_id_1 = require("./generate-pallet-id");
|
|
11
|
+
const generate_picking_worksheet_details_1 = require("./generate-picking-worksheet-details");
|
|
12
|
+
const generate_release_good_worksheet_details_1 = require("./generate-release-good-worksheet-details");
|
|
12
13
|
const update_worksheet_detail_1 = require("./update-worksheet-detail");
|
|
13
14
|
const worksheet_detail_1 = require("./worksheet-detail");
|
|
14
15
|
const worksheet_details_1 = require("./worksheet-details");
|
|
15
16
|
const worksheet_details_by_product_group_1 = require("./worksheet-details-by-product-group");
|
|
16
17
|
exports.Query = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, worksheet_details_1.worksheetDetailsResolver), worksheet_detail_1.worksheetDetailResolver), worksheet_details_by_product_group_1.worksheetDetailsByProductGroupResolver), check_progressing_pallet_1.checkProgressingPalletResolver), generate_pallet_id_1.generatePalletIdResolver), generate_carton_id_1.generateCartonIdResolver);
|
|
17
|
-
exports.Mutation = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, update_worksheet_detail_1.updateWorksheetDetail), create_worksheet_detail_1.createWorksheetDetail), delete_worksheet_detail_1.deleteWorksheetDetail), generate_batch_picking_worksheet_details_1.generateBatchPickingWorksheetDetailsResolver), generate_batch_picking_worksheet_details_by_bulk_1.generateBatchPickingWorksheetDetailsByBulkResolver), generate_release_good_worksheet_details_1.generateReleaseGoodWorksheetDetailsResolver);
|
|
18
|
+
exports.Mutation = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, update_worksheet_detail_1.updateWorksheetDetail), create_worksheet_detail_1.createWorksheetDetail), delete_worksheet_detail_1.deleteWorksheetDetail), generate_batch_picking_worksheet_details_1.generateBatchPickingWorksheetDetailsResolver), generate_batch_picking_worksheet_details_by_bulk_1.generateBatchPickingWorksheetDetailsByBulkResolver), generate_picking_worksheet_details_1.generatePickingWorksheetDetailsResolver), generate_release_good_worksheet_details_1.generateReleaseGoodWorksheetDetailsResolver);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet-detail/index.ts"],"names":[],"mappings":";;;AAAA,uEAAiE;AACjE,uEAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet-detail/index.ts"],"names":[],"mappings":";;;AAAA,yEAA2E;AAC3E,uEAAiE;AACjE,uEAAiE;AACjE,yGAAyG;AACzG,yHAAuH;AACvH,6DAA+D;AAC/D,6DAA+D;AAC/D,6FAA8F;AAC9F,uGAAuG;AACvG,uEAAiE;AACjE,yDAA4D;AAC5D,2DAA8D;AAC9D,6FAA6F;AAEhF,QAAA,KAAK,2FACb,4CAAwB,GACxB,0CAAuB,GACvB,2EAAsC,GACtC,yDAA8B,GAC9B,6CAAwB,GACxB,6CAAwB,EAC5B;AAEY,QAAA,QAAQ,yGAChB,+CAAqB,GACrB,+CAAqB,GACrB,+CAAqB,GACrB,uFAA4C,GAC5C,qGAAkD,GAClD,4EAAuC,GACvC,qFAA2C,EAC/C"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Types = exports.Query = exports.Mutation = void 0;
|
|
4
|
+
const inventory_detail_1 = require("./inventory-detail");
|
|
4
5
|
const new_worksheet_detail_1 = require("./new-worksheet-detail");
|
|
6
|
+
const pallet_info_1 = require("./pallet-info");
|
|
5
7
|
const worksheet_detail_1 = require("./worksheet-detail");
|
|
6
8
|
const worksheet_detail_list_1 = require("./worksheet-detail-list");
|
|
7
9
|
const worksheet_detail_patch_1 = require("./worksheet-detail-patch");
|
|
8
|
-
const pallet_info_1 = require("./pallet-info");
|
|
9
|
-
const inventory_detail_1 = require("./inventory-detail");
|
|
10
10
|
exports.Mutation = `
|
|
11
11
|
createWorksheetDetail (
|
|
12
12
|
worksheetDetail: NewWorksheetDetail!
|
|
@@ -46,6 +46,14 @@ exports.Mutation = `
|
|
|
46
46
|
pickingStrategy: String!
|
|
47
47
|
): Boolean @transaction
|
|
48
48
|
|
|
49
|
+
generatePickingWorksheetDetails(
|
|
50
|
+
bizplaceId: String!
|
|
51
|
+
selectedItems: [OrderInventoryPatch]!
|
|
52
|
+
pickingStrategy: String!
|
|
53
|
+
worksheetNo: String!
|
|
54
|
+
locationSortingRules: [Sorting]
|
|
55
|
+
): Boolean @transaction
|
|
56
|
+
|
|
49
57
|
`;
|
|
50
58
|
exports.Query = `
|
|
51
59
|
worksheetDetails(filters: [Filter], pagination: Pagination, sortings: [Sorting]): WorksheetDetailList @transaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet-detail/index.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAC3D,yDAAoD;AACpD,mEAA6D;AAC7D,qEAA+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet-detail/index.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AACpD,iEAA2D;AAC3D,+CAA0C;AAC1C,yDAAoD;AACpD,mEAA6D;AAC7D,qEAA+D;AAElD,QAAA,QAAQ,GAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CrC,CAAA;AAEY,QAAA,KAAK,GAAiB;;;;;;;CAOlC,CAAA;AAEY,QAAA,KAAK,GAAG;IACnB,kCAAe;IACf,yCAAkB;IAClB,6CAAoB;IACpB,2CAAmB;IACnB,wBAAU;IACV,kCAAe;CAChB,CAAA"}
|
|
@@ -8,7 +8,7 @@ const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
|
8
8
|
* @description It will insert new record into inventory histories table.
|
|
9
9
|
* seq will be calculated based on number of records for one specific pallet id (provided by inventory object)
|
|
10
10
|
*/
|
|
11
|
-
async function generateInventoryHistory(inventory, refOrder, transactionType, qty, uomValue, user, trxMgr, targetInventory = {}) {
|
|
11
|
+
async function generateInventoryHistory(inventory, refOrder, transactionType, qty = 0, uomValue = 0, user, trxMgr, targetInventory = {}) {
|
|
12
12
|
var _a, _b, _c;
|
|
13
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
14
|
const invRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(warehouse_base_1.Inventory)) || (0, typeorm_1.getRepository)(warehouse_base_1.Inventory);
|
|
@@ -57,14 +57,6 @@ async function generateInventoryHistory(inventory, refOrder, transactionType, qt
|
|
|
57
57
|
uomValue -= prevTotalUomValue;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
else if (transactionType == 'UNDO_UNLOADING' || transactionType == 'RETURN') {
|
|
61
|
-
qty = qty;
|
|
62
|
-
uomValue = uomValue;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
qty = 0;
|
|
66
|
-
uomValue = 0;
|
|
67
|
-
}
|
|
68
60
|
let inventoryHistory = new warehouse_base_1.InventoryHistory();
|
|
69
61
|
inventoryHistory.name = warehouse_base_1.InventoryNoGenerator.inventoryHistoryName();
|
|
70
62
|
inventoryHistory.description = inventory.description;
|
|
@@ -100,7 +92,11 @@ async function generateInventoryHistory(inventory, refOrder, transactionType, qt
|
|
|
100
92
|
inventoryHistory.updater = user;
|
|
101
93
|
inventoryHistory = await invHistoryRepo.save(inventoryHistory);
|
|
102
94
|
if (inventory.lastSeq !== seq) {
|
|
103
|
-
await invRepo.save(
|
|
95
|
+
await invRepo.save({
|
|
96
|
+
id: inventory.id,
|
|
97
|
+
lastSeq: inventoryHistory.seq,
|
|
98
|
+
updater: user
|
|
99
|
+
});
|
|
104
100
|
}
|
|
105
101
|
await switchLocationStatus(domain, location, user, trxMgr);
|
|
106
102
|
return inventoryHistory;
|
|
@@ -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.1.
|
|
3
|
+
"version": "4.1.21",
|
|
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.1.
|
|
28
|
-
"@things-factory/biz-base": "^4.1.
|
|
29
|
-
"@things-factory/document-template-base": "^4.1.
|
|
30
|
-
"@things-factory/id-rule-base": "^4.1.
|
|
31
|
-
"@things-factory/integration-lmd": "^4.1.
|
|
32
|
-
"@things-factory/integration-marketplace": "^4.1.
|
|
33
|
-
"@things-factory/integration-sellercraft": "^4.1.
|
|
34
|
-
"@things-factory/integration-sftp": "^4.1.
|
|
35
|
-
"@things-factory/marketplace-base": "^4.1.
|
|
36
|
-
"@things-factory/notification": "^4.1.
|
|
37
|
-
"@things-factory/sales-base": "^4.1.
|
|
38
|
-
"@things-factory/setting-base": "^4.1.
|
|
39
|
-
"@things-factory/shell": "^4.1.
|
|
40
|
-
"@things-factory/transport-base": "^4.1.
|
|
41
|
-
"@things-factory/warehouse-base": "^4.1.
|
|
27
|
+
"@things-factory/auth-base": "^4.1.19",
|
|
28
|
+
"@things-factory/biz-base": "^4.1.19",
|
|
29
|
+
"@things-factory/document-template-base": "^4.1.19",
|
|
30
|
+
"@things-factory/id-rule-base": "^4.1.19",
|
|
31
|
+
"@things-factory/integration-lmd": "^4.1.19",
|
|
32
|
+
"@things-factory/integration-marketplace": "^4.1.19",
|
|
33
|
+
"@things-factory/integration-sellercraft": "^4.1.19",
|
|
34
|
+
"@things-factory/integration-sftp": "^4.1.20",
|
|
35
|
+
"@things-factory/marketplace-base": "^4.1.19",
|
|
36
|
+
"@things-factory/notification": "^4.1.19",
|
|
37
|
+
"@things-factory/sales-base": "^4.1.20",
|
|
38
|
+
"@things-factory/setting-base": "^4.1.19",
|
|
39
|
+
"@things-factory/shell": "^4.1.19",
|
|
40
|
+
"@things-factory/transport-base": "^4.1.19",
|
|
41
|
+
"@things-factory/warehouse-base": "^4.1.19"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "7103fa1de9652c60e2e0c7dd3469c421bd2827ef"
|
|
44
44
|
}
|
|
@@ -42,13 +42,42 @@ export const confirmCancellationReleaseOrder = {
|
|
|
42
42
|
// 1a. separate into two groups, group 1: pending cancel, group 2: picked
|
|
43
43
|
let cancelOI: OrderInventory[] = targetOIs.filter(
|
|
44
44
|
(oi: OrderInventory) => oi.status === ORDER_INVENTORY_STATUS.PENDING_CANCEL
|
|
45
|
-
)
|
|
45
|
+
).reduce((acc, oi) => {
|
|
46
|
+
let existingRecordIdx = acc.findIndex(i => i.inventory.id == oi.inventory.id)
|
|
47
|
+
if (existingRecordIdx >= 0) {
|
|
48
|
+
acc[existingRecordIdx].releaseQty += oi.releaseQty
|
|
49
|
+
acc[existingRecordIdx].releaseUomValue += oi.releaseQty
|
|
50
|
+
} else {
|
|
51
|
+
acc.push(oi)
|
|
52
|
+
}
|
|
53
|
+
return acc
|
|
54
|
+
}, [])
|
|
55
|
+
|
|
46
56
|
let pickedOI: OrderInventory[] = targetOIs.filter(
|
|
47
57
|
(oi: OrderInventory) => oi.status === ORDER_INVENTORY_STATUS.PENDING_REVERSE
|
|
48
|
-
)
|
|
58
|
+
).reduce((acc, oi) => {
|
|
59
|
+
let existingRecordIdx = acc.findIndex(i => i.inventory.id == oi.inventory.id)
|
|
60
|
+
if (existingRecordIdx >= 0) {
|
|
61
|
+
acc[existingRecordIdx].releaseQty += oi.releaseQty
|
|
62
|
+
acc[existingRecordIdx].releaseUomValue += oi.releaseQty
|
|
63
|
+
} else {
|
|
64
|
+
acc.push(oi)
|
|
65
|
+
}
|
|
66
|
+
return acc
|
|
67
|
+
}, [])
|
|
68
|
+
|
|
49
69
|
let replacedOI: OrderInventory[] = targetOIs.filter(
|
|
50
70
|
(oi: OrderInventory) => oi.status === ORDER_INVENTORY_STATUS.REPLACED
|
|
51
|
-
)
|
|
71
|
+
).reduce((acc, oi) => {
|
|
72
|
+
let existingRecordIdx = acc.findIndex(i => i.inventory.id == oi.inventory.id)
|
|
73
|
+
if (existingRecordIdx >= 0) {
|
|
74
|
+
acc[existingRecordIdx].releaseQty += oi.releaseQty
|
|
75
|
+
acc[existingRecordIdx].releaseUomValue += oi.releaseQty
|
|
76
|
+
} else {
|
|
77
|
+
acc.push(oi)
|
|
78
|
+
}
|
|
79
|
+
return acc
|
|
80
|
+
}, [])
|
|
52
81
|
|
|
53
82
|
if (pickedOI && pickedOI?.length) {
|
|
54
83
|
await tx.getRepository(OrderInventory).save(
|
|
@@ -62,6 +91,7 @@ export const confirmCancellationReleaseOrder = {
|
|
|
62
91
|
cancelledTargetInventory.updater = user
|
|
63
92
|
|
|
64
93
|
if (inventory) {
|
|
94
|
+
inventory = await tx.getRepository(Inventory).findOne({ id: inventory.id })
|
|
65
95
|
inventory.qty += orderInventory.releaseQty
|
|
66
96
|
inventory.uomValue += orderInventory.releaseUomValue
|
|
67
97
|
inventory.status = INVENTORY_STATUS.STORED
|
|
@@ -100,6 +130,7 @@ export const confirmCancellationReleaseOrder = {
|
|
|
100
130
|
let inventory: Inventory = orderInventory.inventory
|
|
101
131
|
|
|
102
132
|
if (inventory) {
|
|
133
|
+
inventory = await tx.getRepository(Inventory).findOne({ id: inventory.id })
|
|
103
134
|
inventory.lockedQty -= orderInventory.releaseQty
|
|
104
135
|
inventory.lockedUomValue -= orderInventory.releaseUomValue
|
|
105
136
|
await tx.getRepository(Inventory).save(inventory)
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import {
|
|
5
|
+
ORDER_INVENTORY_STATUS,
|
|
6
|
+
ORDER_TYPES,
|
|
7
|
+
OrderInventory,
|
|
8
|
+
OrderInventoryPatch,
|
|
9
|
+
OrderNoGenerator,
|
|
10
|
+
ReleaseGood
|
|
11
|
+
} from '@things-factory/sales-base'
|
|
12
|
+
import { Setting } from '@things-factory/setting-base'
|
|
13
|
+
import { Domain } from '@things-factory/shell'
|
|
14
|
+
import { getInventoriesByStrategy, Inventory } from '@things-factory/warehouse-base'
|
|
15
|
+
|
|
16
|
+
import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
|
|
17
|
+
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
18
|
+
import { WorksheetNoGenerator } from '../../../utils'
|
|
19
|
+
|
|
20
|
+
export const generatePickingWorksheetDetailsResolver = {
|
|
21
|
+
async generatePickingWorksheetDetails(
|
|
22
|
+
_: any,
|
|
23
|
+
{ bizplaceId, selectedItems, pickingStrategy, worksheetNo, locationSortingRules },
|
|
24
|
+
context: any
|
|
25
|
+
): Promise<Boolean> {
|
|
26
|
+
const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
|
|
27
|
+
|
|
28
|
+
// 1. find related worksheet
|
|
29
|
+
const worksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
|
|
30
|
+
where: { name: worksheetNo, status: WORKSHEET_STATUS.DEACTIVATED, domain },
|
|
31
|
+
relations: ['releaseGood']
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
if (!worksheet) throw new Error('picking worksheet not found')
|
|
35
|
+
const worksheetId = worksheet.id
|
|
36
|
+
|
|
37
|
+
// 2. search for sorting rules
|
|
38
|
+
const inventoryAssignmentSetting: Setting = await tx.getRepository(Setting).findOne({
|
|
39
|
+
where: { domain, name: 'rule-for-inventory-assignment' }
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
if (!locationSortingRules && inventoryAssignmentSetting) {
|
|
43
|
+
locationSortingRules = []
|
|
44
|
+
let locationSetting = JSON.parse(inventoryAssignmentSetting.value)
|
|
45
|
+
for (const key in locationSetting) {
|
|
46
|
+
locationSortingRules.push({ name: key, desc: locationSetting[key] == 'ASC' ? false : true })
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
// 3. get all related inventories by strategy
|
|
52
|
+
let inventories: any[] = await getInventoriesByStrategy(
|
|
53
|
+
domain.id,
|
|
54
|
+
bizplaceId,
|
|
55
|
+
worksheetId,
|
|
56
|
+
selectedItems,
|
|
57
|
+
pickingStrategy,
|
|
58
|
+
locationSortingRules,
|
|
59
|
+
tx
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
// 4. get worksheet details
|
|
63
|
+
let worksheetDetails: WorksheetDetail[] = selectedItems.reduce(
|
|
64
|
+
(accWSD: WorksheetDetail[], oi: OrderInventoryPatch) => {
|
|
65
|
+
const relatedInventories = inventories.filter(
|
|
66
|
+
inv =>
|
|
67
|
+
inv.productId == oi.productId &&
|
|
68
|
+
inv.batchId == oi.batchId &&
|
|
69
|
+
inv.packingType == oi.packingType &&
|
|
70
|
+
inv.packingSize == oi.packingSize &&
|
|
71
|
+
inv.uom == oi.uom &&
|
|
72
|
+
inv.remainQty
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
if (
|
|
76
|
+
relatedInventories.length &&
|
|
77
|
+
oi.releaseQty <= inventories.reduce((totalQty: number, inv) => totalQty + inv.remainQty, 0)
|
|
78
|
+
) {
|
|
79
|
+
let composedWSD: WorksheetDetail[] = _composeWorksheetDetails(
|
|
80
|
+
domain,
|
|
81
|
+
user,
|
|
82
|
+
worksheet.releaseGood,
|
|
83
|
+
bizplaceId,
|
|
84
|
+
oi,
|
|
85
|
+
relatedInventories
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
accWSD.push(...composedWSD)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return accWSD
|
|
92
|
+
},
|
|
93
|
+
[]
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
let targetInventories: OrderInventory = worksheetDetails.map((wsd: WorksheetDetail) => wsd.targetInventory)
|
|
97
|
+
|
|
98
|
+
// 5. remove existing worksheet details and its target inventory if there's any
|
|
99
|
+
await _removeOldWorksheetDetails(targetInventories, worksheet.id, tx)
|
|
100
|
+
|
|
101
|
+
targetInventories = await tx.getRepository(OrderInventory).save(targetInventories)
|
|
102
|
+
|
|
103
|
+
let newWorksheetDetails: WorksheetDetail[] = []
|
|
104
|
+
|
|
105
|
+
for (let i = 0, l = targetInventories.length; i < l; i++) {
|
|
106
|
+
const targetInventory: OrderInventory = targetInventories[i]
|
|
107
|
+
|
|
108
|
+
// 6. update inventory lockedQty and lockedUomValue
|
|
109
|
+
await tx
|
|
110
|
+
.createQueryBuilder()
|
|
111
|
+
.update(Inventory)
|
|
112
|
+
.set({
|
|
113
|
+
lockedQty: () => `COALESCE("locked_qty", 0) + ${targetInventory.releaseQty}`,
|
|
114
|
+
lockedUomValue: () => `COALESCE("locked_uom_value", 0) + ${targetInventory.releaseUomValue}`,
|
|
115
|
+
updater: user
|
|
116
|
+
})
|
|
117
|
+
.where('id = :id', { id: targetInventory.inventory.id })
|
|
118
|
+
.execute()
|
|
119
|
+
|
|
120
|
+
// 7. collect new worksheet details records
|
|
121
|
+
const worksheetDetail: WorksheetDetail = Object.assign(new WorksheetDetail(), {
|
|
122
|
+
domain,
|
|
123
|
+
bizplace: { id: bizplaceId },
|
|
124
|
+
worksheet,
|
|
125
|
+
name: WorksheetNoGenerator.pickingDetail(),
|
|
126
|
+
seq: 0,
|
|
127
|
+
targetInventory,
|
|
128
|
+
type: WORKSHEET_TYPE.PICKING,
|
|
129
|
+
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
130
|
+
creator: user,
|
|
131
|
+
updater: user
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
newWorksheetDetails.push(worksheetDetail)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// 8. save worksheet details
|
|
138
|
+
await tx.getRepository(WorksheetDetail).save(newWorksheetDetails)
|
|
139
|
+
|
|
140
|
+
return true
|
|
141
|
+
} catch (error) {
|
|
142
|
+
throw error
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function _composeWorksheetDetails(
|
|
148
|
+
domain: Domain,
|
|
149
|
+
user: User,
|
|
150
|
+
releaseGood: ReleaseGood,
|
|
151
|
+
bizplaceId: string,
|
|
152
|
+
record: OrderInventoryPatch,
|
|
153
|
+
inventories: Inventory[]
|
|
154
|
+
): WorksheetDetail[] {
|
|
155
|
+
let leftReleaseQty: number = record.releaseQty
|
|
156
|
+
let leftReleaseUomValue: number = record.releaseUomValue
|
|
157
|
+
let compReleaseQty: number = 0
|
|
158
|
+
let compReleaseUomValue: number = 0
|
|
159
|
+
|
|
160
|
+
let worksheetDetails: Partial<WorksheetDetail[]> = []
|
|
161
|
+
let idx = 0
|
|
162
|
+
|
|
163
|
+
while (compReleaseQty < record.releaseQty) {
|
|
164
|
+
const inv = inventories[idx]
|
|
165
|
+
let releaseQty: number = 0
|
|
166
|
+
let releaseUomValue: number = 0
|
|
167
|
+
|
|
168
|
+
if (inv.remainQty > leftReleaseQty) {
|
|
169
|
+
compReleaseQty += leftReleaseQty
|
|
170
|
+
compReleaseUomValue += leftReleaseUomValue
|
|
171
|
+
releaseQty = leftReleaseQty
|
|
172
|
+
releaseUomValue = leftReleaseUomValue
|
|
173
|
+
} else {
|
|
174
|
+
compReleaseQty += inv.remainQty
|
|
175
|
+
compReleaseUomValue += inv.remainUomValue
|
|
176
|
+
leftReleaseQty -= inv.remainQty
|
|
177
|
+
leftReleaseUomValue -= inv.remainUomValue
|
|
178
|
+
releaseQty = inv.remainQty
|
|
179
|
+
releaseUomValue = inv.remainUomValue
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
let worksheetDetail: WorksheetDetail = Object.assign(new WorksheetDetail(), {
|
|
183
|
+
targetInventory: {
|
|
184
|
+
domain,
|
|
185
|
+
bizplace: { id: bizplaceId },
|
|
186
|
+
name: OrderNoGenerator.orderInventory(),
|
|
187
|
+
releaseGood,
|
|
188
|
+
inventory: { id: inv.id },
|
|
189
|
+
product: { id: inv.productId },
|
|
190
|
+
batchId: inv.batchId,
|
|
191
|
+
batchIdRef: inv.batchIdRef,
|
|
192
|
+
packingType: inv.packingType,
|
|
193
|
+
packingSize: inv.packingSize,
|
|
194
|
+
releaseQty,
|
|
195
|
+
releaseUomValue,
|
|
196
|
+
creator: user,
|
|
197
|
+
updater: user,
|
|
198
|
+
status: ORDER_INVENTORY_STATUS.READY_TO_PICK,
|
|
199
|
+
type: ORDER_TYPES.RELEASE_OF_GOODS.value
|
|
200
|
+
}
|
|
201
|
+
})
|
|
202
|
+
|
|
203
|
+
worksheetDetails.push(worksheetDetail)
|
|
204
|
+
|
|
205
|
+
idx++
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return worksheetDetails
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
async function _removeOldWorksheetDetails(targetInventories: OrderInventory[], worksheetId: string, tx: EntityManager) {
|
|
212
|
+
let orderProductJson = JSON.stringify(
|
|
213
|
+
targetInventories.map((target: OrderInventory) => {
|
|
214
|
+
return {
|
|
215
|
+
product_id: target.product.id,
|
|
216
|
+
batch_id: target.batchId,
|
|
217
|
+
packing_type: target.packingType,
|
|
218
|
+
packing_size: target.packingSize
|
|
219
|
+
}
|
|
220
|
+
})
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
// get worksheetDetail IDs and their targetInventory IDs
|
|
224
|
+
let existingOIandWSD: WorksheetDetail[] = await tx.query(
|
|
225
|
+
`
|
|
226
|
+
SELECT wsd.id AS "worksheetDetailId", oi.id AS "orderInventoryId"
|
|
227
|
+
FROM order_inventories oi
|
|
228
|
+
INNER JOIN JSON_POPULATE_RECORDSET(NULL::order_products, $1) js ON oi.batch_id = js.batch_id
|
|
229
|
+
AND oi.product_id = js.product_id
|
|
230
|
+
AND oi.packing_type = js.packing_type
|
|
231
|
+
AND oi.packing_size = js.packing_size
|
|
232
|
+
LEFT JOIN worksheet_details wsd ON oi.id = wsd.target_inventory_id
|
|
233
|
+
WHERE oi.release_good_id = $2
|
|
234
|
+
`,
|
|
235
|
+
[orderProductJson, worksheetId]
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
// if found the records then delete, so that we can create new records
|
|
239
|
+
if (existingOIandWSD.length) {
|
|
240
|
+
await tx.getRepository(WorksheetDetail).delete(existingOIandWSD.map((wsd: any) => wsd.worksheetDetailId))
|
|
241
|
+
await tx.getRepository(OrderInventory).delete(existingOIandWSD.map((wsd: any) => wsd.orderInventoryId))
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { checkProgressingPalletResolver } from './check-progressing-pallet'
|
|
1
2
|
import { createWorksheetDetail } from './create-worksheet-detail'
|
|
2
3
|
import { deleteWorksheetDetail } from './delete-worksheet-detail'
|
|
3
|
-
import { generateReleaseGoodWorksheetDetailsResolver } from './generate-release-good-worksheet-details'
|
|
4
4
|
import { generateBatchPickingWorksheetDetailsResolver } from './generate-batch-picking-worksheet-details'
|
|
5
5
|
import { generateBatchPickingWorksheetDetailsByBulkResolver } from './generate-batch-picking-worksheet-details-by-bulk'
|
|
6
|
-
import { checkProgressingPalletResolver } from './check-progressing-pallet'
|
|
7
|
-
import { generatePalletIdResolver } from './generate-pallet-id'
|
|
8
6
|
import { generateCartonIdResolver } from './generate-carton-id'
|
|
7
|
+
import { generatePalletIdResolver } from './generate-pallet-id'
|
|
8
|
+
import { generatePickingWorksheetDetailsResolver } from './generate-picking-worksheet-details'
|
|
9
|
+
import { generateReleaseGoodWorksheetDetailsResolver } from './generate-release-good-worksheet-details'
|
|
9
10
|
import { updateWorksheetDetail } from './update-worksheet-detail'
|
|
10
11
|
import { worksheetDetailResolver } from './worksheet-detail'
|
|
11
12
|
import { worksheetDetailsResolver } from './worksheet-details'
|
|
@@ -26,5 +27,6 @@ export const Mutation = {
|
|
|
26
27
|
...deleteWorksheetDetail,
|
|
27
28
|
...generateBatchPickingWorksheetDetailsResolver,
|
|
28
29
|
...generateBatchPickingWorksheetDetailsByBulkResolver,
|
|
30
|
+
...generatePickingWorksheetDetailsResolver,
|
|
29
31
|
...generateReleaseGoodWorksheetDetailsResolver
|
|
30
32
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { InventoryDetail } from './inventory-detail'
|
|
1
2
|
import { NewWorksheetDetail } from './new-worksheet-detail'
|
|
3
|
+
import { PalletInfo } from './pallet-info'
|
|
2
4
|
import { WorksheetDetail } from './worksheet-detail'
|
|
3
5
|
import { WorksheetDetailList } from './worksheet-detail-list'
|
|
4
6
|
import { WorksheetDetailPatch } from './worksheet-detail-patch'
|
|
5
|
-
import { PalletInfo } from './pallet-info'
|
|
6
|
-
import { InventoryDetail } from './inventory-detail'
|
|
7
7
|
|
|
8
8
|
export const Mutation = /* GraphQL */ `
|
|
9
9
|
createWorksheetDetail (
|
|
@@ -44,6 +44,14 @@ export const Mutation = /* GraphQL */ `
|
|
|
44
44
|
pickingStrategy: String!
|
|
45
45
|
): Boolean @transaction
|
|
46
46
|
|
|
47
|
+
generatePickingWorksheetDetails(
|
|
48
|
+
bizplaceId: String!
|
|
49
|
+
selectedItems: [OrderInventoryPatch]!
|
|
50
|
+
pickingStrategy: String!
|
|
51
|
+
worksheetNo: String!
|
|
52
|
+
locationSortingRules: [Sorting]
|
|
53
|
+
): Boolean @transaction
|
|
54
|
+
|
|
47
55
|
`
|
|
48
56
|
|
|
49
57
|
export const Query = /* GraphQL */ `
|
|
@@ -22,8 +22,8 @@ export async function generateInventoryHistory(
|
|
|
22
22
|
inventory: Inventory,
|
|
23
23
|
refOrder: any,
|
|
24
24
|
transactionType: string,
|
|
25
|
-
qty: number,
|
|
26
|
-
uomValue: number,
|
|
25
|
+
qty: number = 0,
|
|
26
|
+
uomValue: number = 0,
|
|
27
27
|
user: User,
|
|
28
28
|
trxMgr?: EntityManager,
|
|
29
29
|
targetInventory: Inventory = {}
|
|
@@ -82,12 +82,6 @@ export async function generateInventoryHistory(
|
|
|
82
82
|
qty -= prevTotalQty
|
|
83
83
|
uomValue -= prevTotalUomValue
|
|
84
84
|
}
|
|
85
|
-
} else if (transactionType == 'UNDO_UNLOADING' || transactionType == 'RETURN') {
|
|
86
|
-
qty = qty
|
|
87
|
-
uomValue = uomValue
|
|
88
|
-
} else {
|
|
89
|
-
qty = 0
|
|
90
|
-
uomValue = 0
|
|
91
85
|
}
|
|
92
86
|
|
|
93
87
|
let inventoryHistory: InventoryHistory = new InventoryHistory()
|
|
@@ -128,7 +122,7 @@ export async function generateInventoryHistory(
|
|
|
128
122
|
|
|
129
123
|
if (inventory.lastSeq !== seq) {
|
|
130
124
|
await invRepo.save({
|
|
131
|
-
|
|
125
|
+
id: inventory.id,
|
|
132
126
|
lastSeq: inventoryHistory.seq,
|
|
133
127
|
updater: user
|
|
134
128
|
})
|