@things-factory/worksheet-base 4.3.199 → 4.3.201

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.
Files changed (25) hide show
  1. package/dist-server/controllers/ecommerce/sellercraft-controller.js +103 -75
  2. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  3. package/dist-server/controllers/outbound/picking-worksheet-controller.js +1 -1
  4. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +2 -2
  6. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  7. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +2 -2
  8. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  9. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js +4 -4
  10. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -1
  11. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +12 -3
  12. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  13. package/dist-server/graphql/types/worksheet/index.js +1 -0
  14. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  15. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -0
  16. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  17. package/package.json +4 -4
  18. package/server/controllers/ecommerce/sellercraft-controller.ts +135 -91
  19. package/server/controllers/outbound/picking-worksheet-controller.ts +1 -1
  20. package/server/controllers/outbound/sorting-worksheet-controller.ts +3 -2
  21. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +23 -7
  22. package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +9 -5
  23. package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +41 -22
  24. package/server/graphql/types/worksheet/index.ts +1 -0
  25. package/server/graphql/types/worksheet/worksheet-detail-info.ts +1 -0
@@ -1,9 +1,23 @@
1
- import { EntityManager, getManager, In, getConnection } from 'typeorm'
1
+ import {
2
+ EntityManager,
3
+ getManager,
4
+ In
5
+ } from 'typeorm'
2
6
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
4
- import { Bizplace, getMyBizplace } from '@things-factory/biz-base'
7
+ import {
8
+ ApplicationType,
9
+ User
10
+ } from '@things-factory/auth-base'
11
+ import {
12
+ Bizplace,
13
+ getMyBizplace
14
+ } from '@things-factory/biz-base'
15
+ import { logger } from '@things-factory/env'
5
16
  import { MarketplaceStore } from '@things-factory/integration-marketplace'
6
- import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
17
+ import {
18
+ Sellercraft,
19
+ SellercraftStatus
20
+ } from '@things-factory/integration-sellercraft'
7
21
  import { MarketplaceOrder } from '@things-factory/marketplace-base'
