@things-factory/worksheet-base 4.3.66 → 4.3.69

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 (76) hide show
  1. package/dist-server/constants/index.js +5 -1
  2. package/dist-server/constants/index.js.map +1 -1
  3. package/dist-server/controllers/ecommerce/index.js +5 -1
  4. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/sellercraft-controller.js +31 -25
  6. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  7. package/dist-server/controllers/inbound/index.js +5 -1
  8. package/dist-server/controllers/inbound/index.js.map +1 -1
  9. package/dist-server/controllers/index.js +5 -1
  10. package/dist-server/controllers/index.js.map +1 -1
  11. package/dist-server/controllers/inspect/index.js +5 -1
  12. package/dist-server/controllers/inspect/index.js.map +1 -1
  13. package/dist-server/controllers/outbound/index.js +5 -1
  14. package/dist-server/controllers/outbound/index.js.map +1 -1
  15. package/dist-server/controllers/vas/index.js +5 -1
  16. package/dist-server/controllers/vas/index.js.map +1 -1
  17. package/dist-server/controllers/worksheet-controller.js +7 -5
  18. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  19. package/dist-server/graphql/index.js +5 -1
  20. package/dist-server/graphql/index.js.map +1 -1
  21. package/dist-server/graphql/resolvers/index.js +5 -1
  22. package/dist-server/graphql/resolvers/index.js.map +1 -1
  23. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js +57 -0
  24. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js.map +1 -0
  25. package/dist-server/graphql/resolvers/worksheet/index.js +2 -2
  26. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  27. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +16 -11
  28. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  29. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +38 -8
  30. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  31. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +7 -5
  32. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  33. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +20 -17
  34. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  35. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +7 -5
  36. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  37. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js +5 -1
  38. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js.map +1 -1
  39. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js +5 -1
  40. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
  41. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js +5 -1
  42. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js.map +1 -1
  43. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js +5 -1
  44. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js.map +1 -1
  45. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js +5 -1
  46. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js.map +1 -1
  47. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js +5 -1
  48. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js.map +1 -1
  49. package/dist-server/graphql/types/index.js +5 -1
  50. package/dist-server/graphql/types/index.js.map +1 -1
  51. package/dist-server/graphql/types/worksheet/index.js +5 -5
  52. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  53. package/dist-server/graphql/types/worksheet/sellercraft-document.js +11 -0
  54. package/dist-server/graphql/types/worksheet/sellercraft-document.js.map +1 -0
  55. package/dist-server/index.js +5 -1
  56. package/dist-server/index.js.map +1 -1
  57. package/dist-server/utils/index.js +5 -1
  58. package/dist-server/utils/index.js.map +1 -1
  59. package/package.json +17 -17
  60. package/server/controllers/ecommerce/sellercraft-controller.ts +42 -29
  61. package/server/controllers/worksheet-controller.ts +9 -4
  62. package/server/graphql/resolvers/worksheet/fetch-sellercraft-document.ts +62 -0
  63. package/server/graphql/resolvers/worksheet/index.ts +2 -2
  64. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +23 -18
  65. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +36 -9
  66. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +8 -4
  67. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +23 -19
  68. package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +8 -4
  69. package/server/graphql/types/worksheet/index.ts +5 -5
  70. package/server/graphql/types/worksheet/sellercraft-document.ts +8 -0
  71. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +0 -25
  72. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +0 -1
  73. package/dist-server/graphql/types/worksheet/airwaybill.js +0 -10
  74. package/dist-server/graphql/types/worksheet/airwaybill.js.map +0 -1
  75. package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +0 -30
  76. package/server/graphql/types/worksheet/airwaybill.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAgC;AAChC,2DAAwC;AACxC,kDAA+B;AAC/B,mDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,2DAAwC;AACxC,kDAA+B;AAC/B,mDAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/worksheet-base",
