@things-factory/worksheet-base 4.3.77 → 4.3.79-alpha.1

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 (101) hide show
  1. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +3 -3
  2. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  3. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +2 -4
  4. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/loading-worksheet-controller.js +10 -4
  6. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/outbound/packing-worksheet-controller.js +28 -14
  8. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/picking-worksheet-controller.js +40 -48
  10. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +12 -14
  12. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/vas/vas-worksheet-controller.js +1 -2
  14. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/worksheet-controller.js +16 -4
  16. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  17. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +6 -0
  18. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  19. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +1 -2
  20. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  21. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +6 -6
  22. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  23. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +3 -3
  24. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -1
  25. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +4 -4
  26. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
  27. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +2 -1
  28. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  29. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +67 -28
  30. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  31. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +23 -8
  32. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  33. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +30 -7
  34. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  35. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +23 -8
  36. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  37. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +25 -8
  38. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  39. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +112 -22
  40. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  41. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  42. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +51 -25
  43. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  44. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +2 -2
  45. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  46. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +266 -140
  47. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  48. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +3 -2
  49. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  50. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +39 -14
  51. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  52. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  53. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +17 -17
  54. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  55. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +4 -4
  56. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
  57. package/dist-server/graphql/types/worksheet/index.js +5 -2
  58. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  59. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js +11 -0
  60. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js.map +1 -0
  61. package/dist-server/graphql/types/worksheet-detail/index.js +1 -0
  62. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  63. package/dist-server/utils/inventory-util.js +1 -98
  64. package/dist-server/utils/inventory-util.js.map +1 -1
  65. package/dist-server/utils/worksheet-util.js +3 -1
  66. package/dist-server/utils/worksheet-util.js.map +1 -1
  67. package/package.json +17 -17
  68. package/server/controllers/inbound/unloading-worksheet-controller.ts +5 -4
  69. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +2 -4
  70. package/server/controllers/outbound/loading-worksheet-controller.ts +9 -3
  71. package/server/controllers/outbound/packing-worksheet-controller.ts +30 -19
  72. package/server/controllers/outbound/picking-worksheet-controller.ts +39 -60
  73. package/server/controllers/outbound/sorting-worksheet-controller.ts +12 -12
  74. package/server/controllers/vas/vas-worksheet-controller.ts +2 -2
  75. package/server/controllers/worksheet-controller.ts +29 -8
  76. package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +6 -0
  77. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +1 -2
  78. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +2 -2
  79. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.ts +3 -7
  80. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +5 -4
  81. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +3 -1
  82. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +77 -33
  83. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +26 -9
  84. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +34 -9
  85. package/server/graphql/resolvers/worksheet/packing/packing.ts +26 -9
  86. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +28 -9
  87. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +128 -23
  88. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +1 -1
  89. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +60 -30
  90. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +2 -2
  91. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +288 -149
  92. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +3 -2
  93. package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +45 -15
  94. package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +1 -0
  95. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +3 -2
  96. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +4 -1
  97. package/server/graphql/types/worksheet/index.ts +5 -2
  98. package/server/graphql/types/worksheet/multiple-release-good-worksheet.ts +8 -0
  99. package/server/graphql/types/worksheet-detail/index.ts +1 -0
  100. package/server/utils/inventory-util.ts +1 -126
  101. package/server/utils/worksheet-util.ts +3 -1
@@ -1,4 +1,4 @@
1
- import { EntityManager, EntitySchema, Equal, FindOneOptions, In, Not } from 'typeorm'
1
+ import { EntityManager, EntitySchema, Equal, FindOneOptions, In, Not, getRepository } from 'typeorm'
2
2
 
3
3
  import { Role, User } from '@things-factory/auth-base'
4
4
  import { Bizplace, getDomainUsers } from '@things-factory/biz-base'
@@ -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 } from '@things-factory/warehouse-base'
22
+ import { Inventory, INVENTORY_STATUS, InventoryItem, Pallet, generateInventoryHistory } 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 { generateInventoryHistory, WorksheetNoGenerator } from '../utils'
26
+ import { WorksheetNoGenerator } from '../utils'
27
27
 
