@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.
@@ -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
- const qb = tx
27
- .getRepository(sales_base_1.OrderInventory)
28
- .createQueryBuilder('orderInventory');
29
- qb.innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')
30
- .innerJoinAndSelect('worksheets', 'ws', `orderInventory.ref_worksheet_id = ws.id AND ws.type = 'BATCH_PICKING'`)
31
- .innerJoinAndSelect('worksheets', 'ws2', `ws2.task_no = ws.task_no AND ws2.type = 'SORTING'`)
32
- .innerJoinAndSelect('releaseGood.bizplace', 'bizplace')
33
- .innerJoinAndSelect('bizplace.domain', 'domain')
34
- .where('orderInventory.domain_id = :domainId', { domainId: domain.id })
35
- .andWhere('orderInventory.status IN (:...orderInventoryStatus)', {
36
- orderInventoryStatus: [sales_base_1.ORDER_INVENTORY_STATUS.READY_TO_SORT, sales_base_1.ORDER_INVENTORY_STATUS.SORTING]
37
- })
38
- .andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })
39
- .andWhere('releaseGood.status IN (:...statuses)', {
40
- statuses: [sales_base_1.ORDER_STATUS.READY_TO_SORT, sales_base_1.ORDER_STATUS.SORTING]
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
- else {
56
- throw new Error(`Bin do not have any batch picking order.`);
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
@@ -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":"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"}
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' AND
63
- ws.assignee_id IS NULL AND
64
- (ws.status = 'EXECUTING' OR ws.status = 'DEACTIVATED') AND
65
- NOT EXISTS (
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
- // relace worksheet with newly assigned worksheet
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({
@@ -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,EAAG,EAAE,OAAY;QACvD,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;YAC7F,MAAM,QAAQ,GAAS,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YAChG,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;gBACtF,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAEhE,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAE5D,IAAI,SAAoB,CAAA;YACxB,IAAI,WAAW,GAAG,MAAM,EAAE;iBACvB,aAAa,CAAC,oBAAS,CAAC;iBACxB,kBAAkB,CAAC,IAAI,CAAC;iBACxB,MAAM,CAAC,OAAO,CAAC;iBACf,SAAS,CAAC,SAAS,CAAC;iBACpB,SAAS,CAAC,WAAW,CAAC;iBACtB,kBAAkB,CAAC,gBAAgB,EAAE,IAAI,CAAC;iBAC1C,KAAK,CACJ,kIAAkI,EAClI;gBACE,SAAS,EAAE,MAAM,CAAC,EAAE;gBACpB,IAAI,EAAE,0BAAc,CAAC,OAAO;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACrB,OAAO,EAAE,4BAAgB,CAAC,SAAS;gBACnC,OAAO,EAAE,4BAAgB,CAAC,WAAW;aACtC,CACF;iBACA,QAAQ,CAAC,EAAE,CAAC,EAAE;gBACb,MAAM,QAAQ,GAAG,EAAE;qBAChB,QAAQ,EAAE;qBACV,MAAM,CAAC,gCAAgC,CAAC;qBACxC,IAAI,CAAC,2BAAc,EAAE,gBAAgB,CAAC;qBACtC,KAAK,CAAC,qDAAqD,CAAC;qBAC5D,QAAQ,CAAC,yCAAyC,CAAC;qBACnD,OAAO,CAAC,gCAAgC,CAAC;qBACzC,KAAK,CAAC,CAAC,CAAC;qBACR,QAAQ,EAAE,CAAA;gBACb,OAAO,aAAa,GAAG,QAAQ,CAAA;YACjC,CAAC,CAAC;iBACD,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;YAEtC,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAA;YAEtC,IAAI,CAAC,SAAS,EAAE;gBACd,yCAAyC;gBACzC,IAAI,iBAAiB,GAAG,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAkB,EAAE,EAAE;oBACrF,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,oBAAS,CAAC,CAAC,KAAK,CAC9C;;;;;;;;;;;;;;;;;;;;;;;WAuBD,EACC,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CACzB,CAAA;oBACD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;gBACb,CAAC,CAAC,CAAA;gBAEF,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;gBAEjF,iDAAiD;gBACjD,SAAS,GAAG,MAAM,EAAE;qBACjB,aAAa,CAAC,oBAAS,CAAC;qBACxB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;aACnF;YAED,IAAI,SAAS,CAAC,MAAM,IAAI,4BAAgB,CAAC,WAAW;gBAAE,MAAM,IAAA,kCAAe,EAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;YAE7G,MAAM,oBAAoB,GAAY,MAAM,EAAE,CAAC,aAAa,CAAC,sBAAO,CAAC,CAAC,OAAO,CAAC;gBAC5E,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE;aACpD,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAC1D,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC/D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAA;YAC7D,CAAC,CAAC,CAAA;YAEF,MAAM,WAAW,GAAgB,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAEtG,IAAI,IAAI,GAAG,MAAM,IAAA,oCAAgB,EAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAA;YACpF,OAAO,IAAI,CAAA;SACZ;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
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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"}
@@ -6,6 +6,7 @@ exports.FindReleaseOrdersByTaskNo = (0, apollo_server_koa_1.gql) `
6
6
  type FindReleaseOrdersByTaskNo {
7
7
  taskNo: String
8
8
  releaseGoods: [ReleaseGood]
9
+ selectedReleaseGood: String
9
10
  }
10
11
  `;
11
12
  //# sourceMappingURL=find-release-orders-by-task-no.js.map
@@ -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;;;;;CAK3C,CAAA"}
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.461",
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.461",
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": "978c9bf639d5f4f779f2b439cc45408fc47b1bcb"
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
- const qb: SelectQueryBuilder<OrderInventoryEntity> = tx
33
- .getRepository(OrderInventoryEntity)
34
- .createQueryBuilder('orderInventory')
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
- const orderInventoryByBin = await qb.getRawOne()
51
- if (orderInventoryByBin?.releaseGood_id) {
52
- taskNo = orderInventoryByBin.ws_task_no
53
- task = await tx.getRepository(WorksheetEntity).findOne({
54
- where: {
55
- taskNo,
56
- status: In([WORKSHEET_STATUS.DEACTIVATED, WORKSHEET_STATUS.EXECUTING]),
57
- type: WORKSHEET_TYPE.SORTING,
58
- domain
59
- },
60
- relations: ['worksheetDetails']
61
- })
62
- } else {
63
- throw new Error(`Bin do not have any batch picking order.`)
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, { }, context: 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' AND
71
- ws.assignee_id IS NULL AND
72
- (ws.status = 'EXECUTING' OR ws.status = 'DEACTIVATED') AND
73
- NOT EXISTS (
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
- // relace worksheet with newly assigned worksheet
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
 
@@ -4,5 +4,6 @@ export const FindReleaseOrdersByTaskNo = gql`
4
4
  type FindReleaseOrdersByTaskNo {
5
5
  taskNo: String
6
6
  releaseGoods: [ReleaseGood]
7
+ selectedReleaseGood: String
7
8
  }
8
9
  `