@things-factory/worksheet-base 4.3.82 → 4.3.87

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 (97) hide show
  1. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +49 -49
  2. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  3. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +4 -2
  4. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/loading-worksheet-controller.js +4 -10
  6. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/outbound/packing-worksheet-controller.js +20 -22
  8. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/picking-worksheet-controller.js +154 -71
  10. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +14 -12
  12. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/vas/vas-worksheet-controller.js +2 -1
  14. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/worksheet-controller.js +37 -2
  16. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  17. package/dist-server/entities/worksheet-detail.js +2 -1
  18. package/dist-server/entities/worksheet-detail.js.map +1 -1
  19. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +0 -6
  20. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  21. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +2 -1
  22. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  23. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +6 -6
  24. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  25. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +1 -2
  26. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  27. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +28 -67
  28. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  29. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +8 -23
  30. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  31. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +7 -30
  32. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  33. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +8 -23
  34. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  35. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +8 -25
  36. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  37. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +12 -59
  38. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  39. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +25 -51
  40. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  41. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +2 -2
  42. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  43. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +118 -262
  44. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  45. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +38 -36
  46. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
  47. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +4 -7
  48. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -1
  49. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +2 -3
  50. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  51. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +4 -6
  52. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  53. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +14 -39
  54. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  55. package/dist-server/graphql/resolvers/worksheet/transfer.js +9 -9
  56. package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -1
  57. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +17 -17
  58. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  59. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +4 -4
  60. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
  61. package/dist-server/graphql/types/worksheet-detail/index.js +0 -1
  62. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  63. package/dist-server/utils/inventory-util.js +98 -1
  64. package/dist-server/utils/inventory-util.js.map +1 -1
  65. package/package.json +17 -17
  66. package/server/controllers/inbound/unloading-worksheet-controller.ts +70 -49
  67. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +4 -2
  68. package/server/controllers/outbound/loading-worksheet-controller.ts +3 -9
  69. package/server/controllers/outbound/packing-worksheet-controller.ts +31 -23
  70. package/server/controllers/outbound/picking-worksheet-controller.ts +219 -88
  71. package/server/controllers/outbound/sorting-worksheet-controller.ts +12 -12
  72. package/server/controllers/vas/vas-worksheet-controller.ts +2 -2
  73. package/server/controllers/worksheet-controller.ts +49 -5
  74. package/server/entities/worksheet-detail.ts +5 -0
  75. package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +0 -6
  76. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +2 -1
  77. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +2 -2
  78. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +1 -3
  79. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +33 -77
  80. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +9 -26
  81. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +9 -34
  82. package/server/graphql/resolvers/worksheet/packing/packing.ts +9 -26
  83. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +9 -28
  84. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +13 -68
  85. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +30 -60
  86. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +2 -2
  87. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +130 -288
  88. package/server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts +42 -41
  89. package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +10 -30
  90. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +2 -3
  91. package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +4 -5
  92. package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +15 -45
  93. package/server/graphql/resolvers/worksheet/transfer.ts +16 -18
  94. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +2 -3
  95. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +1 -4
  96. package/server/graphql/types/worksheet-detail/index.ts +0 -1
  97. package/server/utils/inventory-util.ts +126 -1
@@ -22,8 +22,7 @@ import {
22
22
  InventoryNoGenerator,
23
23
  Location,
24
24
  LOCATION_TYPE,
25
- Warehouse,
26
- generateInventoryHistory
25
+ Warehouse
27
26
  } from '@things-factory/warehouse-base'
28
27
 
29
28
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
@@ -37,6 +36,7 @@ import {
37
36
  RefOrderType
38
37
  } from '../../graphql/resolvers/worksheet/vas-transactions'
39
38
  import { PackingUnits } from '../../graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging'
39
+ import { generateInventoryHistory } from '../../utils'
40
40
  import { ReferenceOrderType, WorksheetController } from '../worksheet-controller'