3
- "version": "4.3.66",
3
+ "version": "4.3.69",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,21 +24,21 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/auth-base": "^4.3.66",
28
- "@things-factory/biz-base": "^4.3.66",
29
- "@things-factory/document-template-base": "^4.3.66",
30
- "@things-factory/id-rule-base": "^4.3.66",
31
- "@things-factory/integration-lmd": "^4.3.66",
32
- "@things-factory/integration-marketplace": "^4.3.66",
33
- "@things-factory/integration-sellercraft": "^4.3.66",
34
- "@things-factory/integration-sftp": "^4.3.66",
35
- "@things-factory/marketplace-base": "^4.3.66",
36
- "@things-factory/notification": "^4.3.66",
37
- "@things-factory/sales-base": "^4.3.66",
38
- "@things-factory/setting-base": "^4.3.66",
39
- "@things-factory/shell": "^4.3.66",
40
- "@things-factory/transport-base": "^4.3.66",
41
- "@things-factory/warehouse-base": "^4.3.66"
27
+ "@things-factory/auth-base": "^4.3.69",
28
+ "@things-factory/biz-base": "^4.3.69",
29
+ "@things-factory/document-template-base": "^4.3.69",
30
+ "@things-factory/id-rule-base": "^4.3.69",
31
+ "@things-factory/integration-lmd": "^4.3.69",
32
+ "@things-factory/integration-marketplace": "^4.3.69",
33
+ "@things-factory/integration-sellercraft": "^4.3.69",
34
+ "@things-factory/integration-sftp": "^4.3.69",
35
+ "@things-factory/marketplace-base": "^4.3.69",
36
+ "@things-factory/notification": "^4.3.69",
37
+ "@things-factory/sales-base": "^4.3.69",
38
+ "@things-factory/setting-base": "^4.3.69",
39
+ "@things-factory/shell": "^4.3.69",
40
+ "@things-factory/transport-base": "^4.3.69",
41
+ "@things-factory/warehouse-base": "^4.3.69"
42
42
  },
43
- "gitHead": "27536aa67eccfb17d20ced5c898a838a61ff634f"
43
+ "gitHead": "f1bc559c1d5f98b6a88848dd5c66c1588207978c"
44
44
  }
@@ -276,7 +276,7 @@ export class SellercraftController extends WorksheetController {
276
276
  packageId: releaseGood.packageId
277
277
  }
278
278
 