8
22
  import {
9
23
  ORDER_STATUS,
@@ -16,7 +30,6 @@ import {
16
30
  import { Setting } from '@things-factory/setting-base'
17
31
  import { Domain } from '@things-factory/shell'
18
32
  import { Inventory } from '@things-factory/warehouse-base'
19
- import { logger } from '@things-factory/env'
20
33
 
21
34
  import {
22
35
  PackingWorksheetController,
@@ -26,7 +39,10 @@ import {
26
39
  } from '../../../../controllers/'
27
40
  import { EcommerceController } from '../../../../controllers/ecommerce'
28
41
  import { WorksheetController } from '../../../../controllers/worksheet-controller'
29
- import { Worksheet, WorksheetDetail } from '../../../../entities'
42
+ import {
43
+ Worksheet,
44
+ WorksheetDetail
45
+ } from '../../../../entities'
30
46
  import { createLmdParcel } from '../../../../utils'
31
47
 
32
48
  export const completeBatchPickingResolver = {
@@ -60,7 +76,7 @@ export async function completeBatchPicking(
60
76
  if (worksheet?.type) {
61
77
  const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
62
78
  const targetInventories: OrderInventory[] = worksheetDetails
63
- .filter(wsd => wsd.status != 'MISSING')
79
+ .filter(wsd => wsd.status != 'MISSING' && wsd.status != 'CANCELLED')
64
80
  .map((wsd: WorksheetDetail) => wsd.targetInventory)
65
81
 
66
82
  const releaseGoods: ReleaseGood[] = worksheetDetails.map(
@@ -1,16 +1,18 @@
1
+ import { EntityManager } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Domain } from '@things-factory/shell'
3
- import { EntityManager } from 'typeorm'
5
+
4
6
  import { SortingWorksheetController } from '../../../../controllers'
5
7
 
6
8
  export const scanProductSortingResolver = {
7
9
  async scanProductSorting(
8
10
  _: any,
9
- { releaseGoodNo, taskNo, productBarcode, serialNumber, toteNo, sortingQty },
11
+ { releaseGoodNo, taskNo, productBarcode, serialNumber, toteNo, sortingQty, productId },
10
12
  context: any
11
13
  ) {
12
14
  const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
13
- await scanProductSorting(tx, domain, user, releaseGoodNo, taskNo, productBarcode, serialNumber, toteNo, sortingQty)
15
+ await scanProductSorting(tx, domain, user, releaseGoodNo, taskNo, productBarcode, serialNumber, toteNo, sortingQty, productId)
14
16
  }
15
17
  }
16
18
 
@@ -23,8 +25,10 @@ export async function scanProductSorting(
23
25
  productBarcode?: string,
24
26
  serialNumber?: string,
25
27
  toteNo?: string,
26
- sortingQty?: number
28
+ sortingQty?: number,
29
+ productId?: string
30
+
27
31
  ) {
28
32
  const worksheetController: SortingWorksheetController = new SortingWorksheetController(tx, domain, user)
29
- await worksheetController.scanProductSorting(releaseGoodNo, taskNo, productBarcode, serialNumber, toteNo, sortingQty)
33
+ await worksheetController.scanProductSorting(releaseGoodNo, taskNo, productBarcode, serialNumber, toteNo, sortingQty, productId)
30
34
  }
@@ -1,6 +1,15 @@
1
- import { getRepository, SelectQueryBuilder } from 'typeorm'
1
+ import {
2
+ getRepository,
3
+ SelectQueryBuilder
4
+ } from 'typeorm'
2
5
 
3
- import { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
6
+ import { ProductBarcode } from '@things-factory/product-base'
7
+ import {
8
+ ORDER_INVENTORY_STATUS,
9
+ ORDER_STATUS,
10
+ OrderInventory,
11
+ ReleaseGood
12
+ } from '@things-factory/sales-base'
4
13
  import { Domain } from '@things-factory/shell'
5
14
 
6
15
  import { WORKSHEET_TYPE } from '../../../constants'
@@ -35,6 +44,8 @@ export const sortingWorksheetResolver = {
35
44
  .addSelect('OI.batch_id', 'batchId')
36
45
  .addSelect('OI.packing_type', 'packingType')
37
46
  .addSelect('OI.packing_size', 'packingSize')
47
+ .addSelect('OI.product_detail_id', 'productDetailId')
48
+ .addSelect('OI.status','status')
38
49
  .addSelect('INV.expiration_date', 'expirationDate')
39
50
  .leftJoin('OI.product', 'PROD')
40
51
  .leftJoin('OI.inventory', 'INV')
@@ -50,11 +61,12 @@ export const sortingWorksheetResolver = {
50
61
  .addGroupBy('OI.batch_id')
51
62
  .addGroupBy('OI.packing_type')
52
63
  .addGroupBy('OI.packing_size')
64
+ .addGroupBy('OI.product_detail_id')
65
+ .addGroupBy('OI.status')
53
66
  .orderBy('PROD.sku', 'ASC')
54
67
 
55
68
  const items: any[] = await qb.getRawMany()
56
-
57
- return {
69
+ let results = {
58
70
  worksheetInfo: {
59
71
  bizplaceName: releaseGood.bizplace.name,
60
72
  partnerDomainId: releaseGood.bizplace?.domain.id,
@@ -65,24 +77,31 @@ export const sortingWorksheetResolver = {
65
77
  refNo3: releaseGood.refNo3,
66
78
  releaseGood
67
79
  },
68
- worksheetDetailInfos: items.map((item: any) => {
69
- return {
70
- batchId: item?.batchId,
71
- productId: item?.productId,
72
- productSku: item?.productSku,
73
- productName: item?.productName,
74
- productDescription: item?.productDescription,
75
- isRequireSerialNumberScanningOutbound: item?.isRequireSerialNumberScanningOutbound,
76
- releaseQty: item.releaseQty,
77
- sortedQty: item.sortedQty,
78
- status: item.status,
79
- expirationDate: item?.expirationDate,
80
- packingType: item?.packingType,
81
- packingSize: item?.packingSize,
82
- binRemarks: item?.binRemarks,
83
- releaseGood
84
- }
85
- })
80
+ worksheetDetailInfos: await Promise.all(
81
+ items.map(async (item: any) => {
82
+ return {
83
+ batchId: item?.batchId,
84
+ productId: item?.productId,
85
+ productSku: item?.productSku,
86
+ productName: item?.productName,
87
+ productDescription: item?.productDescription,
88
+ productBarcodes: await getRepository(ProductBarcode).find({
89
+ where: { productDetail: { id: item.productDetailId } }
90
+ }),
91
+ isRequireSerialNumberScanningOutbound: item?.isRequireSerialNumberScanningOutbound,
92
+ releaseQty: item.releaseQty,
93
+ sortedQty: item.sortedQty,
94
+ status: item.status,
95
+ expirationDate: item?.expirationDate,
96
+ packingType: item?.packingType,
97
+ packingSize: item?.packingSize,
98
+ binRemarks: item?.binRemarks,
99
+ releaseGood
100
+ }
101
+ })
102
+ )
86
103
  }
104
+
105
+ return results
87
106
  }
88
107
  }
@@ -385,6 +385,7 @@ export const Mutation = /* GraphQL */ `
385
385
  serialNumber: String
386
386
  toteNo: String
387
387
  sortingQty: Int
388
+ productId: String
388
389
  ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
389
390
 
390
391
  packing (
@@ -12,6 +12,7 @@ export const WorksheetDetailInfo = gql`
12
12
  productName: String
13
13
  productSku: String
14
14
  productId: String
15
+ productBarcodes: [ProductBarcode]
15
16
  productDescription: String
16
17
  packingType: String
17
18
  packingSize: Float