@things-factory/worksheet-base 4.3.461 → 4.3.462
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/find-sorting-release-orders-by-task-no.js +54 -31
- package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +12 -6
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
- package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js +1 -0
- package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js.map +1 -1
- package/package.json +3 -3
- package/server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts +59 -32
- package/server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts +13 -7
- package/server/graphql/types/worksheet/find-release-orders-by-task-no.ts +1 -0
|
@@ -14,6 +14,27 @@ exports.findSortingReleaseOrdersByTaskNoResolver = {
|
|
|
14
14
|
async findSortingReleaseOrdersByTaskNo(_, { taskNo }, context) {
|
|
15
15
|
var _a;
|
|
16
16
|
const { domain, tx, user } = context.state;
|
|
17
|
+
let selectedReleaseGood = null;
|
|
18
|
+
let ws = await tx.getRepository(entities_1.Worksheet).createQueryBuilder('ws')
|
|
19
|
+
.addSelect('rg.name', 'release_good_name')
|
|
20
|
+
.addSelect('rg.status', 'release_good_status')
|
|
21
|
+
.innerJoin('worksheet_details', 'wd', `ws.id = wd.worksheet_id`)
|
|
22
|
+
.innerJoin('order_inventories', 'oi', `wd.target_inventory_id = oi.id and wd."type" ='SORTING'`)
|
|
23
|
+
.innerJoin('release_goods', 'rg', `rg.id = oi.release_good_id`)
|
|
24
|
+
.where('rg.domain_id = :domainId', { domainId: domain.id })
|
|
25
|
+
.andWhere('rg.name = :name', { name: taskNo })
|
|
26
|
+
.andWhere('rg.status IN (:...statuses)', {
|
|
27
|
+
statuses: [sales_base_1.ORDER_STATUS.READY_TO_SORT, sales_base_1.ORDER_STATUS.SORTING, sales_base_1.ORDER_STATUS.LOADING, sales_base_1.ORDER_STATUS.DONE]
|
|
28
|
+
})
|
|
29
|
+
.andWhere('ws.type = :type', { type: constants_1.WORKSHEET_TYPE.SORTING })
|
|
30
|
+
.getRawOne();
|
|
31
|
+
if (ws) {
|
|
32
|
+
if (ws.release_good_status == 'LOADING' || ws.release_good_status == 'DONE') {
|
|
33
|
+
throw new Error(`Release Good already sorted`);
|
|
34
|
+
}
|
|
35
|
+
selectedReleaseGood = ws.release_good_name;
|
|
36
|
+
taskNo = ws.ws_task_no;
|
|
37
|
+
}
|
|
17
38
|
let task = await tx.getRepository(entities_1.Worksheet).findOne({
|
|
18
39
|
where: { taskNo, type: constants_1.WORKSHEET_TYPE.SORTING, domain },
|
|
19
40
|
relations: ['bizplace', 'bizplace.domain', 'worksheetDetails']
|
|
@@ -23,37 +44,39 @@ exports.findSortingReleaseOrdersByTaskNoResolver = {
|
|
|
23
44
|
const binLocation = await tx.getRepository(warehouse_base_1.Location).findOne({
|
|
24
45
|
where: { domain, name: taskNo }
|
|
25
46
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.innerJoinAndSelect('
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const orderInventoryByBin = await qb.getRawOne();
|
|
43
|
-
if (orderInventoryByBin === null || orderInventoryByBin === void 0 ? void 0 : orderInventoryByBin.releaseGood_id) {
|
|
44
|
-
taskNo = orderInventoryByBin.ws_task_no;
|
|
45
|
-
task = await tx.getRepository(entities_1.Worksheet).findOne({
|
|
46
|
-
where: {
|
|
47
|
-
taskNo,
|
|
48
|
-
status: (0, typeorm_1.In)([constants_1.WORKSHEET_STATUS.DEACTIVATED, constants_1.WORKSHEET_STATUS.EXECUTING]),
|
|
49
|
-
type: constants_1.WORKSHEET_TYPE.SORTING,
|
|
50
|
-
domain
|
|
51
|
-
},
|
|
52
|
-
relations: ['worksheetDetails']
|
|
47
|
+
if (binLocation) {
|
|
48
|
+
const qb = tx
|
|
49
|
+
.getRepository(sales_base_1.OrderInventory)
|
|
50
|
+
.createQueryBuilder('orderInventory');
|
|
51
|
+
qb.innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')
|
|
52
|
+
.innerJoinAndSelect('worksheets', 'ws', `orderInventory.ref_worksheet_id = ws.id AND ws.type = 'BATCH_PICKING'`)
|
|
53
|
+
.innerJoinAndSelect('worksheets', 'ws2', `ws2.task_no = ws.task_no AND ws2.type = 'SORTING'`)
|
|
54
|
+
.innerJoinAndSelect('releaseGood.bizplace', 'bizplace')
|
|
55
|
+
.innerJoinAndSelect('bizplace.domain', 'domain')
|
|
56
|
+
.where('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
57
|
+
.andWhere('orderInventory.status IN (:...orderInventoryStatus)', {
|
|
58
|
+
orderInventoryStatus: [sales_base_1.ORDER_INVENTORY_STATUS.READY_TO_SORT, sales_base_1.ORDER_INVENTORY_STATUS.SORTING]
|
|
59
|
+
})
|
|
60
|
+
.andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })
|
|
61
|
+
.andWhere('releaseGood.status IN (:...statuses)', {
|
|
62
|
+
statuses: [sales_base_1.ORDER_STATUS.READY_TO_SORT, sales_base_1.ORDER_STATUS.SORTING]
|
|
53
63
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
64
|
+
const orderInventoryByBin = await qb.getRawOne();
|
|
65
|
+
if (orderInventoryByBin === null || orderInventoryByBin === void 0 ? void 0 : orderInventoryByBin.releaseGood_id) {
|
|
66
|
+
taskNo = orderInventoryByBin.ws_task_no;
|
|
67
|
+
task = await tx.getRepository(entities_1.Worksheet).findOne({
|
|
68
|
+
where: {
|
|
69
|
+
taskNo,
|
|
70
|
+
status: (0, typeorm_1.In)([constants_1.WORKSHEET_STATUS.DEACTIVATED, constants_1.WORKSHEET_STATUS.EXECUTING]),
|
|
71
|
+
type: constants_1.WORKSHEET_TYPE.SORTING,
|
|
72
|
+
domain
|
|
73
|
+
},
|
|
74
|
+
relations: ['worksheetDetails']
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw new Error(`Bin do not have any batch picking order.`);
|
|
79
|
+
}
|
|
57
80
|
}
|
|
58
81
|
}
|
|
59
82
|
if (!task)
|
|
@@ -109,7 +132,7 @@ exports.findSortingReleaseOrdersByTaskNoResolver = {
|
|
|
109
132
|
.addGroupBy('user.name')
|
|
110
133
|
.orderBy('rg.createdAt', 'ASC');
|
|
111
134
|
const releaseGoods = await qb.getRawMany();
|
|
112
|
-
return { releaseGoods, taskNo };
|
|
135
|
+
return { releaseGoods, taskNo, selectedReleaseGood };
|
|
113
136
|
}
|
|
114
137
|
};
|
|
115
138
|
//# sourceMappingURL=find-sorting-release-orders-by-task-no.js.map
|
package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-sorting-release-orders-by-task-no.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts"],"names":[],"mappings":";;;AAAA,qCAA+D;AAE/D,2DAKmC;AACnC,iDAA8C;AAC9C,yDAAgD;AAChD,mEAAyD;AACzD,uDAAkE;AAClE,+DAAsE;AAEtE,kDAAqE;AACrE,gDAA0G;AAE7F,QAAA,wCAAwC,GAAG;IACtD,KAAK,CAAC,gCAAgC,CAAC,CAAM,EAAE,EAAE,MAAM,EAAE,EAAE,OAAY;;QACrE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"find-sorting-release-orders-by-task-no.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,10 +59,12 @@ exports.fetchAndAssignPickingTaskResolver = {
|
|
|
59
59
|
INNER JOIN release_goods rg ON rg.id = ws.release_good_id
|
|
60
60
|
WHERE
|
|
61
61
|
ws.domain_id = $1 AND
|
|
62
|
-
ws.type = 'PICKING'
|
|
63
|
-
ws.
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
ws.type = 'PICKING'
|
|
63
|
+
AND ws.status IN ('EXECUTING', 'DEACTIVATED')
|
|
64
|
+
AND ws.assignee_id IS NULL
|
|
65
|
+
/*
|
|
66
|
+
(condition is commented as current status in oi not in use)
|
|
67
|
+
AND NOT EXISTS (
|
|
66
68
|
SELECT count(id) AS "totalPS"
|
|
67
69
|
FROM order_inventories oi
|
|
68
70
|
WHERE oi.release_good_id = ws.release_good_id AND
|
|
@@ -70,6 +72,7 @@ exports.fetchAndAssignPickingTaskResolver = {
|
|
|
70
72
|
GROUP BY oi.release_good_id
|
|
71
73
|
HAVING count(id) > 0
|
|
72
74
|
)
|
|
75
|
+
*/
|
|
73
76
|
ORDER BY rg.release_date, rg.created_at LIMIT 1
|
|
74
77
|
) src where src.id = ws.id
|
|
75
78
|
RETURNING ws.id;
|
|
@@ -78,11 +81,14 @@ exports.fetchAndAssignPickingTaskResolver = {
|
|
|
78
81
|
});
|
|
79
82
|
if (updatedWorksheets.length == 0)
|
|
80
83
|
throw new Error('no suitable worksheet found');
|
|
81
|
-
//
|
|
84
|
+
// replace worksheet with newly assigned worksheetp
|
|
82
85
|
worksheet = await tx
|
|
83
86
|
.getRepository(entities_1.Worksheet)
|
|
84
|
-
.findOne({ where: { id: updatedWorksheets[0].id }, relations: ['releaseGood'] });
|
|
87
|
+
.findOne({ where: { id: updatedWorksheets[0].id, assignee: assignee }, relations: ['releaseGood'] });
|
|
85
88
|
}
|
|
89
|
+
//validation of the workheet if its assigned to another user
|
|
90
|
+
if (!worksheet)
|
|
91
|
+
throw new Error('Please try again by clicking the "Get Task" button');
|
|
86
92
|
if (worksheet.status == constants_1.WORKSHEET_STATUS.DEACTIVATED)
|
|
87
93
|
await (0, activate_picking_1.activatePicking)(tx, domain, user, worksheet.name);
|
|
88
94
|
const locationSortingRules = await tx.getRepository(setting_base_1.Setting).findOne({
|
package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-and-assign-picking-task.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts"],"names":[],"mappings":";;;AAAA,qCAAsD;AAEtD,yDAAgD;AAChD,2DAAwE;AACxE,+DAAsD;AAGtD,qDAAwE;AACxE,mDAAgD;AAChD,4DAAuD;AACvD,yDAAoD;AAEvC,QAAA,iCAAiC,GAAG;IAC/C,KAAK,CAAC,yBAAyB,CAAC,CAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch-and-assign-picking-task.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-release-orders-by-task-no.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/find-release-orders-by-task-no.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAE1B,QAAA,yBAAyB,GAAG,IAAA,uBAAG,EAAA
|
|
1
|
+
{"version":3,"file":"find-release-orders-by-task-no.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/find-release-orders-by-task-no.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAE1B,QAAA,yBAAyB,GAAG,IAAA,uBAAG,EAAA;;;;;;CAM3C,CAAA"}
|
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.462",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@things-factory/integration-sftp": "^4.3.452",
|
|
37
37
|
"@things-factory/marketplace-base": "^4.3.461",
|
|
38
38
|
"@things-factory/notification": "^4.3.452",
|
|
39
|
-
"@things-factory/sales-base": "^4.3.
|
|
39
|
+
"@things-factory/sales-base": "^4.3.462",
|
|
40
40
|
"@things-factory/setting-base": "^4.3.452",
|
|
41
41
|
"@things-factory/shell": "^4.3.434",
|
|
42
42
|
"@things-factory/transport-base": "^4.3.452",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"puppeteer": "21.0.3",
|
|
46
46
|
"uuid": "^9.0.0"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "3913d5eb1cbcd517e2303289386d278d35771a55"
|
|
49
49
|
}
|
|
@@ -18,6 +18,31 @@ import { Worksheet as WorksheetEntity, WorksheetDetail as WorksheetDetailEntity
|
|
|
18
18
|
export const findSortingReleaseOrdersByTaskNoResolver = {
|
|
19
19
|
async findSortingReleaseOrdersByTaskNo(_: any, { taskNo }, context: any) {
|
|
20
20
|
const { domain, tx, user }: { domain: Domain; tx: EntityManager; user: User } = context.state
|
|
21
|
+
|
|
22
|
+
let selectedReleaseGood = null
|
|
23
|
+
let ws = await tx.getRepository(WorksheetEntity).createQueryBuilder('ws')
|
|
24
|
+
.addSelect('rg.name', 'release_good_name')
|
|
25
|
+
.addSelect('rg.status', 'release_good_status')
|
|
26
|
+
.innerJoin('worksheet_details', 'wd', `ws.id = wd.worksheet_id`)
|
|
27
|
+
.innerJoin('order_inventories', 'oi', `wd.target_inventory_id = oi.id and wd."type" ='SORTING'`)
|
|
28
|
+
.innerJoin('release_goods', 'rg', `rg.id = oi.release_good_id`)
|
|
29
|
+
.where('rg.domain_id = :domainId', { domainId: domain.id })
|
|
30
|
+
.andWhere('rg.name = :name', { name: taskNo })
|
|
31
|
+
.andWhere('rg.status IN (:...statuses)', {
|
|
32
|
+
statuses: [ORDER_STATUS.READY_TO_SORT, ORDER_STATUS.SORTING, ORDER_STATUS.LOADING, ORDER_STATUS.DONE]
|
|
33
|
+
})
|
|
34
|
+
.andWhere('ws.type = :type', { type: WORKSHEET_TYPE.SORTING })
|
|
35
|
+
.getRawOne()
|
|
36
|
+
|
|
37
|
+
if (ws) {
|
|
38
|
+
if (ws.release_good_status == 'LOADING' || ws.release_good_status == 'DONE') {
|
|
39
|
+
throw new Error(`Release Good already sorted`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
selectedReleaseGood = ws.release_good_name
|
|
43
|
+
taskNo = ws.ws_task_no
|
|
44
|
+
}
|
|
45
|
+
|
|
21
46
|
let task = await tx.getRepository(WorksheetEntity).findOne({
|
|
22
47
|
where: { taskNo, type: WORKSHEET_TYPE.SORTING, domain },
|
|
23
48
|
relations: ['bizplace', 'bizplace.domain', 'worksheetDetails']
|
|
@@ -29,38 +54,40 @@ export const findSortingReleaseOrdersByTaskNoResolver = {
|
|
|
29
54
|
where: { domain, name: taskNo }
|
|
30
55
|
})
|
|
31
56
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
qb.innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')
|
|
37
|
-
.innerJoinAndSelect('worksheets', 'ws', `orderInventory.ref_worksheet_id = ws.id AND ws.type = 'BATCH_PICKING'`)
|
|
38
|
-
.innerJoinAndSelect('worksheets', 'ws2', `ws2.task_no = ws.task_no AND ws2.type = 'SORTING'`)
|
|
39
|
-
.innerJoinAndSelect('releaseGood.bizplace', 'bizplace')
|
|
40
|
-
.innerJoinAndSelect('bizplace.domain', 'domain')
|
|
41
|
-
.where('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
42
|
-
.andWhere('orderInventory.status IN (:...orderInventoryStatus)', {
|
|
43
|
-
orderInventoryStatus: [ORDER_INVENTORY_STATUS.READY_TO_SORT, ORDER_INVENTORY_STATUS.SORTING]
|
|
44
|
-
})
|
|
45
|
-
.andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })
|
|
46
|
-
.andWhere('releaseGood.status IN (:...statuses)', {
|
|
47
|
-
statuses: [ORDER_STATUS.READY_TO_SORT, ORDER_STATUS.SORTING]
|
|
48
|
-
})
|
|
57
|
+
if (binLocation) {
|
|
58
|
+
const qb: SelectQueryBuilder<OrderInventoryEntity> = tx
|
|
59
|
+
.getRepository(OrderInventoryEntity)
|
|
60
|
+
.createQueryBuilder('orderInventory')
|
|
49
61
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
qb.innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')
|
|
63
|
+
.innerJoinAndSelect('worksheets', 'ws', `orderInventory.ref_worksheet_id = ws.id AND ws.type = 'BATCH_PICKING'`)
|
|
64
|
+
.innerJoinAndSelect('worksheets', 'ws2', `ws2.task_no = ws.task_no AND ws2.type = 'SORTING'`)
|
|
65
|
+
.innerJoinAndSelect('releaseGood.bizplace', 'bizplace')
|
|
66
|
+
.innerJoinAndSelect('bizplace.domain', 'domain')
|
|
67
|
+
.where('orderInventory.domain_id = :domainId', { domainId: domain.id })
|
|
68
|
+
.andWhere('orderInventory.status IN (:...orderInventoryStatus)', {
|
|
69
|
+
orderInventoryStatus: [ORDER_INVENTORY_STATUS.READY_TO_SORT, ORDER_INVENTORY_STATUS.SORTING]
|
|
70
|
+
})
|
|
71
|
+
.andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })
|
|
72
|
+
.andWhere('releaseGood.status IN (:...statuses)', {
|
|
73
|
+
statuses: [ORDER_STATUS.READY_TO_SORT, ORDER_STATUS.SORTING]
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
const orderInventoryByBin = await qb.getRawOne()
|
|
77
|
+
if (orderInventoryByBin?.releaseGood_id) {
|
|
78
|
+
taskNo = orderInventoryByBin.ws_task_no
|
|
79
|
+
task = await tx.getRepository(WorksheetEntity).findOne({
|
|
80
|
+
where: {
|
|
81
|
+
taskNo,
|
|
82
|
+
status: In([WORKSHEET_STATUS.DEACTIVATED, WORKSHEET_STATUS.EXECUTING]),
|
|
83
|
+
type: WORKSHEET_TYPE.SORTING,
|
|
84
|
+
domain
|
|
85
|
+
},
|
|
86
|
+
relations: ['worksheetDetails']
|
|
87
|
+
})
|
|
88
|
+
} else {
|
|
89
|
+
throw new Error(`Bin do not have any batch picking order.`)
|
|
90
|
+
}
|
|
64
91
|
}
|
|
65
92
|
}
|
|
66
93
|
|
|
@@ -121,6 +148,6 @@ export const findSortingReleaseOrdersByTaskNoResolver = {
|
|
|
121
148
|
|
|
122
149
|
const releaseGoods: ReleaseGoodEntity[] = await qb.getRawMany()
|
|
123
150
|
|
|
124
|
-
return { releaseGoods, taskNo }
|
|
151
|
+
return { releaseGoods, taskNo, selectedReleaseGood }
|
|
125
152
|
}
|
|
126
153
|
}
|
|
@@ -11,7 +11,7 @@ import { pickingWorksheet } from '../picking-worksheet'
|
|
|
11
11
|
import { activatePicking } from './activate-picking'
|
|
12
12
|
|
|
13
13
|
export const fetchAndAssignPickingTaskResolver = {
|
|
14
|
-
async fetchAndAssignPickingTask(_: any, {
|
|
14
|
+
async fetchAndAssignPickingTask(_: any, {}, context: any) {
|
|
15
15
|
try {
|
|
16
16
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
17
17
|
const assignee: User = await tx.getRepository(User).findOne(user.id, { relations: ['domains'] })
|
|
@@ -67,10 +67,12 @@ export const fetchAndAssignPickingTaskResolver = {
|
|
|
67
67
|
INNER JOIN release_goods rg ON rg.id = ws.release_good_id
|
|
68
68
|
WHERE
|
|
69
69
|
ws.domain_id = $1 AND
|
|
70
|
-
ws.type = 'PICKING'
|
|
71
|
-
ws.
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
ws.type = 'PICKING'
|
|
71
|
+
AND ws.status IN ('EXECUTING', 'DEACTIVATED')
|
|
72
|
+
AND ws.assignee_id IS NULL
|
|
73
|
+
/*
|
|
74
|
+
(condition is commented as current status in oi not in use)
|
|
75
|
+
AND NOT EXISTS (
|
|
74
76
|
SELECT count(id) AS "totalPS"
|
|
75
77
|
FROM order_inventories oi
|
|
76
78
|
WHERE oi.release_good_id = ws.release_good_id AND
|
|
@@ -78,22 +80,26 @@ export const fetchAndAssignPickingTaskResolver = {
|
|
|
78
80
|
GROUP BY oi.release_good_id
|
|
79
81
|
HAVING count(id) > 0
|
|
80
82
|
)
|
|
83
|
+
*/
|
|
81
84
|
ORDER BY rg.release_date, rg.created_at LIMIT 1
|
|
82
85
|
) src where src.id = ws.id
|
|
83
86
|
RETURNING ws.id;
|
|
84
87
|
`,
|
|
85
88
|
[domain.id, assignee.id]
|
|
86
89
|
)
|
|
90
|
+
|
|
87
91
|
return x[0]
|
|
88
92
|
})
|
|
89
93
|
|
|
90
94
|
if (updatedWorksheets.length == 0) throw new Error('no suitable worksheet found')
|
|
91
95
|
|
|
92
|
-
//
|
|
96
|
+
// replace worksheet with newly assigned worksheetp
|
|
93
97
|
worksheet = await tx
|
|
94
98
|
.getRepository(Worksheet)
|
|
95
|
-
.findOne({ where: { id: updatedWorksheets[0].id }, relations: ['releaseGood'] })
|
|
99
|
+
.findOne({ where: { id: updatedWorksheets[0].id, assignee: assignee }, relations: ['releaseGood'] })
|
|
96
100
|
}
|
|
101
|
+
//validation of the workheet if its assigned to another user
|
|
102
|
+
if (!worksheet) throw new Error('Please try again by clicking the "Get Task" button')
|
|
97
103
|
|
|
98
104
|
if (worksheet.status == WORKSHEET_STATUS.DEACTIVATED) await activatePicking(tx, domain, user, worksheet.name)
|
|
99
105
|
|