@things-factory/operato-hub 4.3.785 → 4.3.786
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/routers/api/restful-apis/v1/warehouse/get-return-order-details.js +25 -7
- package/dist-server/routers/api/restful-apis/v1/warehouse/get-return-order-details.js.map +1 -1
- package/package.json +2 -2
- package/server/routers/api/restful-apis/v1/warehouse/get-return-order-details.ts +28 -7
|
@@ -31,7 +31,6 @@ api_1.restfulApiRouter.get('/v1/warehouse/get-return-order-details', middlewares
|
|
|
31
31
|
'orderInventories.releaseGood',
|
|
32
32
|
'orderInventories.product',
|
|
33
33
|
'orderInventories.productDetail',
|
|
34
|
-
'orderInventories.deliveryOrder',
|
|
35
34
|
'orderInventories.inventory',
|
|
36
35
|
'orderInventories.inventory.location',
|
|
37
36
|
'orderInventories.inventory.location.warehouse',
|
|
@@ -43,11 +42,32 @@ api_1.restfulApiRouter.get('/v1/warehouse/get-return-order-details', middlewares
|
|
|
43
42
|
if (!returnOrder) {
|
|
44
43
|
throw new error_util_1.ApiError('E04', 'return order');
|
|
45
44
|
}
|
|
45
|
+
// Lookup delivery orders from the release good's order inventories.
|
|
46
|
+
// NOTE: inventoryId is used as the lookup key, but it's not strictly unique — during loading,
|
|
47
|
+
// the same inventory can be split across multiple DOs (e.g., qty 6 split into DO-001:3 + DO-002:3).
|
|
48
|
+
// In that case, the last DO in the result set wins. This is acceptable for now since the UI also
|
|
49
|
+
// collapses split OIs into a single row per inventory. To fix properly, store delivery_order_id
|
|
50
|
+
// on the return order's OrderInventory during creation.
|
|
51
|
+
const returnOrderInvs = (returnOrder.orderInventories || []).filter(oi => oi.type === sales_base_1.ORDER_INVENTORY_TYPE.RETURN_ORDER);
|
|
52
|
+
const releaseGoodIds = [...new Set(returnOrderInvs.map(oi => { var _a; return (_a = oi.releaseGood) === null || _a === void 0 ? void 0 : _a.id; }).filter(Boolean))];
|
|
53
|
+
let doLookup = new Map();
|
|
54
|
+
if (releaseGoodIds.length > 0) {
|
|
55
|
+
const rgOrderInvs = await (0, typeorm_1.getRepository)(sales_base_1.OrderInventory)
|
|
56
|
+
.createQueryBuilder('oi')
|
|
57
|
+
.innerJoinAndSelect('oi.deliveryOrder', 'do')
|
|
58
|
+
.where('oi.release_good_id IN (:...releaseGoodIds)', { releaseGoodIds })
|
|
59
|
+
.andWhere('oi.delivery_order_id IS NOT NULL')
|
|
60
|
+
.andWhere(`oi.type = '${sales_base_1.ORDER_INVENTORY_TYPE.RELEASE_OF_GOODS}'`)
|
|
61
|
+
.getMany();
|
|
62
|
+
for (const rgOi of rgOrderInvs) {
|
|
63
|
+
doLookup.set(rgOi.inventoryId, { id: rgOi.deliveryOrder.id, name: rgOi.deliveryOrder.name });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
46
66
|
// Flatten inventoryInfos for frontend
|
|
47
67
|
const itemInfos = (returnOrder.orderInventories || [])
|
|
48
|
-
.filter(orderInv => orderInv.type ===
|
|
68
|
+
.filter(orderInv => orderInv.type === sales_base_1.ORDER_INVENTORY_TYPE.RETURN_ORDER)
|
|
49
69
|
.map(orderInv => {
|
|
50
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
70
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
51
71
|
return {
|
|
52
72
|
batchId: orderInv.batchId,
|
|
53
73
|
refItemId: orderInv.refItemId,
|
|
@@ -75,9 +95,7 @@ api_1.restfulApiRouter.get('/v1/warehouse/get-return-order-details', middlewares
|
|
|
75
95
|
refNo2: orderInv.releaseGood.refNo2,
|
|
76
96
|
refNo3: orderInv.releaseGood.refNo3
|
|
77
97
|
},
|
|
78
|
-
deliveryOrder: orderInv.
|
|
79
|
-
? { id: orderInv.deliveryOrder.id, name: orderInv.deliveryOrder.name }
|
|
80
|
-
: null,
|
|
98
|
+
deliveryOrder: (((_h = orderInv.inventory) === null || _h === void 0 ? void 0 : _h.id) && doLookup.get(orderInv.inventory.id)) || null,
|
|
81
99
|
returnQty: orderInv.returnQty,
|
|
82
100
|
remark: orderInv.remark,
|
|
83
101
|
status: orderInv.status
|
|
@@ -85,7 +103,7 @@ api_1.restfulApiRouter.get('/v1/warehouse/get-return-order-details', middlewares
|
|
|
85
103
|
});
|
|
86
104
|
// Putaway inventories (type !== RETURN_ORDER, created during putaway process)
|
|
87
105
|
const putawayInventories = (returnOrder.orderInventories || [])
|
|
88
|
-
.filter(orderInv => orderInv.type !==
|
|
106
|
+
.filter(orderInv => orderInv.type !== sales_base_1.ORDER_INVENTORY_TYPE.RETURN_ORDER)
|
|
89
107
|
.map(orderInv => {
|
|
90
108
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
91
109
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-return-order-details.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-return-order-details.ts"],"names":[],"mappings":";;AACA,qCAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"get-return-order-details.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-return-order-details.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/operato-hub",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.786",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -123,5 +123,5 @@
|
|
|
123
123
|
"resolutions": {
|
|
124
124
|
"core-js": "^3.16.0"
|
|
125
125
|
},
|
|
126
|
-
"gitHead": "
|
|
126
|
+
"gitHead": "b4c66bd17a3409215565261bff6ca9a6651a435d"
|
|
127
127
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _ from 'lodash'
|
|
2
2
|
import { getRepository } from 'typeorm'
|
|
3
|
-
import { ReturnOrder } from '@things-factory/sales-base'
|
|
3
|
+
import { ReturnOrder, OrderInventory, ORDER_INVENTORY_TYPE } from '@things-factory/sales-base'
|
|
4
4
|
|
|
5
5
|
import { restfulApiRouter as router } from '@things-factory/api'
|
|
6
6
|
import { businessMiddleware, loggingMiddleware, validationMiddleware } from '../middlewares'
|
|
@@ -40,7 +40,6 @@ router.get(
|
|
|
40
40
|
'orderInventories.releaseGood',
|
|
41
41
|
'orderInventories.product',
|
|
42
42
|
'orderInventories.productDetail',
|
|
43
|
-
'orderInventories.deliveryOrder',
|
|
44
43
|
'orderInventories.inventory',
|
|
45
44
|
'orderInventories.inventory.location',
|
|
46
45
|
'orderInventories.inventory.location.warehouse',
|
|
@@ -52,9 +51,33 @@ router.get(
|
|
|
52
51
|
if (!returnOrder) {
|
|
53
52
|
throw new ApiError('E04', 'return order')
|
|
54
53
|
}
|
|
54
|
+
// Lookup delivery orders from the release good's order inventories.
|
|
55
|
+
// NOTE: inventoryId is used as the lookup key, but it's not strictly unique — during loading,
|
|
56
|
+
// the same inventory can be split across multiple DOs (e.g., qty 6 split into DO-001:3 + DO-002:3).
|
|
57
|
+
// In that case, the last DO in the result set wins. This is acceptable for now since the UI also
|
|
58
|
+
// collapses split OIs into a single row per inventory. To fix properly, store delivery_order_id
|
|
59
|
+
// on the return order's OrderInventory during creation.
|
|
60
|
+
const returnOrderInvs = (returnOrder.orderInventories || []).filter(oi => oi.type === ORDER_INVENTORY_TYPE.RETURN_ORDER)
|
|
61
|
+
const releaseGoodIds = [...new Set(returnOrderInvs.map(oi => oi.releaseGood?.id).filter(Boolean))]
|
|
62
|
+
|
|
63
|
+
let doLookup: Map<string, { id: string; name: string }> = new Map()
|
|
64
|
+
if (releaseGoodIds.length > 0) {
|
|
65
|
+
const rgOrderInvs = await getRepository(OrderInventory)
|
|
66
|
+
.createQueryBuilder('oi')
|
|
67
|
+
.innerJoinAndSelect('oi.deliveryOrder', 'do')
|
|
68
|
+
.where('oi.release_good_id IN (:...releaseGoodIds)', { releaseGoodIds })
|
|
69
|
+
.andWhere('oi.delivery_order_id IS NOT NULL')
|
|
70
|
+
.andWhere(`oi.type = '${ORDER_INVENTORY_TYPE.RELEASE_OF_GOODS}'`)
|
|
71
|
+
.getMany()
|
|
72
|
+
|
|
73
|
+
for (const rgOi of rgOrderInvs as any[]) {
|
|
74
|
+
doLookup.set(rgOi.inventoryId, { id: rgOi.deliveryOrder.id, name: rgOi.deliveryOrder.name })
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
55
78
|
// Flatten inventoryInfos for frontend
|
|
56
79
|
const itemInfos = (returnOrder.orderInventories || [])
|
|
57
|
-
.filter(orderInv => orderInv.type ===
|
|
80
|
+
.filter(orderInv => orderInv.type === ORDER_INVENTORY_TYPE.RETURN_ORDER)
|
|
58
81
|
.map(orderInv => {
|
|
59
82
|
return {
|
|
60
83
|
batchId: orderInv.batchId,
|
|
@@ -83,9 +106,7 @@ router.get(
|
|
|
83
106
|
refNo2: orderInv.releaseGood.refNo2,
|
|
84
107
|
refNo3: orderInv.releaseGood.refNo3
|
|
85
108
|
},
|
|
86
|
-
deliveryOrder: orderInv.
|
|
87
|
-
? { id: orderInv.deliveryOrder.id, name: orderInv.deliveryOrder.name }
|
|
88
|
-
: null,
|
|
109
|
+
deliveryOrder: (orderInv.inventory?.id && doLookup.get(orderInv.inventory.id)) || null,
|
|
89
110
|
returnQty: orderInv.returnQty,
|
|
90
111
|
remark: orderInv.remark,
|
|
91
112
|
status: orderInv.status
|
|
@@ -94,7 +115,7 @@ router.get(
|
|
|
94
115
|
|
|
95
116
|
// Putaway inventories (type !== RETURN_ORDER, created during putaway process)
|
|
96
117
|
const putawayInventories = (returnOrder.orderInventories || [])
|
|
97
|
-
.filter(orderInv => orderInv.type !==
|
|
118
|
+
.filter(orderInv => orderInv.type !== ORDER_INVENTORY_TYPE.RETURN_ORDER)
|
|
98
119
|
.map(orderInv => {
|
|
99
120
|
return {
|
|
100
121
|
batchId: orderInv.batchId,
|