28
28
  export type ReferenceOrderType = ArrivalNotice | ReleaseGood | VasOrder | InventoryCheck | DeliveryOrder | ReturnOrder
29
29
  export type OrderTargetTypes = OrderProduct | OrderInventory | OrderVas
@@ -489,7 +489,11 @@ export class WorksheetController {
489
489
  * @description
490
490
  * Update reference order like (ArrivalNotice, ReleaseGood, VasOrder, InventoryCheck)
491
491
  */
492
- async updateRefOrder(refOrder: ReferenceOrderType, entitySchema?: EntitySchema): Promise<any> {
492
+ async updateRefOrder(
493
+ refOrder: ReferenceOrderType,
494
+ entitySchema?: EntitySchema,
495
+ currentStatus?: string
496
+ ): Promise<any> {
493
497
  if (!entitySchema) {
494
498
  if (refOrder instanceof ArrivalNotice) {
495
499
  entitySchema = ArrivalNotice
@@ -507,6 +511,25 @@ export class WorksheetController {
507
511
  if (!refOrder.id) throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)
508
512
  if (!refOrder.updater?.id) refOrder = this.setStamp(refOrder)
509
513
 
514
+ if (currentStatus && entitySchema == ReleaseGood) {
515
+
516
+ let res = await getRepository(entitySchema).query(
517
+ `
518
+ update release_goods
519
+ set status = $1
520
+ where id = $2
521
+ and status = $3
522
+ returning id
523
+ `,
524
+ [refOrder.status, refOrder.id, currentStatus]
525
+ )
526
+
527
+ if (res[1] == 0) {
528
+ this.trxMgr.queryRunner.rollbackTransaction()
529
+ throw new Error('Worksheet has already been created')
530
+ }
531
+ }
532
+
510
533
  return await this.trxMgr.getRepository(entitySchema).save(refOrder)
511
534
  }
512
535
 
@@ -984,11 +1007,9 @@ export class WorksheetController {
984
1007
  async getChildQty(
985
1008
  productDetails: ProductDetail[],
986
1009
  productBarcode: string,
987
- orderProductDetail: ProductDetail
1010
+ orderProductDetail: ProductDetail,
1011
+ scannedProductDetail: ProductDetail
988
1012
  ): Promise<number> {
989
- const scannedProductDetail: ProductDetail = productDetails.find(
990
- (productDetail: ProductDetail) => productDetail.gtin === productBarcode
991
- )
992
1013
  let hasChildRelation: boolean = Boolean(scannedProductDetail?.childProductDetail)
993
1014
  let hasMatchingChild: boolean
994
1015
  let childQty: number
@@ -32,6 +32,7 @@ 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')
35
36
  .addSelect('"INV".qty', 'qty')
36
37
  .addSelect('"INV".packing_type', 'packingType')
37
38
  .addSelect('"INV".packing_size', 'packingSize')
@@ -47,6 +48,7 @@ export const batchPickingWorksheetResolver = {
47
48
  .leftJoin('WSD.targetInventory', 'T_INV')
48
49
  .leftJoin('T_INV.inventory', 'INV')
49
50
  .leftJoin('T_INV.product', 'PROD')
51
+ .leftJoin('T_INV.productDetail', 'PROD_DET')
50
52
  .leftJoin('T_INV.binLocation', 'BIN_LOC')
51
53
  .leftJoin('INV.location', 'LOC')
52
54
  .where('"WSD"."worksheet_id" = :worksheetId', { worksheetId: worksheet.id })
@@ -64,6 +66,7 @@ export const batchPickingWorksheetResolver = {
64
66
  .addGroupBy('"PROD".name')
65
67
  .addGroupBy('"PROD".sku')
66
68
  .addGroupBy('"PROD".description')
69
+ .addGroupBy('"PROD_DET".id')
67
70
  .addGroupBy('"T_INV".batch_id')
68
71
  .addGroupBy('"T_INV".packing_type')
69
72
  .addGroupBy('BIN_LOC.name')
@@ -126,6 +129,9 @@ export const batchPickingWorksheetResolver = {
126
129
  name: item?.productName,
127
130
  description: item?.productDescription,
128
131
  sku: item?.productSku
132
+ },
133
+ productDetail: {
134
+ id: item?.productDetailId
129
135
  }
130
136
  }
131
137
  }
@@ -11,10 +11,9 @@ 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 } from '@things-factory/warehouse-base'
14
+ import { Inventory, INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, Location, generateInventoryHistory } from '@things-factory/warehouse-base'
15
15
 
16
16
  import { Worksheet, WorksheetDetail } from '../../../entities'
17
- import { generateInventoryHistory } from '../../../utils'
18
17
 
19
18
  export const confirmCancellationReleaseOrder = {
20
19
  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 } from '@things-factory/warehouse-base'
7
+ import { Inventory, INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, Location, generateInventoryHistory } 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 { generateInventoryHistory, switchLocationStatus } from '../../../utils'
12
+ import { switchLocationStatus } from '../../../utils'
13
13
 
14
14
  export const cycleCountAdjustmentResolver = {
15
15
  async cycleCountAdjustment(_: any, { cycleCountNo }, context: any) {
@@ -1,21 +1,17 @@
1
1
  import { EntityManager, getManager } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
- import { OrderInventory } from '@things-factory/sales-base'
5
4
  import { Domain } from '@things-factory/shell'
6
5
 
7
- import { PickingWorksheetController } from '../../../../controllers/'
8
- import { Worksheet, WorksheetDetail } from '../../../../entities'
9
-
10
6
  import { generatePickingWorksheet } from './generate-release-good-worksheet'
11
7
 
12
8
  export const generateMultipleReleaseGoodWorksheetResolver = {
13
- async generateMultipleReleaseGoodWorksheet(_: any, { releaseGoodNos }, context: any) {
9
+ async generateMultipleReleaseGoodWorksheet(_: any, { releaseGoods }, context: any) {
14
10
  const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
15
11
 
16
- for (let idx = 0; idx < releaseGoodNos.length; idx++) {
12
+ for (let idx = 0; idx < releaseGoods.length; idx++) {
17
13
  await getManager().transaction(async txMgr => {
18
- await generatePickingWorksheet(txMgr, domain, user, releaseGoodNos[idx])
14
+ await generatePickingWorksheet(txMgr, domain, user, releaseGoods[idx].name, releaseGoods[idx].status)
19
15
  });
20
16
  }
21
17
 
@@ -11,9 +11,9 @@ import { Worksheet, WorksheetDetail } from '../../../../entities'
11
11
  import { Inventory, InventoryUtil, INVENTORY_TRANSACTION_TYPE } from '@things-factory/warehouse-base'
12
12
 
13
13
  export const generateReleaseGoodWorksheetResolver = {
14
- async generateReleaseGoodWorksheet(_: any, { releaseGoodNo }, context: any) {
14
+ async generateReleaseGoodWorksheet(_: any, { releaseGoodNo, currentStatus = null }, context: any) {
15
15
  const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
16
- return await generatePickingWorksheet(tx, domain, user, releaseGoodNo)
16
+ return await generatePickingWorksheet(tx, domain, user, releaseGoodNo, currentStatus)
17
17
  }
18
18
  }
19
19
 
@@ -21,7 +21,8 @@ export async function generatePickingWorksheet(
21
21
  tx: EntityManager,
22
22
  domain: Domain,
23
23
  user: User,
24
- releaseGoodNo: string
24
+ releaseGoodNo: string,
25
+ currentStatus: string = null
25
26
  ): Promise<Worksheet> {
26
27
  try {
27
28
  const worksheetController: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)
@@ -78,7 +79,7 @@ export async function generatePickingWorksheet(
78
79
 
79
80
  await tx.getRepository(ReleaseGood).update({ id: releaseGood.id }, { status: ORDER_STATUS.DONE })
80
81
  } else {
81
- worksheet = await worksheetController.generatePickingWorksheet(releaseGoodNo)
82
+ worksheet = await worksheetController.generatePickingWorksheet(releaseGoodNo, currentStatus)
82
83
  }
83
84
 
84
85
  return worksheet
@@ -40,6 +40,7 @@ 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')
43
44
  .leftJoinAndSelect('iv.warehouse', 'warehouse')
44
45
  .leftJoinAndSelect('iv.location', 'location')
45
46
  .leftJoinAndSelect('iv.creator', 'creator')
@@ -134,7 +135,8 @@ export const inventoriesByPalletResolver = {
134
135
  productName: item.product.name,
135
136
  productSKU: item.product.sku,
136
137
  productBrand: item.product.brand,
137
- productId: item.product.id
138
+ productId: item.product.id,
139
+ productDetailId: item.productDetail.id
138
140
  }
139
141
  })
140
142
  )
@@ -1,6 +1,6 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { User } from '@things-factory/auth-base'
3
+ import { ApplicationType, 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,42 +58,86 @@ 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 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
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 }
91
72
  })
92
- customerAvailableSftp = await tx.getRepository(Sftp).save(snResult)
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
+ }
93
98
  }
94
- }
99
+ break
100
+
101
+ default:
102
+ break
95
103
  }
96
104
 
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
+
97
141
  await worksheetController.completeLoading(releaseGoodNo)
98
142
 
99
143
  if (remainInventories.length) {
@@ -1,6 +1,6 @@
1
1
  import { EntityManager, getManager } from 'typeorm'
2
2
 
3
- import { User } from '@things-factory/auth-base'
3
+ import { ApplicationType, 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,15 +38,32 @@ export async function activatePacking(
38
38
  const worksheet = await worksheetController.activatePacking(worksheetNo)
39
39
  let releaseGood: ReleaseGood = worksheet.releaseGood
40
40
 
41
- if (releaseGood.type == 'b2c') {
42
- const sellercraft: Sellercraft = await tx
43
- .getRepository(Sellercraft)
44
- .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
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 })
45
47
 
46
- if (sellercraft) {
47
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
48
- sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
49
- }
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
50
56
  }
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
+ // }
51
68
  return worksheet
52
69
  }
@@ -1,9 +1,8 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { User } from '@things-factory/auth-base'
3
+ import { ApplicationType, 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'
7
6
  import { MarketplaceOrder } from '@things-factory/marketplace-base'
8
7
  import { ReleaseGood } from '@things-factory/sales-base'
9
8
  import { Domain } from '@things-factory/shell'
@@ -29,12 +28,9 @@ export const completePackingResolver = {
29
28
  ]
30
29
  })
31
30
 
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) {
31
+ const orderSource: string = releaseGood.source
32
+ switch (orderSource) {
33
+ case ApplicationType.MMS:
38
34
  const companyDomain: Domain = releaseGood.bizplace.company.domain
39
35
  const marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
40
36
  where: { orderNo: releaseGood.refNo, domain: companyDomain },
@@ -52,9 +48,38 @@ export const completePackingResolver = {
52
48
  const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
53
49
  await ecommerceCtrl.createOrderShip(releaseGood, marketplaceStore, marketplaceOrder, companyDomain)
54
50
  }
55
- }
51
+ break
52
+
53
+ default:
54
+ break
56
55
  }
57
56
 
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
+
58
83
  const bizplace: Bizplace = await getMyBizplace(domain, user)
59
84
  const worksheetController: WorksheetController = new WorksheetController(tx, domain, user)
60
85
  await worksheetController.notifyToCustomer(bizplace, {
@@ -1,6 +1,6 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { User } from '@things-factory/auth-base'
3
+ import { ApplicationType, 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,14 +29,31 @@ export async function packing(
29
29
  let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
30
30
  const worksheet: Worksheet = worksheetDetail.worksheet
31
31
 
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 })
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 })
36
38
 
37
- if (sellercraft) {
38
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
39
- await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
40
- }
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
41
47
  }
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
+ // }
42
59
  }
@@ -1,6 +1,6 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { User } from '@things-factory/auth-base'
3
+ import { ApplicationType, 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,17 +34,36 @@ export async function scanProductPacking(
34
34
  let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
35
35
  const worksheet: Worksheet = worksheetDetail.worksheet
36
36
 
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 })
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 })
41
44
 
42
- if (sellercraft) {
43
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
44
- sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
45
- }
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
46
55
  }
47
56
 
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
+ // }
48
67
  } catch (error) {
49
68
  throw error
50
69
  }