41
41
 
42
42
  type CompleteTransactionType = (trxMgr: EntityManager, orderVas: OrderVas, user: User) => Promise<void>
@@ -19,11 +19,11 @@ import {
19
19
  VasOrder
20
20
  } from '@things-factory/sales-base'
21
21
  import { Domain } from '@things-factory/shell'
22
- import { Inventory, INVENTORY_STATUS, InventoryItem, Pallet, generateInventoryHistory } from '@things-factory/warehouse-base'
22
+ import { Inventory, INVENTORY_STATUS, InventoryItem, Pallet } from '@things-factory/warehouse-base'
23
23
 
24
24
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'
25
25
  import { Worksheet, WorksheetDetail } from '../entities'
26
- import { WorksheetNoGenerator } from '../utils'
26
+ import { generateInventoryHistory, WorksheetNoGenerator } from '../utils'
27
27
 
28
28
  export type ReferenceOrderType = ArrivalNotice | ReleaseGood | VasOrder | InventoryCheck | DeliveryOrder | ReturnOrder
29
29
  export type OrderTargetTypes = OrderProduct | OrderInventory | OrderVas
@@ -393,7 +393,7 @@ export class WorksheetController {
393
393
  let existingWorksheet: Worksheet
394
394
  try {
395
395
  existingWorksheet = await this.findWorksheetByRefOrder(refOrder, type)
396
- } catch (e) {}
396
+ } catch (e) { }
397
397
 
398
398
  if (existingWorksheet)