279
- SellercraftAPI.initiateOrderShipment(sellercraft, {
279
+ await SellercraftAPI.initiateOrderShipment(sellercraft, {
280
280
  ...orderInformation,
281
281
  context: { state: { domain: this?.domain, user: this?.user } }
282
282
  })
@@ -296,7 +296,7 @@ export class SellercraftController extends WorksheetController {
296
296
  orderId: releaseGood.refNo2,
297
297
  packageId: releaseGood.packageId
298
298
  }
299
- SellercraftAPI.initiateOrderDocument(sellercraft, {
299
+ await SellercraftAPI.initiateOrderDocument(sellercraft, {
300
300
  ...orderInformation,
301
301
  context: { state: { domain: this?.domain, user: this?.user } }
302
302
  })
@@ -304,38 +304,51 @@ export class SellercraftController extends WorksheetController {
304
304
  }
305
305
 
306
306
  async fetchOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {
307
- let sellercraftSetting: any = sellercraft.sellercraftSetting
308
- let disableFetchOrderDocument: boolean =
309
- sellercraftSetting?.disableFetchOrderDocument && sellercraftSetting?.disableFetchOrderDocument == 1 ? true : false
307
+ try {
308
+ let sellercraftSetting: any = sellercraft.sellercraftSetting
309
+ let disableFetchOrderDocument: boolean =
310
+ sellercraftSetting?.disableFetchOrderDocument && sellercraftSetting?.disableFetchOrderDocument == 1 ? true : false
311
+
312
+ if (!disableFetchOrderDocument) {
313
+ const orderInformation: any = {
314
+ accountId: sellercraft.accountId,
315
+ orderId: releaseGood.refNo2,
316
+ packageId: releaseGood.packageId
317
+ }
318
+ const { documents, trackingNo, transporter }: { documents: any[]; trackingNo: string; transporter: string } =
319
+ await SellercraftAPI.fetchOrderDocument(sellercraft, {
320
+ ...orderInformation,
321
+ context: { state: { domain: this?.domain, user: this?.user } }
322
+ })
310
323
 
311
- if (!disableFetchOrderDocument) {
312
- const orderInformation: any = {
313
- accountId: sellercraft.accountId,
314
- orderId: releaseGood.refNo2,
315
- packageId: releaseGood.packageId
316
- }
317
- const { documents, trackingNo, transporter }: { documents: any[]; trackingNo: string; transporter: string } =
318
- await SellercraftAPI.fetchOrderDocument(sellercraft, {
319
- ...orderInformation,
320
- context: { state: { domain: this?.domain, user: this?.user } }
321
- })
324
+ let updateInfo: any
325
+ if (documents?.length) {
326
+ documents.map(document => {
327
+ if (document.type === 'invoice') {
328
+ updateInfo = { ...updateInfo, invoice: document.download_url }
329
+ } else if (document.type === 'airway_bill') {
330
+ updateInfo = { ...updateInfo, airwayBill: document.download_url }
331
+ }
332
+ })
322
333
 
323
- if (documents?.length) {
324
- documents.map(document => {
325
- if (document.type === 'invoice') {
326
- releaseGood.invoice = document.download_url
327
- } else if (document.type === 'airway_bill') {
328
- releaseGood.airwayBill = document.download_url
334
+ updateInfo = {
335
+ ...updateInfo,
336
+ trackingNo: trackingNo,
337
+ transporter: transporter,
338
+ updater: this.user
329
339
  }
330
- })
331
340
 
332
- releaseGood.trackingNo = trackingNo
333
- releaseGood.transporter = transporter
334
- releaseGood.updater = this.user
335
- releaseGood = await this.trxMgr.getRepository(ReleaseGood).save(releaseGood)
341
+ // releaseGood = await this.trxMgr.getRepository(ReleaseGood).save(releaseGood)
342
+
343
+ await this.trxMgr.getRepository(ReleaseGood).update({ id: releaseGood.id }, { ...updateInfo })
344
+ releaseGood = await this.trxMgr.getRepository(ReleaseGood).findOne({ id: releaseGood.id })
345
+ }
336
346
  }
337
- }
338
347
 
339
- return releaseGood
348
+ return releaseGood
349
+
350
+ } catch (error) {
351
+ throw error
352
+ }
340
353
  }
341
354
  }
@@ -821,10 +821,15 @@ export class WorksheetController {
821
821
  */
822
822
  async notifyToUsers(users: User[], message: NotificationMsgInterface): Promise<void> {
823
823
  const receivers: any[] = users.map(user => user.id)
824
- await sendNotification({
825
- receivers,
826
- message
827
- })
824
+
825
+ /**
826
+ * @notes Temporary off sendNotification due to suspect of causing wms down
827
+ */
828
+
829
+ // await sendNotification({
830
+ // receivers,
831
+ // message
832
+ // })
828
833
  }
829
834
 
830
835
  /**
@@ -0,0 +1,62 @@
1
+ import { EntityManager, getRepository } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
+ import { ReleaseGood } from '@things-factory/sales-base'
6
+ import { Domain } from '@things-factory/shell'
7
+ import { logger } from '@things-factory/env'
8
+
9
+ import { SellercraftController } from '../../../controllers'
10
+
11
+ export const fetchSellercraftDocumentResolver = {
12
+ async fetchSellercraftDocument(_: any, { releaseGoodId }, context: any) {
13
+ const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
14
+
15
+ //find release goods base on id
16
+ let releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({ where: { domain, id: releaseGoodId }, relations: ['bizplace', 'bizplace.domain'] })
17
+
18
+ //find user sellercraft data
19
+ const sellercraft: Sellercraft = await getRepository(Sellercraft).findOne({
20
+ domain: releaseGood.bizplace.domain,
21
+ status: SellercraftStatus.ACTIVE
22
+ })
23
+
24
+ // instantiate sellercraft controller
25
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
26
+
27
+ try {
28
+ // fetch document if not found
29
+ if (sellercraft && !releaseGood?.airwayBill) {
30
+ try {
31
+ // try fetch order document / AWB
32
+ releaseGood = await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
33
+ } catch (error) {
34
+ try {
35
+ // retry initiate order document
36
+ await sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
37
+ } catch (error) {
38
+ try {
39
+ // retry initiate order shipment / RTS
40
+ await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
41
+ } catch (error) {
42
+ throw new Error(`initiateOrderShipment: ${error}`)
43
+ }
44
+ throw new Error(`initiateOrderDocument: ${error}`)
45
+ }
46
+ throw new Error(`fetchOrderDocument: ${error}`)
47
+ }
48
+ }
49
+
50
+ const airwayBill: string = releaseGood?.airwayBill
51
+ const invoice: string = releaseGood?.invoice
52
+ return { airwayBill, invoice }
53
+
54
+ } catch (error) {
55
+ // await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
56
+ logger.error(`packing-worksheet[getSellercraftDocument]:(data:${JSON.stringify({ sellercraft, releaseGood, domain, user })}) ${error} `)
57
+
58
+ throw new Error('Waiting for AWB from marketplace. Please retry in awhile')
59
+ }
60
+
61
+ }
62
+ }
@@ -9,7 +9,7 @@ import { cycleCountWorksheetResolver } from './cycle-count-worksheet'
9
9
  import { deleteWorksheet } from './delete-worksheet'
10
10
  import { deliveryOrderByWorksheetResolver } from './delivery-order-by-worksheet'
11
11
  import { fetchDeliveryOrderROResolver } from './fetch-delivery-order-ro'
12
- import { fetchSellercraftAirwayBillResolver } from './fetch-sellercraft-airway-bill'
12
+ import { fetchSellercraftDocumentResolver } from './fetch-sellercraft-document'
13
13
  import { findReleaseOrdersByTaskNoResolver } from './find-release-orders-by-task-no'
14
14
  import { findSortingReleaseOrdersByTaskNoResolver } from './find-sorting-release-orders-by-task-no'
15
15
  import { Mutations as GenerateWorksheetMutations } from './generate-worksheet'
@@ -137,6 +137,6 @@ export const Mutation = {
137
137
  ...crossDockPickingResolver,
138
138
  ...unpackingResolver,
139
139
  ...palletizingPallets,
140
- ...fetchSellercraftAirwayBillResolver,
140
+ ...fetchSellercraftDocumentResolver,
141
141
  ...cancelDraftReleaseOrder
142
142
  }
@@ -23,24 +23,29 @@ export async function scanProductPacking(
23
23
  productBarcode: string,
24
24
  serialNumber?: string
25
25
  ) {
26
- const worksheetController: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
27
- const worksheetDetail = await worksheetController.scanProductPacking(
28
- worksheetDetailName,
29
- productBarcode,
30
- serialNumber
31
- )
32
-
33
- let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
34
- const worksheet: Worksheet = worksheetDetail.worksheet
35
-
36
- if (releaseGood.type === 'b2c' && !releaseGood?.airwayBill) {
37
- const sellercraft: Sellercraft = await tx
38
- .getRepository(Sellercraft)
39
- .findOne({ domain: worksheet.bizplace.domain, status: SellercraftStatus.ACTIVE })
40
-
41
- if (sellercraft) {
42
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
43
- await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
26
+ try {
27
+ const worksheetController: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
28
+ const worksheetDetail = await worksheetController.scanProductPacking(
29
+ worksheetDetailName,
30
+ productBarcode,
31
+ serialNumber
32
+ )
33
+
34
+ let releaseGood: ReleaseGood = worksheetDetail.targetInventory.releaseGood
35
+ const worksheet: Worksheet = worksheetDetail.worksheet
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 })
41
+
42
+ if (sellercraft) {
43
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
44
+ sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
45
+ }
44
46
  }
47
+
48
+ } catch (error) {
49
+ throw error
45
50
  }
46
51
  }
@@ -1,6 +1,7 @@
1
- import { EntityManager, SelectQueryBuilder } from 'typeorm'
1
+ import { EntityManager, SelectQueryBuilder, getManager } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
+ import { logger } from '@things-factory/env'
4
5
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
6
  import {
6
7
  MarketplaceOrder,
@@ -102,20 +103,15 @@ export const packingWorksheetResolver = {
102
103
  let marketplaceStatus: string
103
104
 
104
105
  if (releaseGood.type === 'b2c') {
106
+
105
107
  const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
106
108
  domain: worksheet.bizplace.domain,
107
109
  status: SellercraftStatus.ACTIVE
108
110
  })
109
111
 
110
112
  if (sellercraft) {
111
- if (!releaseGood?.airwayBill) {
112
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
113
- sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
114
- releaseGood = await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
115
- }
116
- trackingNo = releaseGood?.trackingNo
117
- shippingProvider = releaseGood?.transporter
118
- marketplaceStatus = releaseGood?.marketplaceOrderStatus
113
+ // asynchronously get document from sellercraft
114
+ getSellercraftDocument(sellercraft, releaseGood, domain, user)
119
115
  } else {
120
116
  marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
121
117
  where: { orderNo: releaseGood.refNo },
@@ -242,3 +238,34 @@ export async function getTrackingNo(marketplaceStore, marketplaceOrderItems): Pr
242
238
 
243
239
  return trackingNo
244
240
  }
241
+
242
+ //trigger RTS, init document, and fetch sellercraft document in separated transaction
243
+ async function getSellercraftDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood, domain: Domain, user: User) {
244
+ await getManager().transaction(async txMgr => {
245
+ const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)
246
+ try {
247
+ if (!releaseGood?.airwayBill) {
248
+ try {
249
+ // try fetch order document / AWB
250
+ releaseGood = await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
251
+ } catch (error) {
252
+ try {
253
+ // retry initiate order document
254
+ await sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)
255
+ } catch (error) {
256
+ try {
257
+ // retry initiate order shipment / RTS
258
+ await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
259
+ } catch (error) {
260
+ throw new Error(`initiateOrderShipment: ${error}`)
261
+ }
262
+ throw new Error(`initiateOrderDocument: ${error}`)
263
+ }
264
+ throw new Error(`fetchOrderDocument: ${error}`)
265
+ }
266
+ }
267
+ } catch (error) {
268
+ logger.error(`packing-worksheet[getSellercraftDocument]:(data:${JSON.stringify({ sellercraft, releaseGood, domain, user })}) ${error} `)
269
+ }
270
+ })
271
+ }
@@ -214,10 +214,14 @@ export const pendingCancellationReleaseOrder = {
214
214
  data: { url: context.header.referer }
215
215
  }
216
216
 
217
- await sendNotification({
218
- receivers,
219
- message: { ...msg }
220
- })
217
+ /**
218
+ * @notes Temporary off sendNotification due to suspect of causing wms down
219
+ */
220
+
221
+ // await sendNotification({
222
+ // receivers,
223
+ // message: { ...msg }
224
+ // })
221
225
  }
222
226
 
223
227
  return
@@ -1,4 +1,4 @@
1
- import { EntityManager } from 'typeorm'
1
+ import { EntityManager, getManager } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
4
  import { Bizplace, ContactPoint, getMyBizplace } from '@things-factory/biz-base'
@@ -82,30 +82,34 @@ export async function completePicking(
82
82
  await pickingWSCtrl.completePicking(releaseGoodNo)
83
83
 
84
84
  if (releaseGood.type == 'b2c') {
85
- const sellercraft: Sellercraft = await tx
86
- .getRepository(Sellercraft)
87
- .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
88
85
 
89
- if (sellercraft) {
90
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
86
+ const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
87
+ const initSCOrderShipment = async (sellercraft) => {
88
+ if (sellercraft) {
91
89
 
92
- if (!releaseGood?.packageId) {
93
- const orderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).find({
94
- where: { releaseGood },
95
- relations: ['product', 'product.productDetails']
96
- })
97
- releaseGood = await sellercraftCtrl.packOrder(sellercraft, { ...releaseGood, orderProducts })
90
+ await getManager().transaction(async txMgr => {
91
+ const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)
98
92
 
99
- if (releaseGood?.packageId) {
100
- await tx
101
- .getRepository(ReleaseGood)
102
- .update({ id: releaseGood.id }, { packageId: releaseGood.packageId, updater: releaseGood.updater })
103
- }
104
- }
93
+ if (!releaseGood?.packageId) {
94
+ const orderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).find({
95
+ where: { releaseGood },
96
+ relations: ['product', 'product.productDetails']
97
+ })
98
+ releaseGood = await sellercraftCtrl.packOrder(sellercraft, { ...releaseGood, orderProducts })
99
+
100
+ if (releaseGood?.packageId) {
101
+ await txMgr.getRepository(ReleaseGood).update({ id: releaseGood.id }, { packageId: releaseGood.packageId, updater: releaseGood.updater })
102
+ }
103
+ }
105
104
 
106
- sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
105
+ await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
106
+ })
107
+ }
107
108
  }
108
109
 
110
+ // asynchronouly call to initiate sellercraft order shipment/ RTS
111
+ initSCOrderShipment(sellercraft)
112
+
109
113
  const companyDomain: Domain = releaseGood.bizplace.company.domain
110
114
  let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
111
115
  where: { orderNo: releaseGood.refNo, domain: companyDomain },
@@ -231,10 +231,14 @@ export const proceedExtraProductsResolver = {
231
231
  data: { url: context.header.referer }
232
232
  }
233
233
 
234
- await sendNotification({
235
- receivers,
236
- message: { ...msg }
237
- })
234
+ /**
235
+ * @notes Temporary off sendNotification due to suspect of causing wms down
236
+ */
237
+
238
+ // await sendNotification({
239
+ // receivers,
240
+ // message: { ...msg }
241
+ // })
238
242
  }
239
243
  }
240
244
  }
@@ -1,4 +1,4 @@
1
- import { AirwayBill } from './airwaybill'
1
+ import { SellercraftDocument } from './sellercraft-document'
2
2
  import { ArrivalNoticeWorksheet } from './arrival-notice-worksheet'
3
3
  import { ContactPointInfo } from './contact-point-info'
4
4
  import { CycleCountWorksheet } from './cycle-count-worksheet'
@@ -68,9 +68,9 @@ export const Mutation = /* GraphQL */ `
68
68
  releaseGoodNos: [String!]
69
69
  ): Boolean @privilege(category: "worksheet_control", privilege: "mutation") @transaction
70
70
 
71
- fetchSellercraftAirwayBill (
72
- releaseGoodNo: String!
73
- ): AirwayBill @privilege(category: "worksheet_control", privilege: "mutation") @transaction
71
+ fetchSellercraftDocument (
72
+ releaseGoodId: String!
73
+ ): SellercraftDocument @privilege(category: "worksheet_control", privilege: "mutation") @transaction
74
74
 
75
75
  generateSortingWorksheet (
76
76
  worksheetNo: String!
@@ -718,7 +718,7 @@ export const Query = /* GraphQL */ `
718
718
 
719
719
  export const Types = /* GraphQL */[
720
720
  Worksheet,
721
- AirwayBill,
721
+ SellercraftDocument,
722
722
  NewWorksheet,
723
723
  WorksheetPatch,
724
724
  WorksheetList,
@@ -0,0 +1,8 @@
1
+ import { gql } from 'apollo-server-koa'
2
+
3
+ export const SellercraftDocument = gql`
4
+ type SellercraftDocument {
5
+ airwayBill: String,
6
+ invoice: String
7
+ }
8
+ `
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchSellercraftAirwayBillResolver = void 0;
4
- const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
5
- const sales_base_1 = require("@things-factory/sales-base");
6
- const controllers_1 = require("../../../controllers");
7
- exports.fetchSellercraftAirwayBillResolver = {
8
- async fetchSellercraftAirwayBill(_, { releaseGoodNo }, context) {
9
- const { tx, domain, user } = context.state;
10
- let releaseGood = await tx
11
- .getRepository(sales_base_1.ReleaseGood)
12
- .findOne({ where: { domain, name: releaseGoodNo }, relations: ['bizplace', 'bizplace.domain'] });
13
- const sellercraft = await tx.getRepository(integration_sellercraft_1.Sellercraft).findOne({
14
- domain: releaseGood.bizplace.domain,
15
- status: integration_sellercraft_1.SellercraftStatus.ACTIVE
16
- });
17
- if (sellercraft && !(releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill)) {
18
- const sellercraftCtrl = new controllers_1.SellercraftController(tx, domain, user);
19
- await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood);
20
- }
21
- const airwayBill = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill;
22
- return { airwayBill };
23
- }
24
- };
25
- //# sourceMappingURL=fetch-sellercraft-airway-bill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-sellercraft-airway-bill.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts"],"names":[],"mappings":";;;AAGA,qFAAwF;AACxF,2DAAwD;AAGxD,sDAA4D;AAE/C,QAAA,kCAAkC,GAAG;IAChD,KAAK,CAAC,0BAA0B,CAAC,CAAM,EAAE,EAAE,aAAa,EAAE,EAAE,OAAY;QACtE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,IAAI,WAAW,GAAgB,MAAM,EAAE;aACpC,aAAa,CAAC,wBAAW,CAAC;aAC1B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAElG,MAAM,WAAW,GAAgB,MAAM,EAAE,CAAC,aAAa,CAAC,qCAAW,CAAC,CAAC,OAAO,CAAC;YAC3E,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM;YACnC,MAAM,EAAE,2CAAiB,CAAC,MAAM;SACjC,CAAC,CAAA;QAEF,IAAI,WAAW,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,CAAA,EAAE;YAC3C,MAAM,eAAe,GAA0B,IAAI,mCAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC1F,MAAM,eAAe,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;SACnE;QAED,MAAM,UAAU,GAAW,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,CAAA;QAClD,OAAO,EAAE,UAAU,EAAE,CAAA;IACvB,CAAC;CACF,CAAA"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AirwayBill = void 0;
4
- const apollo_server_koa_1 = require("apollo-server-koa");
5
- exports.AirwayBill = (0, apollo_server_koa_1.gql) `
6
- type AirwayBill {
7
- airwayBill: String
8
- }
9
- `;
10
- //# sourceMappingURL=airwaybill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"airwaybill.js","sourceRoot":"","sources":["../../../../server/graphql/types/worksheet/airwaybill.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAE1B,QAAA,UAAU,GAAG,IAAA,uBAAG,EAAA;;;;CAI5B,CAAA"}
@@ -1,30 +0,0 @@
1
- import { EntityManager } from 'typeorm'
2
-
3
- import { User } from '@things-factory/auth-base'
4
- import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
- import { ReleaseGood } from '@things-factory/sales-base'
6
- import { Domain } from '@things-factory/shell'
7
-
8
- import { SellercraftController } from '../../../controllers'
9
-
10
- export const fetchSellercraftAirwayBillResolver = {
11
- async fetchSellercraftAirwayBill(_: any, { releaseGoodNo }, context: any) {
12
- const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
13
- let releaseGood: ReleaseGood = await tx
14
- .getRepository(ReleaseGood)
15
- .findOne({ where: { domain, name: releaseGoodNo }, relations: ['bizplace', 'bizplace.domain'] })
16
-
17
- const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({
18
- domain: releaseGood.bizplace.domain,
19
- status: SellercraftStatus.ACTIVE
20
- })
21
-
22
- if (sellercraft && !releaseGood?.airwayBill) {
23
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
24
- await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)
25
- }
26
-
27
- const airwayBill: string = releaseGood?.airwayBill
28
- return { airwayBill }
29
- }
30
- }
@@ -1,7 +0,0 @@
1
- import { gql } from 'apollo-server-koa'
2
-
3
- export const AirwayBill = gql`
4
- type AirwayBill {
5
- airwayBill: String
6
- }
7
- `