@things-factory/operato-wms 4.3.752 → 4.3.755
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/client/pages/inbound/unload-product.js +30 -33
- package/client/pages/outbound/loading-product.js +2 -3
- package/client/pages/outbound/loading-v2/loading-execution-base.js +568 -56
- package/client/pages/outbound/loading-v2/loading-execution.js +258 -8
- package/client/pages/outbound/loading-v2/loading.js +82 -12
- package/client/pages/outbound/picking-product.js +11 -6
- package/client/pages/outbound/picking-v2/picking-execution-base.js +8 -8
- package/client/pages/outbound/picking-v2/picking-execution.js +75 -0
- package/client/pages/outbound/route-label-history-dialog.js +253 -0
- package/client/pages/outbound/route-label-popup.js +637 -131
- package/client/pages/outbound/show-ro-list-popup.js +8 -4
- package/client/pages/outbound/single-outbound-worksheet.js +55 -6
- package/client/pages/outbound/sorting-product.js +71 -25
- package/client/pages/outbound/zone-worksheet.js +62 -3
- package/dist-server/entities/index.js +9 -0
- package/dist-server/entities/index.js.map +1 -0
- package/dist-server/entities/route-label-sequence-counter.js +75 -0
- package/dist-server/entities/route-label-sequence-counter.js.map +1 -0
- package/dist-server/entities/route-label-sequence-log.js +74 -0
- package/dist-server/entities/route-label-sequence-log.js.map +1 -0
- package/dist-server/graphql/resolvers/index.js +3 -0
- package/dist-server/graphql/resolvers/index.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/complete-load.js +40 -3
- package/dist-server/graphql/resolvers/outbound/complete-load.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js +50 -11
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js +90 -48
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js +15 -7
- package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/sort-item.js +95 -16
- package/dist-server/graphql/resolvers/outbound/sort-item.js.map +1 -1
- package/dist-server/graphql/resolvers/route-label/index.js +7 -0
- package/dist-server/graphql/resolvers/route-label/index.js.map +1 -0
- package/dist-server/graphql/resolvers/route-label/route-label.js +220 -0
- package/dist-server/graphql/resolvers/route-label/route-label.js.map +1 -0
- package/dist-server/graphql/resolvers/zone-worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js +123 -27
- package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/zone-worksheet/zone-worksheet.js.map +1 -1
- package/dist-server/graphql/types/index.js +4 -0
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/outbound/index.js +7 -1
- package/dist-server/graphql/types/outbound/index.js.map +1 -1
- package/dist-server/graphql/types/route-label/index.js +14 -0
- package/dist-server/graphql/types/route-label/index.js.map +1 -0
- package/dist-server/graphql/types/route-label/route-label-sequence.js +53 -0
- package/dist-server/graphql/types/route-label/route-label-sequence.js.map +1 -0
- package/dist-server/index.js +5 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/validators/setting-validators.js +519 -0
- package/dist-server/validators/setting-validators.js.map +1 -0
- package/helps/operato-wms/outbound/picking-product.en.md +156 -158
- package/package.json +50 -50
- package/server/entities/index.ts +6 -0
- package/server/entities/route-label-sequence-counter.ts +56 -0
- package/server/entities/route-label-sequence-log.ts +47 -0
- package/server/graphql/resolvers/index.ts +3 -0
- package/server/graphql/resolvers/outbound/complete-load.ts +42 -1
- package/server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts +56 -13
- package/server/graphql/resolvers/outbound/find-loadable-release-good.ts +120 -57
- package/server/graphql/resolvers/outbound/loading-worksheet-v2.ts +9 -2
- package/server/graphql/resolvers/outbound/sort-item.ts +125 -21
- package/server/graphql/resolvers/route-label/index.ts +16 -0
- package/server/graphql/resolvers/route-label/route-label.ts +264 -0
- package/server/graphql/resolvers/zone-worksheet/index.ts +2 -2
- package/server/graphql/resolvers/zone-worksheet/zone-picking.ts +156 -39
- package/server/graphql/resolvers/zone-worksheet/zone-worksheet.ts +1 -2
- package/server/graphql/types/index.ts +4 -0
- package/server/graphql/types/outbound/index.ts +7 -1
- package/server/graphql/types/route-label/index.ts +18 -0
- package/server/graphql/types/route-label/route-label-sequence.ts +50 -0
- package/server/index.ts +7 -1
- package/server/validators/setting-validators.ts +668 -0
- package/translations/en.json +280 -252
- package/translations/ko.json +29 -1
- package/translations/ms.json +28 -0
- package/translations/zh.json +28 -0
|
@@ -9,6 +9,10 @@ const integration_lmd_1 = require("@things-factory/integration-lmd");
|
|
|
9
9
|
const integration_powrup_1 = require("@things-factory/integration-powrup");
|
|
10
10
|
const setting_base_1 = require("@things-factory/setting-base");
|
|
11
11
|
const integration_base_1 = require("@things-factory/integration-base");
|
|
12
|
+
function parseNonNegativeInt(value) {
|
|
13
|
+
const n = parseInt(value !== null && value !== void 0 ? value : '0', 10);
|
|
14
|
+
return Number.isFinite(n) ? Math.max(0, n) : 0;
|
|
15
|
+
}
|
|
12
16
|
exports.completeLoad = {
|
|
13
17
|
async completeLoad(_, { orderId, worksheetId }, context) {
|
|
14
18
|
const { domain, tx, user } = context.state;
|
|
@@ -20,7 +24,7 @@ exports.completeLoad = {
|
|
|
20
24
|
}
|
|
21
25
|
};
|
|
22
26
|
async function completeLoading(domain, tx, user, partial, orderId, worksheetId) {
|
|
23
|
-
var _a, _b;
|
|
27
|
+
var _a, _b, _c;
|
|
24
28
|
// Fetch release order
|
|
25
29
|
const releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
|
|
26
30
|
where: {
|
|
@@ -87,13 +91,46 @@ async function completeLoading(domain, tx, user, partial, orderId, worksheetId)
|
|
|
87
91
|
ownTransportFlag = ownTransport > warehouseTransport;
|
|
88
92
|
releaseGood.ownTransport = ownTransportFlag;
|
|
89
93
|
}
|
|
94
|
+
// If minimum seal is 0 (or invalid/negative), auto-close any open totes for this order.
|
|
95
|
+
// This supports the "0 seal required" scenario without blocking tote usage during QC/loading.
|
|
96
|
+
try {
|
|
97
|
+
let sealNoSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
98
|
+
where: {
|
|
99
|
+
domain: (_a = releaseGood.bizplace) === null || _a === void 0 ? void 0 : _a.domain,
|
|
100
|
+
name: 'minimum-seal-number'
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
if (!sealNoSetting) {
|
|
104
|
+
sealNoSetting = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
105
|
+
where: {
|
|
106
|
+
domain,
|
|
107
|
+
name: 'minimum-seal-number'
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const minimumSealRequired = parseNonNegativeInt(sealNoSetting === null || sealNoSetting === void 0 ? void 0 : sealNoSetting.value);
|
|
112
|
+
if (minimumSealRequired <= 0) {
|
|
113
|
+
await tx
|
|
114
|
+
.getRepository(sales_base_1.OrderTote)
|
|
115
|
+
.createQueryBuilder()
|
|
116
|
+
.update(sales_base_1.OrderTote)
|
|
117
|
+
.set({ closedDate: currentTime, updater: user })
|
|
118
|
+
.where('release_good_id = :releaseGoodId', { releaseGoodId: releaseGood.id })
|
|
119
|
+
.andWhere('closed_date IS NULL')
|
|
120
|
+
.execute();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
// do not fail completion if tote auto-close fails
|
|
125
|
+
console.error('Failed to auto-close order totes:', e);
|
|
126
|
+
}
|
|
90
127
|
await updateOrderInventories(tx, orderInventories, sales_base_1.ORDER_INVENTORY_STATUS.TERMINATED, user, currentTime);
|
|
91
128
|
await updateWorksheet(tx, worksheet, worksheet_base_1.WORKSHEET_STATUS.DONE, user, currentTime);
|
|
92
129
|
(0, integration_base_1.webhookHandler)(releaseGood, releaseGood.bizplace, integration_base_1.WebhookEventsEnum.LoadingCompleted);
|
|
93
130
|
await updateReleaseGood(tx, releaseGood, sales_base_1.ORDER_STATUS.DONE, user, currentTime);
|
|
94
|
-
if (((
|
|
131
|
+
if (((_b = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _b === void 0 ? void 0 : _b.isTms) &&
|
|
95
132
|
deliveryOrders.length > 1 &&
|
|
96
|
-
((
|
|
133
|
+
((_c = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _c === void 0 ? void 0 : _c.status) === 'active') {
|
|
97
134
|
const tmsService = (0, integration_lmd_1.getTmsService)(releaseGood.lastMileDelivery.platform);
|
|
98
135
|
tmsService.createAndUpdateShipment(releaseGood, deliveryOrders);
|
|
99
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete-load.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/complete-load.ts"],"names":[],"mappings":";;;AAAA,qCAAuD;AAEvD,yDAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"complete-load.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/complete-load.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,10 +29,13 @@ const buildfindReleaseGoodByNameQuery = (tx, domainId, orderNo) => {
|
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
|
-
* Builds a query to find order inventories
|
|
32
|
+
* Builds a query to find order inventories
|
|
33
|
+
* @param tx - Entity manager
|
|
34
|
+
* @param domainId - Domain ID
|
|
35
|
+
* @param options - Optional filters: locationId for bin location, releaseGoodId for release good
|
|
33
36
|
*/
|
|
34
|
-
const buildOrderInventoryQuery = (tx, domainId,
|
|
35
|
-
|
|
37
|
+
const buildOrderInventoryQuery = (tx, domainId, options) => {
|
|
38
|
+
const queryBuilder = tx
|
|
36
39
|
.getRepository(sales_base_1.OrderInventory)
|
|
37
40
|
.createQueryBuilder('orderInventory')
|
|
38
41
|
.leftJoinAndSelect('orderInventory.inventory', 'inventory')
|
|
@@ -47,18 +50,28 @@ const buildOrderInventoryQuery = (tx, domainId, locationId) => {
|
|
|
47
50
|
sales_base_1.ORDER_INVENTORY_STATUS.LOADING,
|
|
48
51
|
sales_base_1.ORDER_INVENTORY_STATUS.LOADED
|
|
49
52
|
]
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
.
|
|
53
|
+
});
|
|
54
|
+
if (options === null || options === void 0 ? void 0 : options.locationId) {
|
|
55
|
+
queryBuilder.andWhere('orderInventory.bin_location_id = :locationId', { locationId: options.locationId });
|
|
56
|
+
}
|
|
57
|
+
if (options === null || options === void 0 ? void 0 : options.releaseGoodId) {
|
|
58
|
+
queryBuilder.andWhere('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId: options.releaseGoodId });
|
|
59
|
+
}
|
|
60
|
+
return queryBuilder.orderBy('orderInventory.createdAt', 'ASC');
|
|
53
61
|
};
|
|
54
62
|
/**
|
|
55
63
|
* Transforms order inventory data into the required worksheet format
|
|
64
|
+
* @param orderInventories - Array of order inventories
|
|
65
|
+
* @param releaseGood - Optional release good (when scanning by order number)
|
|
56
66
|
*/
|
|
57
|
-
const transformToWorksheetFormat = (orderInventories) => {
|
|
67
|
+
const transformToWorksheetFormat = (orderInventories, releaseGood) => {
|
|
68
|
+
var _a;
|
|
58
69
|
if (!orderInventories.length)
|
|
59
70
|
return null;
|
|
60
71
|
// Extract unique bin location names
|
|
61
72
|
const uniqueBinLocations = [...new Set(orderInventories.map(oi => { var _a; return (_a = oi.binLocation) === null || _a === void 0 ? void 0 : _a.name; }).filter(Boolean))];
|
|
73
|
+
// Get release good from first order inventory if not provided
|
|
74
|
+
const firstReleaseGood = releaseGood || ((_a = orderInventories[0]) === null || _a === void 0 ? void 0 : _a.releaseGood);
|
|
62
75
|
return {
|
|
63
76
|
worksheetInfo: {
|
|
64
77
|
worksheet: {
|
|
@@ -69,8 +82,22 @@ const transformToWorksheetFormat = (orderInventories) => {
|
|
|
69
82
|
},
|
|
70
83
|
bizplaceName: null,
|
|
71
84
|
startedAt: null,
|
|
72
|
-
releaseGood:
|
|
73
|
-
|
|
85
|
+
releaseGood: firstReleaseGood
|
|
86
|
+
? {
|
|
87
|
+
id: firstReleaseGood.id,
|
|
88
|
+
name: firstReleaseGood.name,
|
|
89
|
+
attentionCompany: firstReleaseGood.attentionCompany,
|
|
90
|
+
attentionTo: firstReleaseGood.attentionTo,
|
|
91
|
+
deliveryAddress1: firstReleaseGood.deliveryAddress1,
|
|
92
|
+
deliveryAddress2: firstReleaseGood.deliveryAddress2,
|
|
93
|
+
status: firstReleaseGood.status,
|
|
94
|
+
refNo: firstReleaseGood.refNo,
|
|
95
|
+
refNo2: firstReleaseGood.refNo2,
|
|
96
|
+
refNo3: firstReleaseGood.refNo3
|
|
97
|
+
}
|
|
98
|
+
: null,
|
|
99
|
+
binLocationName: uniqueBinLocations.join(', '),
|
|
100
|
+
isReleaseGoodScan: !!releaseGood // Flag to indicate if this result came from scanning by release good
|
|
74
101
|
},
|
|
75
102
|
worksheetDetailInfos: orderInventories.map(oi => {
|
|
76
103
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
@@ -94,6 +121,7 @@ const transformToWorksheetFormat = (orderInventories) => {
|
|
|
94
121
|
id: oi.id,
|
|
95
122
|
batchId: oi.batchId,
|
|
96
123
|
packingType: oi.packingType,
|
|
124
|
+
refWorksheetId: oi.refWorksheetId,
|
|
97
125
|
product: ((_g = oi.inventory) === null || _g === void 0 ? void 0 : _g.product)
|
|
98
126
|
? {
|
|
99
127
|
id: oi.inventory.product.id,
|
|
@@ -128,14 +156,25 @@ exports.findLoadableReleaseGoodByBin = {
|
|
|
128
156
|
throw new OutboundOrderError('This order is DONE', 'ORDER_DONE');
|
|
129
157
|
}
|
|
130
158
|
else if (foundReleaseGood) {
|
|
131
|
-
|
|
159
|
+
// Found release good by order number - query its order inventories and return worksheet format
|
|
160
|
+
orderInventoryByBin = await buildOrderInventoryQuery(tx, domain.id, {
|
|
161
|
+
releaseGoodId: foundReleaseGood.id
|
|
162
|
+
}).getMany();
|
|
163
|
+
if (orderInventoryByBin.length > 0) {
|
|
164
|
+
// Pass the release good to indicate this is a release good scan
|
|
165
|
+
return transformToWorksheetFormat(orderInventoryByBin, foundReleaseGood);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
throw new OutboundOrderError('There is no item in this order', 'NO_ITEMS_IN_ORDER');
|
|
169
|
+
}
|
|
132
170
|
}
|
|
133
171
|
else {
|
|
172
|
+
// Try to find by bin location
|
|
134
173
|
const binLocation = await tx.getRepository(warehouse_base_1.Location).findOne({
|
|
135
174
|
where: { domain, name: orderNo }
|
|
136
175
|
});
|
|
137
176
|
if (binLocation) {
|
|
138
|
-
orderInventoryByBin = await buildOrderInventoryQuery(tx, domain.id, binLocation.id).getMany();
|
|
177
|
+
orderInventoryByBin = await buildOrderInventoryQuery(tx, domain.id, { locationId: binLocation.id }).getMany();
|
|
139
178
|
}
|
|
140
179
|
if (orderInventoryByBin.length > 0) {
|
|
141
180
|
return transformToWorksheetFormat(orderInventoryByBin);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-loadable-release-good-by-bin.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts"],"names":[],"mappings":";;;AAEA,mEAAyD;AAEzD,2DAA8G;AAE9G;;;GAGG;AACH,MAAM,kBAAmB,SAAQ,KAAK;IACpC,YAAY,OAAe,EAAS,IAAY;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAA;QADoB,SAAI,GAAJ,IAAI,CAAQ;QAE9C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,+BAA+B,GAAG,CAAC,EAAiB,EAAE,QAAgB,EAAE,OAAe,EAAE,EAAE;IAC/F,OAAO,EAAE;SACN,aAAa,CAAC,wBAAW,CAAC;SAC1B,kBAAkB,CAAC,aAAa,CAAC;SACjC,iBAAiB,CAAC,sBAAsB,EAAE,UAAU,CAAC;SACrD,KAAK,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,CAAC;SACxD,QAAQ,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC;SACpD,QAAQ,CAAC,oCAAoC,EAAE;QAC9C,MAAM,EAAE,CAAC,yBAAY,CAAC,OAAO,EAAE,yBAAY,CAAC,UAAU,EAAE,yBAAY,CAAC,kBAAkB,EAAE,yBAAY,CAAC,IAAI,CAAC;KAC5G,CAAC,CAAA;AACN,CAAC,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"find-loadable-release-good-by-bin.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,43 +3,94 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.findLoadableReleaseGood = void 0;
|
|
4
4
|
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
5
5
|
const sales_base_1 = require("@things-factory/sales-base");
|
|
6
|
+
/**
|
|
7
|
+
* Helper function to get all inventory counts in a single query
|
|
8
|
+
* Returns counts for LOADING status, LOADED status, and total
|
|
9
|
+
*/
|
|
10
|
+
async function getInventoryCounts(tx, domainId, releaseGoodId, binLocationId) {
|
|
11
|
+
const qb = tx
|
|
12
|
+
.getRepository(sales_base_1.OrderInventory)
|
|
13
|
+
.createQueryBuilder('orderInventory')
|
|
14
|
+
.select('COUNT(*)', 'total')
|
|
15
|
+
.addSelect(`SUM(CASE WHEN orderInventory.status = :loadingStatus THEN 1 ELSE 0 END)`, 'loadingTotal')
|
|
16
|
+
.addSelect(`SUM(CASE WHEN orderInventory.status = :loadedStatus THEN 1 ELSE 0 END)`, 'loadedTotal')
|
|
17
|
+
.where('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId })
|
|
18
|
+
.andWhere('orderInventory.domain_id = :domainId', { domainId })
|
|
19
|
+
.setParameter('loadingStatus', sales_base_1.ORDER_INVENTORY_STATUS.LOADING)
|
|
20
|
+
.setParameter('loadedStatus', sales_base_1.ORDER_INVENTORY_STATUS.LOADED);
|
|
21
|
+
if (binLocationId) {
|
|
22
|
+
qb.andWhere('orderInventory.bin_location_id = :binLocationId', { binLocationId });
|
|
23
|
+
}
|
|
24
|
+
const result = await qb.getRawOne();
|
|
25
|
+
const loadingTotal = parseInt(result.loadingTotal) || 0;
|
|
26
|
+
const loadedTotal = parseInt(result.loadedTotal) || 0;
|
|
27
|
+
return {
|
|
28
|
+
loadingTotal,
|
|
29
|
+
loadingCompleted: loadedTotal,
|
|
30
|
+
loadedTotal,
|
|
31
|
+
loadedCompleted: loadedTotal,
|
|
32
|
+
total: parseInt(result.total) || 0
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Assigns itemCounts and tabCounts to a release good based on inventory counts
|
|
37
|
+
*/
|
|
38
|
+
function assignCountsToReleaseGood(releaseGood, counts, tabName, isBinScan = false) {
|
|
39
|
+
const { loadingTotal, loadingCompleted, loadedTotal, loadedCompleted, total } = counts;
|
|
40
|
+
// Calculate completed count for current tab (backward compatibility)
|
|
41
|
+
let currentCompleted;
|
|
42
|
+
if (isBinScan) {
|
|
43
|
+
currentCompleted = tabName === 'LOADING' ? loadingTotal : loadedTotal;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// ORDER scan: QC tab considers LOADING+LOADED as completed
|
|
47
|
+
currentCompleted = tabName === 'QC' ? loadingTotal + loadedTotal : loadedTotal;
|
|
48
|
+
}
|
|
49
|
+
// Backward compatibility: itemCounts for current tab
|
|
50
|
+
releaseGood['itemCounts'] = {
|
|
51
|
+
total,
|
|
52
|
+
pending: total - currentCompleted
|
|
53
|
+
};
|
|
54
|
+
// tabCounts for both LOADING and LOADED tabs
|
|
55
|
+
releaseGood['tabCounts'] = {
|
|
56
|
+
LOADING: {
|
|
57
|
+
total: loadingTotal,
|
|
58
|
+
completed: loadingCompleted,
|
|
59
|
+
pending: loadingTotal - loadingCompleted
|
|
60
|
+
},
|
|
61
|
+
LOADED: {
|
|
62
|
+
total: loadedTotal,
|
|
63
|
+
completed: loadedCompleted,
|
|
64
|
+
pending: loadedTotal - loadedCompleted
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
6
68
|
exports.findLoadableReleaseGood = {
|
|
7
69
|
async findLoadableReleaseGood(_, { orderNo, tabName }, context) {
|
|
8
70
|
const { domain, tx } = context.state;
|
|
9
71
|
let releaseGoods = [];
|
|
10
|
-
//put query in util same as find-loadable-release-good-by-bin.ts
|
|
11
|
-
//jiahhao
|
|
12
72
|
let foundReleaseGood = await tx
|
|
13
73
|
.getRepository(sales_base_1.ReleaseGood)
|
|
14
74
|
.createQueryBuilder('releaseGood')
|
|
15
75
|
.where('releaseGood.domain_id = :domainId', { domainId: domain.id })
|
|
16
76
|
.andWhere('releaseGood.name = :orderNo', { orderNo })
|
|
17
77
|
.andWhere('releaseGood.status IN (:...status)', {
|
|
18
|
-
status: [
|
|
78
|
+
status: [
|
|
79
|
+
sales_base_1.ORDER_STATUS.SORTING,
|
|
80
|
+
sales_base_1.ORDER_STATUS.LOADING,
|
|
81
|
+
sales_base_1.ORDER_STATUS.PROCESSING,
|
|
82
|
+
sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING,
|
|
83
|
+
sales_base_1.ORDER_STATUS.DONE
|
|
84
|
+
]
|
|
19
85
|
})
|
|
20
86
|
.getOne();
|
|
21
87
|
if (foundReleaseGood && foundReleaseGood.status == sales_base_1.ORDER_STATUS.DONE) {
|
|
22
88
|
throw new Error('This order is DONE');
|
|
23
89
|
}
|
|
24
90
|
else if (foundReleaseGood) {
|
|
25
|
-
// Get counts
|
|
26
|
-
const counts = await tx
|
|
27
|
-
|
|
28
|
-
.createQueryBuilder('orderInventory')
|
|
29
|
-
.select('COUNT(*)', 'total')
|
|
30
|
-
.addSelect(`SUM(CASE WHEN orderInventory.status IN (:...completedStatuses) THEN 1 ELSE 0 END)`, 'completed')
|
|
31
|
-
.where('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId: foundReleaseGood.id })
|
|
32
|
-
.andWhere('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
33
|
-
.setParameter('completedStatuses', tabName === 'QC'
|
|
34
|
-
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADING, sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
|
|
35
|
-
: tabName === 'LOADING'
|
|
36
|
-
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
|
|
37
|
-
: [sales_base_1.ORDER_INVENTORY_STATUS.LOADED])
|
|
38
|
-
.getRawOne();
|
|
39
|
-
foundReleaseGood['itemCounts'] = {
|
|
40
|
-
total: parseInt(counts.total) || 0,
|
|
41
|
-
pending: parseInt(counts.completed) || 0
|
|
42
|
-
};
|
|
91
|
+
// Get all counts in a single query
|
|
92
|
+
const counts = await getInventoryCounts(tx, domain.id, foundReleaseGood.id);
|
|
93
|
+
assignCountsToReleaseGood(foundReleaseGood, counts, tabName, false);
|
|
43
94
|
releaseGoods.push(foundReleaseGood);
|
|
44
95
|
return releaseGoods;
|
|
45
96
|
}
|
|
@@ -48,7 +99,8 @@ exports.findLoadableReleaseGood = {
|
|
|
48
99
|
where: { domain, name: orderNo }
|
|
49
100
|
});
|
|
50
101
|
if (binLocation) {
|
|
51
|
-
//
|
|
102
|
+
// BIN scan: Find all OrderInventory linked to this BIN regardless of status
|
|
103
|
+
// This allows UI to see orders even when all items are LOADED (so it can auto-switch to LOADED tab)
|
|
52
104
|
const orderInventoryByBin = await tx
|
|
53
105
|
.getRepository(sales_base_1.OrderInventory)
|
|
54
106
|
.createQueryBuilder('orderInventory')
|
|
@@ -57,16 +109,18 @@ exports.findLoadableReleaseGood = {
|
|
|
57
109
|
.innerJoinAndSelect('bizplace.domain', 'domain')
|
|
58
110
|
.leftJoinAndSelect('releaseGood.sortedBy', 'sortedBy')
|
|
59
111
|
.where('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
60
|
-
.andWhere('orderInventory.status = :orderInventoryStatus', {
|
|
61
|
-
orderInventoryStatus: tabName === 'QC'
|
|
62
|
-
? sales_base_1.ORDER_INVENTORY_STATUS.SORTING
|
|
63
|
-
: tabName === 'LOADING'
|
|
64
|
-
? sales_base_1.ORDER_INVENTORY_STATUS.LOADING
|
|
65
|
-
: sales_base_1.ORDER_INVENTORY_STATUS.LOADED
|
|
66
|
-
})
|
|
67
112
|
.andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })
|
|
68
113
|
.andWhere('releaseGood.status IN (:...status)', {
|
|
69
114
|
status: [sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PARTIAL_PROCESSING]
|
|
115
|
+
})
|
|
116
|
+
// Include OrderInventory in relevant statuses for loading workflow
|
|
117
|
+
// This ensures we only get items that are part of the loading process
|
|
118
|
+
.andWhere('orderInventory.status IN (:...relevantStatuses)', {
|
|
119
|
+
relevantStatuses: [
|
|
120
|
+
sales_base_1.ORDER_INVENTORY_STATUS.SORTING,
|
|
121
|
+
sales_base_1.ORDER_INVENTORY_STATUS.LOADING,
|
|
122
|
+
sales_base_1.ORDER_INVENTORY_STATUS.LOADED
|
|
123
|
+
]
|
|
70
124
|
})
|
|
71
125
|
.orderBy('releaseGood.createdAt', 'ASC')
|
|
72
126
|
.getMany();
|
|
@@ -77,34 +131,22 @@ exports.findLoadableReleaseGood = {
|
|
|
77
131
|
}
|
|
78
132
|
return acc;
|
|
79
133
|
}, []);
|
|
80
|
-
// Get counts for each release good
|
|
134
|
+
// Get counts for each release good (scoped to this BIN)
|
|
81
135
|
for (const releaseGood of releaseGoods) {
|
|
82
|
-
const counts = await tx
|
|
83
|
-
|
|
84
|
-
.createQueryBuilder('orderInventory')
|
|
85
|
-
.select('COUNT(*)', 'total')
|
|
86
|
-
.addSelect(`SUM(CASE WHEN orderInventory.status IN (:...completedStatuses) THEN 1 ELSE 0 END)`, 'completed')
|
|
87
|
-
.where('orderInventory.release_good_id = :releaseGoodId', { releaseGoodId: releaseGood.id })
|
|
88
|
-
.andWhere('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
89
|
-
.setParameter('completedStatuses', tabName === 'LOADING'
|
|
90
|
-
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADING]
|
|
91
|
-
: tabName === 'LOADED'
|
|
92
|
-
? [sales_base_1.ORDER_INVENTORY_STATUS.LOADED]
|
|
93
|
-
: [sales_base_1.ORDER_INVENTORY_STATUS.LOADED])
|
|
94
|
-
.getRawOne();
|
|
95
|
-
releaseGood['itemCounts'] = {
|
|
96
|
-
total: parseInt(counts.total) || 0,
|
|
97
|
-
pending: parseInt(counts.completed) || 0
|
|
98
|
-
};
|
|
136
|
+
const counts = await getInventoryCounts(tx, domain.id, releaseGood.id, binLocation.id);
|
|
137
|
+
assignCountsToReleaseGood(releaseGood, counts, tabName, true);
|
|
99
138
|
}
|
|
100
139
|
}
|
|
140
|
+
// Return releaseGoods if found, even if LOADING.total=0 (UI will auto-switch to LOADED tab)
|
|
141
|
+
// Only throw error if BIN has no OrderInventory items at all
|
|
101
142
|
if (releaseGoods.length > 0)
|
|
102
143
|
return releaseGoods;
|
|
103
144
|
else {
|
|
145
|
+
// No releaseGoods found in this BIN - BIN is empty or has no items in loading workflow
|
|
104
146
|
const errorMessage = tabName === 'QC'
|
|
105
147
|
? 'No items pending QC verification'
|
|
106
148
|
: tabName === 'LOADING'
|
|
107
|
-
? 'No items
|
|
149
|
+
? 'No items found in this bin'
|
|
108
150
|
: 'No items pending dispatch';
|
|
109
151
|
throw new Error(errorMessage);
|
|
110
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-loadable-release-good.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good.ts"],"names":[],"mappings":";;;AAEA,mEAAyD;AAEzD,2DAA8G;
|
|
1
|
+
{"version":3,"file":"find-loadable-release-good.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ function formatDate(date) {
|
|
|
16
16
|
return new Date(date).toISOString().slice(0, 19).replace('T', ' ');
|
|
17
17
|
}
|
|
18
18
|
function shouldFilterBySortedQty(releaseGoodStatus, disableQC) {
|
|
19
|
-
return releaseGoodStatus
|
|
19
|
+
return releaseGoodStatus === sales_base_1.ORDER_STATUS.LOADING && !disableQC;
|
|
20
20
|
}
|
|
21
21
|
function getSortedQty(releaseGoodStatus, disableQC, pickedQty, sortedQty) {
|
|
22
22
|
return releaseGoodStatus === sales_base_1.ORDER_STATUS.LOADING && disableQC ? pickedQty : sortedQty;
|
|
@@ -78,13 +78,20 @@ exports.loadingWorksheetv2 = {
|
|
|
78
78
|
wsdStatus: [worksheet_base_1.WORKSHEET_STATUS.EXECUTING]
|
|
79
79
|
});
|
|
80
80
|
if (filter === FILTER_TYPES.QC) {
|
|
81
|
-
qb.andWhere('targetInventory.status
|
|
81
|
+
qb.andWhere('targetInventory.status IN (:...loadingStatus)', {
|
|
82
|
+
loadingStatus: [sales_base_1.ORDER_INVENTORY_STATUS.SORTING, sales_base_1.ORDER_INVENTORY_STATUS.LOADING]
|
|
83
|
+
});
|
|
82
84
|
qb.andWhere('targetInventory.sortedQty <> targetInventory.pickedQty');
|
|
83
85
|
}
|
|
84
86
|
if (filter === FILTER_TYPES.LOADING) {
|
|
85
87
|
if (shouldFilterBySortedQty(releaseGood.status, disableQc)) {
|
|
86
88
|
qb.andWhere('targetInventory.sortedQty > 0');
|
|
87
89
|
}
|
|
90
|
+
else {
|
|
91
|
+
qb.andWhere('targetInventory.status IN (:...loadingStatus)', {
|
|
92
|
+
loadingStatus: [sales_base_1.ORDER_INVENTORY_STATUS.SORTING, sales_base_1.ORDER_INVENTORY_STATUS.LOADING]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
88
95
|
}
|
|
89
96
|
qb.orderBy('product.name', 'ASC');
|
|
90
97
|
const worksheetDetails = await qb.getMany();
|
|
@@ -120,7 +127,7 @@ async function mapdata(worksheet, worksheetDetails, releaseGood, disableQC) {
|
|
|
120
127
|
}
|
|
121
128
|
};
|
|
122
129
|
const worksheetDetailInfos = worksheetDetails.map(wsd => {
|
|
123
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
130
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
124
131
|
return ({
|
|
125
132
|
id: wsd.id,
|
|
126
133
|
name: wsd.name,
|
|
@@ -142,13 +149,14 @@ async function mapdata(worksheet, worksheetDetails, releaseGood, disableQC) {
|
|
|
142
149
|
id: (_h = wsd.targetInventory) === null || _h === void 0 ? void 0 : _h.id,
|
|
143
150
|
batchId: ((_j = wsd.targetInventory) === null || _j === void 0 ? void 0 : _j.batchId) || '-',
|
|
144
151
|
packingType: (_k = wsd.targetInventory) === null || _k === void 0 ? void 0 : _k.packingType,
|
|
152
|
+
refWorksheetId: (_l = wsd.targetInventory) === null || _l === void 0 ? void 0 : _l.refWorksheetId,
|
|
145
153
|
product: {
|
|
146
|
-
id: (
|
|
147
|
-
sku: (
|
|
148
|
-
name: (
|
|
154
|
+
id: (_o = (_m = wsd.targetInventory) === null || _m === void 0 ? void 0 : _m.product) === null || _o === void 0 ? void 0 : _o.id,
|
|
155
|
+
sku: (_q = (_p = wsd.targetInventory) === null || _p === void 0 ? void 0 : _p.product) === null || _q === void 0 ? void 0 : _q.sku,
|
|
156
|
+
name: (_s = (_r = wsd.targetInventory) === null || _r === void 0 ? void 0 : _r.product) === null || _s === void 0 ? void 0 : _s.name
|
|
149
157
|
},
|
|
150
158
|
productDetail: {
|
|
151
|
-
id: (
|
|
159
|
+
id: (_u = (_t = wsd.targetInventory) === null || _t === void 0 ? void 0 : _t.productDetail) === null || _u === void 0 ? void 0 : _u.id
|
|
152
160
|
}
|
|
153
161
|
}
|
|
154
162
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-worksheet-v2.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/loading-worksheet-v2.ts"],"names":[],"mappings":";;;AACA,qCAA4B;AAG5B,2DAA8F;AAC9F,mEAA6G;AAC7G,+DAAsD;AAEtD,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;CACV,CAAA;AAgEV,mBAAmB;AACnB,SAAS,UAAU,CAAC,IAAiB;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACpE,CAAC;AAED,SAAS,uBAAuB,CAAC,iBAAyB,EAAE,SAAkB;IAC5E,OAAO,iBAAiB,KAAK,yBAAY,CAAC,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"loading-worksheet-v2.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/loading-worksheet-v2.ts"],"names":[],"mappings":"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"}
|