399
399
  throw new Error(
@@ -1007,9 +1007,11 @@ export class WorksheetController {
1007
1007
  async getChildQty(
1008
1008
  productDetails: ProductDetail[],
1009
1009
  productBarcode: string,
1010
- orderProductDetail: ProductDetail,
1011
- scannedProductDetail: ProductDetail
1010
+ orderProductDetail: ProductDetail
1012
1011
  ): Promise<number> {
1012
+ const scannedProductDetail: ProductDetail = productDetails.find(
1013
+ (productDetail: ProductDetail) => productDetail.gtin === productBarcode
1014
+ )
1013
1015
  let hasChildRelation: boolean = Boolean(scannedProductDetail?.childProductDetail)
1014
1016
  let hasMatchingChild: boolean
1015
1017
  let childQty: number
@@ -1052,6 +1054,48 @@ export class WorksheetController {
1052
1054
  return childQty
1053
1055
  }
1054
1056
 
1057
+ public async getDirectQty(
1058
+ productDetail: ProductDetail,
1059
+ productBarcode: string,
1060
+ qty: number
1061
+ ): Promise<any> {
1062
+ try {
1063
+ console.time('getDirectQty')
1064
+ let results = await this.trxMgr.query(`
1065
+ WITH RECURSIVE cte as (
1066
+ select * from (
1067
+ select pd.product_id as "productId", id, pd.packing_size as "packingSize",
1068
+ pd.packing_type as "packingType", pd.uom as "uom", (pd.uom_value * $2::float) as "uomValue", $2::float as "qty", pd.gtin
1069
+ from product_details pd
1070
+ where pd.id = $1
1071
+ ) as dt
1072
+ union all
1073
+ select pd.product_id as "productId", pd.id, pd.packing_size as "packingSize",
1074
+ pd.packing_type as "packingType", pd.uom,
1075
+ dt1.qty * pd.packing_size * pd.uom_value as "uomValue", dt1.qty * pd.packing_size as "qty", pd.gtin
1076
+ from product_details pd
1077
+ inner join cte dt1 on dt1.id = pd.child_product_detail_id
1078
+ where pd.deleted_at is null
1079
+ )
1080
+ select * from cte where gtin = $3
1081
+ `, [
1082
+ productDetail.id,
1083
+ qty,
1084
+ productBarcode
1085
+ ])
1086
+
1087
+ if (results.length <= 0)
1088
+ throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))
1089
+
1090
+ console.timeEnd('getDirectQty')
1091
+ return results[0]
1092
+ } catch (error) {
1093
+ throw error
1094
+ }
1095
+ }
1096
+
1097
+
1098
+
1055
1099
  /**
1056
1100
  * @summary Check for product child qty at any scanned level
1057
1101
  * @description It will check every level of product detail by comparing scanned level and GAN registered level.
@@ -16,6 +16,11 @@ import { Worksheet } from './worksheet'
16
16
  'ix_worksheet-detail_1',
17
17
  (worksheetDetail: WorksheetDetail) => [worksheetDetail.targetInventory]
18
18
  )
19
+ @Index(
20
+ 'ix_worksheet-detail_2',
21
+ (worksheetDetail: WorksheetDetail) => [worksheetDetail.id],
22
+ { unique: true }
23
+ )
19
24
  export class WorksheetDetail {
20
25
  @PrimaryGeneratedColumn('uuid')
21
26
  id: string
@@ -32,7 +32,6 @@ export const batchPickingWorksheetResolver = {
32
32
  .addSelect('"PROD".name', 'productName')
33
33
  .addSelect('"PROD".sku', 'productSku')
34
34
  .addSelect('"PROD".description', 'productDescription')
35
- .addSelect('"PROD_DET".id', 'productDetailId')
36
35
  .addSelect('"INV".qty', 'qty')
37
36
  .addSelect('"INV".packing_type', 'packingType')
38
37
  .addSelect('"INV".packing_size', 'packingSize')
@@ -48,7 +47,6 @@ export const batchPickingWorksheetResolver = {
48
47
  .leftJoin('WSD.targetInventory', 'T_INV')
49
48
  .leftJoin('T_INV.inventory', 'INV')
50
49
  .leftJoin('T_INV.product', 'PROD')
51
- .leftJoin('T_INV.productDetail', 'PROD_DET')
52
50
  .leftJoin('T_INV.binLocation', 'BIN_LOC')
53
51
  .leftJoin('INV.location', 'LOC')
54
52
  .where('"WSD"."worksheet_id" = :worksheetId', { worksheetId: worksheet.id })
@@ -66,7 +64,6 @@ export const batchPickingWorksheetResolver = {
66
64
  .addGroupBy('"PROD".name')
67
65
  .addGroupBy('"PROD".sku')
68
66
  .addGroupBy('"PROD".description')
69
- .addGroupBy('"PROD_DET".id')
70
67
  .addGroupBy('"T_INV".batch_id')
71
68
  .addGroupBy('"T_INV".packing_type')
72
69
  .addGroupBy('BIN_LOC.name')
@@ -129,9 +126,6 @@ export const batchPickingWorksheetResolver = {
129
126
  name: item?.productName,
130
127
  description: item?.productDescription,
131
128
  sku: item?.productSku
132
- },
133
- productDetail: {
134
- id: item?.productDetailId
135
129
  }
136
130
  }
137
131
  }
@@ -11,9 +11,10 @@ import {
11
11
  ReleaseGood
12
12
  } from '@things-factory/sales-base'
13
13
  import { Domain } from '@things-factory/shell'
14
- import { Inventory, INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, Location, generateInventoryHistory } from '@things-factory/warehouse-base'
14
+ import { Inventory, INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, Location } from '@things-factory/warehouse-base'
15
15
 
16
16
  import { Worksheet, WorksheetDetail } from '../../../entities'
17
+ import { generateInventoryHistory } from '../../../utils'
17
18
 
18
19
  export const confirmCancellationReleaseOrder = {
19
20
  async confirmCancellationReleaseOrder(_: any, { name }, context: any) {
@@ -4,12 +4,12 @@ import { User } from '@things-factory/auth-base'
4
4
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
5
  import { InventoryCheck, ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory } from '@things-factory/sales-base'
6
6
  import { Domain } from '@things-factory/shell'
7
- import { Inventory, INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, Location, generateInventoryHistory } from '@things-factory/warehouse-base'
7
+ import { Inventory, INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, Location } from '@things-factory/warehouse-base'
8
8
 
9
9
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
10
10
  import { SellercraftController } from '../../../controllers'
11
11
  import { Worksheet, WorksheetDetail } from '../../../entities'
12
- import { switchLocationStatus } from '../../../utils'
12
+ import { generateInventoryHistory, switchLocationStatus } from '../../../utils'
13
13
 
14
14
  export const cycleCountAdjustmentResolver = {
15
15
  async cycleCountAdjustment(_: any, { cycleCountNo }, context: any) {
@@ -40,7 +40,6 @@ export const inventoriesByPalletResolver = {
40
40
  qb.leftJoinAndSelect('iv.domain', 'domain')
41
41
  .leftJoinAndSelect('iv.bizplace', 'bizplace')
42
42
  .leftJoinAndSelect('iv.product', 'product')
43
- .leftJoinAndSelect('iv.productDetail', 'productDetail')
44
43
  .leftJoinAndSelect('iv.warehouse', 'warehouse')
45
44
  .leftJoinAndSelect('iv.location', 'location')
46
45
  .leftJoinAndSelect('iv.creator', 'creator')
@@ -135,8 +134,7 @@ export const inventoriesByPalletResolver = {
135
134
  productName: item.product.name,
136
135
  productSKU: item.product.sku,
137
136
  productBrand: item.product.brand,
138
- productId: item.product.id,
139
- productDetailId: item.productDetail.id
137
+ productId: item.product.id
140
138
  }
141
139
  })
142
140
  )
@@ -1,6 +1,6 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { Bizplace, Company } from '@things-factory/biz-base'
5
5
  import { FulfillmentCenter } from '@things-factory/integration-fulfillment'
6
6
  import { Sftp, SftpAPI } from '@things-factory/integration-sftp'
@@ -58,86 +58,42 @@ export async function completeLoading(
58
58
  const warehouseCompanyBizplaces: Bizplace[] = warehouseBizplaces.filter(biz => biz.domain.extType == 'company')
59
59
  const warehouseCompanyDomain: Domain = warehouseCompanyBizplaces[0].domain
60
60
 
61
- const orderSource: string = releaseGood.source
62
- switch (orderSource) {
63
- case ApplicationType.SFTP:
64
- const customerDomain: Domain = releaseGood.bizplace.domain
65
- const fulfillmentCenter: FulfillmentCenter = await tx
66
- .getRepository(FulfillmentCenter)
67
- .findOne({ domain: warehouseCompanyDomain, centerId: domain.subdomain, status: 'active' })
68
-
69
- if (fulfillmentCenter) {
70
- let customerAvailableSftp: Sftp = await tx.getRepository(Sftp).findOne({
71
- where: { domain: customerDomain, status: 'ACTIVE', fulfillmentCenter }
61
+ const customerDomain: Domain = releaseGood.bizplace.domain
62
+ const fulfillmentCenter: FulfillmentCenter = await tx
63
+ .getRepository(FulfillmentCenter)
64
+ .findOne({ domain: warehouseCompanyDomain, centerId: domain.subdomain, status: 'active' })
65
+
66
+ if (fulfillmentCenter) {
67
+ let customerAvailableSftp: Sftp = await tx.getRepository(Sftp).findOne({
68
+ where: { domain: customerDomain, status: 'ACTIVE', fulfillmentCenter }
69
+ })
70
+ if (customerAvailableSftp) {
71
+ const responseFileTypes: any = JSON.parse(customerAvailableSftp.responseFileTypes)
72
+
73
+ let inventoryItems: InventoryItem[] = await tx.getRepository(InventoryItem).find({
74
+ where: { domain, outboundOrderId: releaseGood.id }
75
+ })
76
+
77
+ // if (responseFileTypes.enableShipment) {
78
+ // let shipmentResult: Sftp = await SftpAPI.createShipment(customerAvailableSftp, {
79
+ // releaseGood,
80
+ // orderInventories: targetInventories,
81
+ // sftp: customerAvailableSftp
82
+ // })
83
+ // customerAvailableSftp = await tx.getRepository(Sftp).save(shipmentResult)
84
+ // }
85
+
86
+ if (responseFileTypes.enableSerialNumber) {
87
+ let snResult: Sftp = await SftpAPI.createSerialNumber(customerAvailableSftp, {
88
+ releaseGood,
89
+ inventoryItems,
90
+ sftp: customerAvailableSftp
72
91
  })
73
- if (customerAvailableSftp) {
74
- const responseFileTypes: any = JSON.parse(customerAvailableSftp.responseFileTypes)
75
-
76
- let inventoryItems: InventoryItem[] = await tx.getRepository(InventoryItem).find({
77
- where: { domain, outboundOrderId: releaseGood.id }
78
- })
79
-
80
- // if (responseFileTypes.enableShipment) {
81
- // let shipmentResult: Sftp = await SftpAPI.createShipment(customerAvailableSftp, {
82
- // releaseGood,
83
- // orderInventories: targetInventories,
84
- // sftp: customerAvailableSftp
85
- // })
86
- // customerAvailableSftp = await tx.getRepository(Sftp).save(shipmentResult)
87
- // }
88
-
89
- if (responseFileTypes.enableSerialNumber) {
90
- let snResult: Sftp = await SftpAPI.createSerialNumber(customerAvailableSftp, {
91
- releaseGood,
92
- inventoryItems,
93
- sftp: customerAvailableSftp
94
- })
95
- customerAvailableSftp = await tx.getRepository(Sftp).save(snResult)
96
- }
97
- }
92
+ customerAvailableSftp = await tx.getRepository(Sftp).save(snResult)
98
93
  }
99
- break
100
-
101
- default:
102
- break
94
+ }
103
95
  }
104
96
 
105
- // const customerDomain: Domain = releaseGood.bizplace.domain
106
- // const fulfillmentCenter: FulfillmentCenter = await tx
107
- // .getRepository(FulfillmentCenter)
108
- // .findOne({ domain: warehouseCompanyDomain, centerId: domain.subdomain, status: 'active' })
109
-
110
- // if (fulfillmentCenter) {
111
- // let customerAvailableSftp: Sftp = await tx.getRepository(Sftp).findOne({
112
- // where: { domain: customerDomain, status: 'ACTIVE', fulfillmentCenter }
113
- // })
114
- // if (customerAvailableSftp) {
115
- // const responseFileTypes: any = JSON.parse(customerAvailableSftp.responseFileTypes)
116
-
117
- // let inventoryItems: InventoryItem[] = await tx.getRepository(InventoryItem).find({
118
- // where: { domain, outboundOrderId: releaseGood.id }
119
- // })
120
-
121
- // // if (responseFileTypes.enableShipment) {
122
- // // let shipmentResult: Sftp = await SftpAPI.createShipment(customerAvailableSftp, {
123
- // // releaseGood,
124
- // // orderInventories: targetInventories,
125
- // // sftp: customerAvailableSftp
126
- // // })
127
- // // customerAvailableSftp = await tx.getRepository(Sftp).save(shipmentResult)
128
- // // }
129
-
130
- // if (responseFileTypes.enableSerialNumber) {
131
- // let snResult: Sftp = await SftpAPI.createSerialNumber(customerAvailableSftp, {
132
- // releaseGood,
133
- // inventoryItems,
134
- // sftp: customerAvailableSftp
135
- // })
136
- // customerAvailableSftp = await tx.getRepository(Sftp).save(snResult)
137
- // }
138
- // }
139
- // }
140
-
141
97
  await worksheetController.completeLoading(releaseGoodNo)
142
98
 
143
99
  if (remainInventories.length) {
@@ -1,6 +1,6 @@
1
1
  import { EntityManager, getManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
5
  import { ReleaseGood } from '@things-factory/sales-base'
6
6
  import { Domain } from '@things-factory/shell'
@@ -38,32 +38,15 @@ export async function activatePacking(
38
38
  const worksheet = await worksheetController.activatePacking(worksheetNo)
39
39
  let releaseGood: ReleaseGood = worksheet.releaseGood
40
40
 
41
- const orderSource: string = releaseGood.source
42
- switch (orderSource) {
43
- case ApplicationType.SELLERCRAFT:
44
- const sellercraft: Sellercraft = await tx
45
- .getRepository(Sellercraft)
46
- .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
41
+ if (releaseGood.type == 'b2c') {
42
+ const sellercraft: Sellercraft = await tx
43
+ .getRepository(Sellercraft)
44
+ .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
47
45
 
48
- if (sellercraft) {
49
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
50
- sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
51
- }
52
- break
53
-
54
- default:
55
- break
46
+ if (sellercraft) {
47
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
48
+ sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
49
+ }
56
50
  }
57
-
58
- // if (releaseGood.type == 'b2c') {
59
- // const sellercraft: Sellercraft = await tx
60
- // .getRepository(Sellercraft)
61
- // .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
62
-
63
- // if (sellercraft) {
64
- // const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
65
- // sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
66
- // }
67
- // }
68
51
  return worksheet
69
52
  }
@@ -1,8 +1,9 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { Bizplace, getMyBizplace } from '@things-factory/biz-base'
5
5
  import { MarketplaceStore } from '@things-factory/integration-marketplace'
6
+ import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
6
7
  import { MarketplaceOrder } from '@things-factory/marketplace-base'
7
8
  import { ReleaseGood } from '@things-factory/sales-base'
8
9
  import { Domain } from '@things-factory/shell'
@@ -28,9 +29,12 @@ export const completePackingResolver = {
28
29
  ]
29
30
  })
30
31
 
31
- const orderSource: string = releaseGood.source
32
- switch (orderSource) {
33
- case ApplicationType.MMS:
32
+ if (releaseGood.type === 'b2c') {
33
+ const sellercraft: Sellercraft = await tx
34
+ .getRepository(Sellercraft)
35
+ .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
36
+
37
+ if (!sellercraft) {
34
38
  const companyDomain: Domain = releaseGood.bizplace.company.domain
35
39
  const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
36
40
  where: { orderNo: releaseGood.refNo, domain: companyDomain },
@@ -48,38 +52,9 @@ export const completePackingResolver = {
48
52
  const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
49
53
  await ecommerceCtrl.createOrderShip(releaseGood, marketplaceStore, marketplaceOrder, companyDomain)
50
54
  }
51
- break
52
-
53
- default:
54
- break
55
+ }
55
56
  }
56
57
 
57
- // if (releaseGood.type === 'b2c') {
58
- // const sellercraft: Sellercraft = await tx
59
- // .getRepository(Sellercraft)
60
- // .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
61
-
62
- // if (!sellercraft) {
63
- // const companyDomain: Domain = releaseGood.bizplace.company.domain
64
- // const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
65
- // where: { orderNo: releaseGood.refNo, domain: companyDomain },
66
- // relations: [
67
- // 'marketplaceOrderItems',
68
- // 'marketplaceOrderItems.marketplaceOrderShippingItems',
69
- // 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
70
- // 'marketplaceStore',
71
- // 'marketplaceStore.marketplaceDistributors'
72
- // ]
73
- // })
74
- // const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
75
-
76
- // if (marketplaceStore.isAutoUpdateShipment) {
77
- // const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
78
- // await ecommerceCtrl.createOrderShip(releaseGood, marketplaceStore, marketplaceOrder, companyDomain)
79
- // }
80
- // }
81
- // }
82
-
83
58
  const bizplace: Bizplace = await getMyBizplace(domain, user)
84
59
  const worksheetController: WorksheetController = new WorksheetController(tx, domain, user)
85
60
  await worksheetController.notifyToCustomer(bizplace, {
@@ -1,6 +1,6 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
5
  import { ReleaseGood } from '@things-factory/sales-base'
6
6
  import { Domain } from '@things-factory/shell'
@@ -29,31 +29,14 @@ export async function packing(
29
29
  let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
30
30
  const worksheet: Worksheet = worksheetDetail.worksheet
31
31
 
32
- const orderSource: string = releaseGood.source
33
- switch (orderSource) {
34
- case ApplicationType.SELLERCRAFT:
35
- const sellercraft: Sellercraft = await tx
36
- .getRepository(Sellercraft)
37
- .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
32
+ if (releaseGood.type === 'b2c' && !releaseGood?.airwayBill) {
33
+ const sellercraft: Sellercraft = await tx
34
+ .getRepository(Sellercraft)
35
+ .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
38
36
 
39
- if (sellercraft) {
40
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
41
- await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
42
- }
43
- break
44
-
45
- default:
46
- break
37
+ if (sellercraft) {
38
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
39
+ await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
40
+ }
47
41
  }
48
-
49
- // if (releaseGood.type === 'b2c' && !releaseGood?.airwayBill) {
50
- // const sellercraft: Sellercraft = await tx
51
- // .getRepository(Sellercraft)
52
- // .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
53
-
54
- // if (sellercraft) {
55
- // const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
56
- // await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
57
- // }
58
- // }
59
42
  }
@@ -1,6 +1,6 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
5
  import { ReleaseGood } from '@things-factory/sales-base'
6
6
  import { Domain } from '@things-factory/shell'
@@ -34,36 +34,17 @@ export async function scanProductPacking(
34
34
  let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
35
35
  const worksheet: Worksheet = worksheetDetail.worksheet
36
36
 
37
- const orderSource: string = releaseGood.source
38
- switch (orderSource) {
39
- case ApplicationType.SELLERCRAFT:
40
- if (!releaseGood?.airwayBill) {
41
- const sellercraft: Sellercraft = await tx
42
- .getRepository(Sellercraft)
43
- .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
37
+ if (releaseGood.type === 'b2c' && !releaseGood?.airwayBill) {
38
+ const sellercraft: Sellercraft = await tx
39
+ .getRepository(Sellercraft)
40
+ .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
44
41
 
45
- if (sellercraft) {
46
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
47
- sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
48
- }
49
- }
50
-
51
- break
52
-
53
- default:
54
- break
42
+ if (sellercraft) {
43
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
44
+ sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
45
+ }
55
46
  }
56
47
 
57
- // if (releaseGood.type === 'b2c' && !releaseGood?.airwayBill) {
58
- // const sellercraft: Sellercraft = await tx
59
- // .getRepository(Sellercraft)
60
- // .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
61
-
62
- // if (sellercraft) {
63
- // const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
64
- // sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
65
- // }
66
- // }
67
48
  } catch (error) {
68
49
  throw error
69
50
  }
@@ -1,6 +1,6 @@
1
- import { EntityManager, getManager, SelectQueryBuilder } from 'typeorm'
1
+ import { EntityManager, SelectQueryBuilder, getManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { logger } from '@things-factory/env'
5
5
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
6
6
  import {
@@ -10,7 +10,6 @@ import {
10
10
  MarketplaceOrderShippingItem
11
11
  } from '@things-factory/marketplace-base'
12
12
  import { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
13
- import { PartnerSetting, Setting } from '@things-factory/setting-base'
14
13
  import { Domain } from '@things-factory/shell'
15
14
  import { Inventory, Location } from '@things-factory/warehouse-base'
16
15
 
@@ -18,6 +17,7 @@ import { WORKSHEET_TYPE } from '../../../constants'
18
17
  import { PackingWorksheetController, SellercraftController } from '../../../controllers'
19
18
  import { Worksheet, WorksheetDetail } from '../../../entities'
20
19
  import { fetchExecutingWorksheet } from '../../../utils'
20
+ import { PartnerSetting, Setting } from '@things-factory/setting-base'
21
21
 
22
22
  export const packingWorksheetResolver = {
23
23
  async packingWorksheet(_: any, { releaseGoodNo }, context: any) {
@@ -146,20 +146,16 @@ export const packingWorksheetResolver = {
146
146
  let shippingProvider: string
147
147
  let marketplaceStatus: string
148
148
 
149
- const orderSource: string = releaseGood.source
150
- switch (orderSource) {
151
- case ApplicationType.SELLERCRAFT:
152
- const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
153
- domain: worksheet.bizplace.domain,
154
- status: SellercraftStatus.ACTIVE
155
- })
156
-
157
- if (sellercraft) {
158
- getSellercraftDocument(sellercraft, releaseGood, domain, user)
159
- }
160
- break
149
+ if (releaseGood.type === 'b2c') {
150
+ const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
151
+ domain: worksheet.bizplace.domain,
152
+ status: SellercraftStatus.ACTIVE
153
+ })
161
154
 
162
- case ApplicationType.MMS:
155
+ if (sellercraft) {
156
+ // asynchronously get document from sellercraft
157
+ getSellercraftDocument(sellercraft, releaseGood, domain, user)
158
+ } else {
163
159
  marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
164
160
  where: { orderNo: releaseGood.refNo },
165
161
  relations: [
@@ -195,60 +191,9 @@ export const packingWorksheetResolver = {
195
191
 
196
192
  marketplaceStore = marketplaceOrder?.marketplaceStore
197
193
  marketplaceStatus = marketplaceOrder?.status
198
- break
199
-
200
- default:
201
- break
194
+ }
202
195
  }
203
196
 
204
- // if (releaseGood.type === 'b2c') {
205
- // const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
206
- // domain: worksheet.bizplace.domain,
207
- // status: SellercraftStatus.ACTIVE
208
- // })
209
-
210
- // if (sellercraft) {
211
- // // asynchronously get document from sellercraft
212
- // getSellercraftDocument(sellercraft, releaseGood, domain, user)
213
- // } else {
214
- // marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
215
- // where: { orderNo: releaseGood.refNo },
216
- // relations: [
217
- // 'domain',
218
- // 'marketplaceStore',
219
- // 'marketplaceOrderItems',
220
- // 'marketplaceOrderItems.marketplaceOrderShippingItems',
221
- // 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
222
- // ]
223
- // })
224
-
225
- // if (!marketplaceOrder) {
226
- // throw new Error('Failed to retrieve ecommerce information, kindly contact our support team for this issue.')
227
- // }
228
-
229
- // let marketplaceOrderShipping: MarketplaceOrderShipping
230
- // if (marketplaceOrder.isSplitted) {
231
- // marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({
232
- // where: { subOrderNoRef: worksheet.releaseGood.refNo2 }
233
- // })
234
- // } else {
235
- // marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({
236
- // where: { orderNoRef: worksheet.releaseGood.refNo }
237
- // })
238
- // }
239
-
240
- // trackingNo = marketplaceOrderShipping.ownTrackingNo
241
- // ? marketplaceOrderShipping.ownTrackingNo
242
- // : marketplaceOrderShipping.trackingNo
243
- // shippingProvider = marketplaceOrderShipping.ownTransporter
244
- // ? marketplaceOrderShipping.ownTransporter
245
- // : marketplaceOrderShipping.transporter
246
-
247
- // marketplaceStore = marketplaceOrder?.marketplaceStore
248
- // marketplaceStatus = marketplaceOrder?.status
249
- // }
250
- // }
251
-
252
197
  return {
253
198
  worksheetInfo: {
254
199
  releaseGood,