@things-factory/worksheet-base 4.3.535 → 4.3.537

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 (28) hide show
  1. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +3 -1
  2. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  3. package/dist-server/controllers/outbound/loading-worksheet-controller.js +5 -2
  4. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/packing-worksheet-controller.js +5 -0
  6. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/outbound/picking-worksheet-controller.js +11 -0
  8. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +7 -0
  10. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/worksheet-controller.js +14 -1
  12. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  13. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +12 -5
  14. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  15. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +8 -2
  16. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  17. package/dist-server/utils/lmd-util.js +4 -3
  18. package/dist-server/utils/lmd-util.js.map +1 -1
  19. package/package.json +12 -12
  20. package/server/controllers/inbound/putaway-worksheet-controller.ts +11 -4
  21. package/server/controllers/outbound/loading-worksheet-controller.ts +22 -16
  22. package/server/controllers/outbound/packing-worksheet-controller.ts +16 -3
  23. package/server/controllers/outbound/picking-worksheet-controller.ts +16 -1
  24. package/server/controllers/outbound/sorting-worksheet-controller.ts +13 -18
  25. package/server/controllers/worksheet-controller.ts +21 -33
  26. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +21 -40
  27. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +16 -5
  28. package/server/utils/lmd-util.ts +3 -2
@@ -13,6 +13,7 @@ import {
13
13
  OrderVas,
14
14
  ReleaseGood
15
15
  } from '@things-factory/sales-base'
16
+ import { webhookHandler, WebhookEvents } from '@things-factory/integration-base'
16
17
  import {
17
18
  generateInventoryHistory,
18
19
  Inventory,
@@ -121,11 +122,8 @@ export class LoadingWorksheetController extends VasWorksheetController {
121
122
  WORKSHEET_TYPE.LOADING,
122
123
  [
123
124
  'worksheet',
124
-
125
125
  'targetInventory',
126
-
127
126
  'targetInventory.inventory',
128
-
129
127
  'targetInventory.product',
130
128
  'targetInventory.productDetail',
131
129
  'targetInventory.orderProduct'
@@ -380,11 +378,15 @@ export class LoadingWorksheetController extends VasWorksheetController {
380
378
  }
381
379
 
382
380
  async completeLoading(releaseGoodNo: string): Promise<Worksheet> {
383
- const releaseGood: ReleaseGood = await this.findRefOrder(ReleaseGood, {
384
- domain: this.domain,
385
- name: releaseGoodNo,
386
- status: ORDER_STATUS.LOADING
387
- })
381
+ const releaseGood: ReleaseGood = await this.findRefOrder(
382
+ ReleaseGood,
383
+ {
384
+ domain: this.domain,
385
+ name: releaseGoodNo,
386
+ status: ORDER_STATUS.LOADING
387
+ },
388
+ ['domain', 'bizplace']
389
+ )
388
390
 
389
391
  let deliveryOrders: DeliveryOrder[] = await this.trxMgr.getRepository(DeliveryOrder).find({
390
392
  where: { releaseGood: releaseGood, domain: this.domain },
@@ -394,7 +396,7 @@ export class LoadingWorksheetController extends VasWorksheetController {
394
396
  if (deliveryOrders.length > 0) {
395
397
  let ownTransport = 0
396
398
  let warehouseTransport = 0
397
- let ownTransportFlag : Boolean
399
+ let ownTransportFlag: Boolean
398
400
 
399
401
  for (let i = 0; i < deliveryOrders.length; i++) {
400
402
  let deliveryOrder = deliveryOrders[i]
@@ -404,12 +406,12 @@ export class LoadingWorksheetController extends VasWorksheetController {
404
406
  ownTransportFlag = ownTransport > warehouseTransport
405
407
  }
406
408
 
407
- await this.trxMgr.getRepository(ReleaseGood).update(
408
- { id: releaseGood.id },
409
- {
410
- ownTransport: ownTransportFlag
411
- }
412
- )
409
+ await this.trxMgr.getRepository(ReleaseGood).update(
410
+ { id: releaseGood.id },
411
+ {
412
+ ownTransport: ownTransportFlag
413
+ }
414
+ )
413
415
  }
414
416
 
415
417
  const orderToteIds = await (
@@ -424,6 +426,10 @@ export class LoadingWorksheetController extends VasWorksheetController {
424
426
  ])
425
427
  this.checkRecordValidity(worksheet, { status: WORKSHEET_STATUS.EXECUTING })
426
428
 
427
- return await this.completeWorksheet(worksheet, ORDER_STATUS.DONE)
429
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.LoadingCompleted)
430
+
431
+ const completeWorksheet: Worksheet = await this.completeWorksheet(worksheet, ORDER_STATUS.DONE)
432
+
433
+ return completeWorksheet
428
434
  }
429
435
  }
@@ -1,4 +1,4 @@
1
- import { Equal, In, Not } from 'typeorm'
1
+ import { Equal, getConnection, In, Not } from 'typeorm'
2
2
 
3
3
  import { ApplicationType } from '@things-factory/auth-base'
4
4
  import { logger } from '@things-factory/env'
@@ -16,6 +16,7 @@ import {
16
16
  WebspertController,
17
17
  ReleaseGood
18
18
  } from '@things-factory/sales-base'
19
+ import { webhookHandler, WebhookEvents } from '@things-factory/integration-base'
19
20
  import {
20
21
  Inventory,
21
22
  INVENTORY_ITEM_SOURCE,
@@ -77,7 +78,9 @@ export class PackingWorksheetController extends VasWorksheetController {
77
78
  'worksheetDetails.targetInventory'
78
79
  ])
79
80
 
80
- if ([ORDER_INVENTORY_STATUS.PENDING_CANCEL, ORDER_INVENTORY_STATUS.CANCELLED].includes(worksheet?.releaseGood?.status)) {
81
+ if (
82
+ [ORDER_INVENTORY_STATUS.PENDING_CANCEL, ORDER_INVENTORY_STATUS.CANCELLED].includes(worksheet?.releaseGood?.status)
83
+ ) {
81
84
  throw new Error(`order status for ${worksheet.releaseGood.name}:${worksheet?.releaseGood?.status}`)
82
85
  }
83
86
 
@@ -169,6 +172,10 @@ export class PackingWorksheetController extends VasWorksheetController {
169
172
  break
170
173
  }
171
174
 
175
+ releaseGood.domain = this.domain
176
+
177
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.PackingStarted)
178
+
172
179
  return worksheet
173
180
  }
174
181
 
@@ -532,7 +539,10 @@ export class PackingWorksheetController extends VasWorksheetController {
532
539
 
533
540
  await this.trxMgr
534
541
  .getRepository(OrderPackage)
535
- .update({ id: orderPackage.id }, { status: ORDER_STATUS.DONE, updater: this.user, updatedAt: new Date(), grossWeight: grossWeight })
542
+ .update(
543
+ { id: orderPackage.id },
544
+ { status: ORDER_STATUS.DONE, updater: this.user, updatedAt: new Date(), grossWeight: grossWeight }
545
+ )
536
546
 
537
547
  let releaseGood: ReleaseGood = await this.findRefOrder(
538
548
  ReleaseGood,
@@ -580,6 +590,9 @@ export class PackingWorksheetController extends VasWorksheetController {
580
590
  // { trackingNo: `${releaseGood?.trackingNo ? releaseGood?.trackingNo.split(',').push(orderPackage.trackingNo).join(',') : orderPackage.trackingNo}` }
581
591
  // )
582
592
  // }
593
+ releaseGood.domain = this.domain
594
+
595
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.PackingCompleted)
583
596
 
584
597
  return await this.completeWorksheet(worksheet, orderStatus)
585
598
  } else {
@@ -46,7 +46,7 @@ import {
46
46
  Tote,
47
47
  TOTE_STATUS
48
48
  } from '@things-factory/warehouse-base'
49
-
49
+ import { webhookHandler, WebhookEvents } from '@things-factory/integration-base'
50
50
  import { TASK_NUMBER_RULE_TYPE, TASK_NUMBER_SETTING_KEY, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
51
51
  import { SellercraftController } from '../../controllers'
52
52
  import { ActiveWorksheetPickingView, Worksheet, WorksheetDetail } from '../../entities'
@@ -284,6 +284,8 @@ export class PickingWorksheetController extends VasWorksheetController {
284
284
  releaseGood.updater = this.user
285
285
  this.updateRefOrder(releaseGood)
286
286
 
287
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.PickingStarted)
288
+
287
289
  worksheet = await this.activateWorksheet(worksheet, worksheetDetails, [])
288
290
 
289
291
  // VAS will be activated after PICKING is completed
@@ -619,6 +621,10 @@ export class PickingWorksheetController extends VasWorksheetController {
619
621
  await this.trxMgr.getRepository(ReleaseGood).save(releaseGoods)
620
622
  }
621
623
 
624
+ for (const releaseGood of releaseGoods) {
625
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.PickingStarted)
626
+ }
627
+
622
628
  return worksheet
623
629
  }
624
630
 
@@ -1665,6 +1671,8 @@ export class PickingWorksheetController extends VasWorksheetController {
1665
1671
  }
1666
1672
  }
1667
1673
 
1674
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.PickingCompleted)
1675
+
1668
1676
  return await this.completeWorksheet(worksheet, orderStatus)
1669
1677
  }
1670
1678
 
@@ -1746,6 +1754,13 @@ export class PickingWorksheetController extends VasWorksheetController {
1746
1754
 
1747
1755
  await this.trxMgr.getRepository(ReleaseGood).save(releaseGoods)
1748
1756
 
1757
+ for (let releaseGood of releaseGoods) {
1758
+ releaseGood.domain = this.domain
1759
+ releaseGood.bizplace = worksheet.bizplace
1760
+
1761
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.PickingCompleted)
1762
+ }
1763
+
1749
1764
  return worksheet
1750
1765
  }
1751
1766
 
@@ -1,13 +1,6 @@
1
- import {
2
- In,
3
- IsNull
4
- } from 'typeorm'
5
-
6
- import {
7
- Product,
8
- ProductBarcode,
9
- ProductDetail
10
- } from '@things-factory/product-base'
1
+ import { In, IsNull } from 'typeorm'
2
+ import { webhookHandler, WebhookEvents } from '@things-factory/integration-base'
3
+ import { Product, ProductBarcode, ProductDetail } from '@things-factory/product-base'
11
4
  import {
12
5
  ORDER_INVENTORY_STATUS,
13
6
  ORDER_STATUS,
@@ -28,14 +21,8 @@ import {
28
21
  TOTE_STATUS
29
22
  } from '@things-factory/warehouse-base'
30
23
 
31
- import {
32
- WORKSHEET_STATUS,
33
- WORKSHEET_TYPE
34
- } from '../../constants'
35
- import {
36
- Worksheet,
37
- WorksheetDetail
38
- } from '../../entities'
24
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
25
+ import { Worksheet, WorksheetDetail } from '../../entities'
39
26
  import { VasWorksheetController } from '../vas/vas-worksheet-controller'
40
27
 
41
28
  export class SortingWorksheetController extends VasWorksheetController {
@@ -505,6 +492,14 @@ export class SortingWorksheetController extends VasWorksheetController {
505
492
  worksheet.updater = this.user
506
493
  worksheet = await this.trxMgr.getRepository(Worksheet).save(worksheet)
507
494
 
495
+ const releaseGoods: ReleaseGood[] = await this.trxMgr
496
+ .getRepository(ReleaseGood)
497
+ .find({ where: { id: In(releaseGoodIds) }, relations: ['domain', 'bizplace'] })
498
+
499
+ for (let releaseGood of releaseGoods) {
500
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.LoadingStarted)
501
+ }
502
+
508
503
  return worksheet
509
504
  }
510
505
 
@@ -1,25 +1,8 @@
1
- import {
2
- EntityManager,
3
- EntitySchema,
4
- Equal,
5
- FindOneOptions,
6
- getRepository,
7
- In,
8
- Not
9
- } from 'typeorm'
10
-
11
- import {
12
- Role,
13
- User
14
- } from '@things-factory/auth-base'
15
- import {
16
- Bizplace,
17
- getDomainUsers
18
- } from '@things-factory/biz-base'
19
- import {
20
- Product,
21
- ProductDetail
22
- } from '@things-factory/product-base'
1
+ import { EntityManager, EntitySchema, Equal, FindOneOptions, getRepository, In, Not, getConnection } from 'typeorm'
2
+ import { webhookHandler, WebhookEvents } from '@things-factory/integration-base'
3
+ import { Role, User } from '@things-factory/auth-base'
4
+ import { Bizplace, getDomainUsers } from '@things-factory/biz-base'
5
+ import { Product, ProductDetail } from '@things-factory/product-base'
23
6
  import {
24
7
  ArrivalNotice,
25
8
  DeliveryOrder,
@@ -45,14 +28,8 @@ import {
45
28
  Pallet
46
29
  } from '@things-factory/warehouse-base'
47
30
 
48
- import {
49
- WORKSHEET_STATUS,
50
- WORKSHEET_TYPE
51
- } from '../constants'
52
- import {
53
- Worksheet,
54
- WorksheetDetail
55
- } from '../entities'
31
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'
32
+ import { Worksheet, WorksheetDetail } from '../entities'
56
33
  import { WorksheetNoGenerator } from '../utils'
57
34
 
58
35
  export type ReferenceOrderType =
@@ -774,7 +751,6 @@ export class WorksheetController {
774
751
  changedWorksheetDetails: Partial<WorksheetDetail>[],
775
752
  tx?: EntityManager
776
753
  ): Promise<Worksheet> {
777
-
778
754
  const transaction = tx ? tx : this.trxMgr
779
755
 
780
756
  if (!worksheet.id || worksheetDetails.some((wsd: WorksheetDetail) => !wsd.id)) {
@@ -786,7 +762,6 @@ export class WorksheetController {
786
762
  worksheet.updater = this.user
787
763
  worksheet = await transaction.getRepository(Worksheet).save(worksheet)
788
764
 
789
-
790
765
  worksheetDetails = this.renewWorksheetDetails(worksheetDetails, changedWorksheetDetails, 'name', {
791
766
  status: WORKSHEET_STATUS.EXECUTING,
792
767
  updater: this.user
@@ -886,6 +861,10 @@ export class WorksheetController {
886
861
  refOrder.status = updatedRefOrderStatus
887
862
  refOrder.updater = this.user
888
863
  await this.updateRefOrder(refOrder)
864
+
865
+ if (!(worksheetType === WORKSHEET_TYPE.PUTAWAY) && updatedRefOrderStatus === 'DONE') {
866
+ webhookHandler(refOrder, refOrder.bizplace, WebhookEvents.ReleaseOrderCompleted)
867
+ }
889
868
  }
890
869
 
891
870
  return worksheet
@@ -1029,7 +1008,16 @@ export class WorksheetController {
1029
1008
  null
1030
1009
  if (!refOrder) {
1031
1010
  const wsWithRefOrd: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne(worksheet.id, {
1032
- relations: ['arrivalNotice', 'releaseGood', 'vasOrder', 'inventoryCheck', 'returnOrder', 'replenishment']
1011
+ relations: [
1012
+ 'arrivalNotice',
1013
+ 'releaseGood',
1014
+ 'releaseGood.domain',
1015
+ 'releaseGood.bizplace',
1016
+ 'vasOrder',
1017
+ 'inventoryCheck',
1018
+ 'returnOrder',
1019
+ 'replenishment'
1020
+ ]
1033
1021
  })
1034
1022
 
1035
1023
  refOrder =
@@ -1,34 +1,14 @@
1
- import {
2
- EntityManager,
3
- getManager,
4
- In
5
- } from 'typeorm'
6
-
7
- import {
8
- ApplicationType,
9
- User
10
- } from '@things-factory/auth-base'
11
- import {
12
- Bizplace,
13
- ContactPoint,
14
- getMyBizplace
15
- } from '@things-factory/biz-base'
1
+ import { EntityManager, getManager, In } from 'typeorm'
2
+ import { webhookHandler, WebhookEvents } from '@things-factory/integration-base'
3
+ import { ApplicationType, User } from '@things-factory/auth-base'
4
+ import { Bizplace, ContactPoint, getMyBizplace } from '@things-factory/biz-base'
16
5
  import { logger } from '@things-factory/env'
17
6
  import { Account } from '@things-factory/integration-accounting'
18
7
  import { sqsSendMessage } from '@things-factory/integration-base'
19
- import {
20
- LastMileAPI,
21
- LastMileDelivery
22
- } from '@things-factory/integration-lmd'
23
- import {
24
- MarketplaceStore,
25
- MarketplaceTransporter
26
- } from '@things-factory/integration-marketplace'
8
+ import { LastMileAPI, LastMileDelivery } from '@things-factory/integration-lmd'
9
+ import { MarketplaceStore, MarketplaceTransporter } from '@things-factory/integration-marketplace'
27
10
  import { Powrup } from '@things-factory/integration-powrup'
28
- import {
29
- Sellercraft,
30
- SellercraftStatus
31
- } from '@things-factory/integration-sellercraft'
11
+ import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
32
12
  import {
33
13
  MarketplaceOrder,
34
14
  MarketplaceOrderItem,
@@ -52,10 +32,7 @@ import { Setting } from '@things-factory/setting-base'
52
32
  import { Domain } from '@things-factory/shell'
53
33
  import { Inventory } from '@things-factory/warehouse-base'
54
34
 
55
- import {
56
- WORKSHEET_STATUS,
57
- WORKSHEET_TYPE
58
- } from '../../../../constants'
35
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
59
36
  import {
60
37
  createOrderPackageAndItems,
61
38
  LoadingWorksheetController,
@@ -66,10 +43,7 @@ import {
66
43
  } from '../../../../controllers/'
67
44
  import { EcommerceController } from '../../../../controllers/ecommerce'
68
45
  import { WorksheetController } from '../../../../controllers/worksheet-controller'
69
- import {
70
- Worksheet,
71
- WorksheetDetail
72
- } from '../../../../entities'
46
+ import { Worksheet, WorksheetDetail } from '../../../../entities'
73
47
  import { activateVas } from '../vas/activate-vas'
74
48
 
75
49
  export const completePickingResolver = {
@@ -174,9 +148,14 @@ export async function completePicking(
174
148
 
175
149
  let foundObsoleteInventories = await pickingWSCtrl.completePicking(releaseGood, worksheet, inventories)
176
150
 
177
- const rtsTriggerLevel: Setting = await tx.getRepository(Setting).findOne({
178
- where: { domain, category: 'id-rule', name: 'rts-trigger-level' }
179
- }).then((setting: Setting) => { return parseInt(setting?.value || 0) })
151
+ const rtsTriggerLevel: Setting = await tx
152
+ .getRepository(Setting)
153
+ .findOne({
154
+ where: { domain, category: 'id-rule', name: 'rts-trigger-level' }
155
+ })
156
+ .then((setting: Setting) => {
157
+ return parseInt(setting?.value || 0)
158
+ })
180
159
 
181
160
  if (foundObsoleteInventories?.type) {
182
161
  const orderSource: string = releaseGood.source
@@ -228,7 +207,8 @@ export async function completePicking(
228
207
  }
229
208
 
230
209
  // Trigger if RTS Trigger Level Setting == 1
231
- if (rtsTriggerLevel == 1) await powrupController.initiateShipment(powrup, releaseGood, domain, user, txMgr)
210
+ if (rtsTriggerLevel == 1)
211
+ await powrupController.initiateShipment(powrup, releaseGood, domain, user, txMgr)
232
212
  })
233
213
  }
234
214
  // asynchronouly call to initiate powrup order shipment/ RTS
@@ -356,7 +336,7 @@ export async function completePicking(
356
336
 
357
337
  case ApplicationType.WEBSPERT:
358
338
  // Trigger Whole Order Process
359
- WebspertController.triggerOrderProcesses(releaseGood, domain, user, (rtsTriggerLevel == 1))
339
+ WebspertController.triggerOrderProcesses(releaseGood, domain, user, rtsTriggerLevel == 1)
360
340
 
361
341
  break
362
342
  default:
@@ -460,6 +440,7 @@ export async function completePicking(
460
440
 
461
441
  const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails
462
442
  await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)
443
+ webhookHandler(releaseGood, releaseGood.bizplace, WebhookEvents.LoadingStarted)
463
444
  } else {
464
445
  const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
465
446
  let loadingWorksheet: Worksheet = await loadingWSCtrl.updateLoadingWorksheet(
@@ -1,4 +1,4 @@
1
- import { EntityManager, In } from 'typeorm'
1
+ import { EntityManager, In, getConnection } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
4
  import { Bizplace } from '@things-factory/biz-base'
@@ -6,11 +6,11 @@ import { Account } from '@things-factory/integration-accounting'
6
6
  import { ArrivalNotice, generateGoodsReceivalNote } from '@things-factory/sales-base'
7
7
  import { Domain } from '@things-factory/shell'
8
8
  import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
9
-
9
+ import { webhookHandler, WebhookEvents } from '@things-factory/integration-base'
10
10
  import { WORKSHEET_STATUS } from '../../../../constants'
11
11
  import { PutawayWorksheetController, UnloadingWorksheetController } from '../../../../controllers'
12
12
  import { XilnexController } from '../../../../controllers/pos'
13
- import { Worksheet, WorksheetDetail } from '../../../../entities'
13
+ import { Worksheet, WorksheetDetail } from '../../../../entities'
14
14
 
15
15
  export const completeUnloadingResolver = {
16
16
  async completeUnloading(_: any, { arrivalNoticeNo, worksheetDetails }, context: any) {
@@ -36,7 +36,11 @@ export const completeUnloadingResolver = {
36
36
  let putawayWorksheet: Worksheet
37
37
 
38
38
  const inventories: Inventory[] = await tx.getRepository(Inventory).find({
39
- where: { domain, refOrderId: arrivalNotice.id, status: In([INVENTORY_STATUS.UNLOADED, INVENTORY_STATUS.CHECKED]) },
39
+ where: {
40
+ domain,
41
+ refOrderId: arrivalNotice.id,
42
+ status: In([INVENTORY_STATUS.UNLOADED, INVENTORY_STATUS.CHECKED])
43
+ },
40
44
  relations: ['productDetail', 'product', 'creator']
41
45
  })
42
46
 
@@ -49,7 +53,12 @@ export const completeUnloadingResolver = {
49
53
  }
50
54
 
51
55
  const bizplaceId: Bizplace = arrivalNotice.bizplace.id
52
- await generateGoodsReceivalNote({ refNo: arrivalNoticeNo, customer: bizplaceId }, domain, user, tx)
56
+ const goodReceiveNote = await generateGoodsReceivalNote(
57
+ { refNo: arrivalNoticeNo, customer: bizplaceId },
58
+ domain,
59
+ user,
60
+ tx
61
+ )
53
62
 
54
63
  const customerDomain: Domain = arrivalNotice.bizplace.domain
55
64
  const xilnex: Account = await tx
@@ -68,6 +77,8 @@ export const completeUnloadingResolver = {
68
77
  url: context.header.referer,
69
78
  data: { url: context.header.referer }
70
79
  })
80
+
81
+ webhookHandler(goodReceiveNote, goodReceiveNote.bizplace, WebhookEvents.GrnCreated)
71
82
  }
72
83
  }
73
84
 
@@ -345,7 +345,8 @@ export async function processAwbAndTrackingNo(orderPackages, tx, domain, user, m
345
345
  }
346
346
  } else if (
347
347
  releaseGood.lastMileDelivery.platform == 'POSLAJU' ||
348
- releaseGood.lastMileDelivery.platform == 'SAPX'
348
+ releaseGood.lastMileDelivery.platform == 'SAPX' ||
349
+ 'POSLAJU_V2'
349
350
  ) {
350
351
  try {
351
352
  // call lambda
@@ -421,7 +422,7 @@ export async function processAwbAndTrackingNo(orderPackages, tx, domain, user, m
421
422
 
422
423
  // update tracking no to mms then to Magento
423
424
  // comment temporarily to validate db lock
424
- const companyDomain: Domain = releaseGood.bizplace.company.domain
425
+ const companyDomain: Domain = releaseGood.bizplace?.company?.domain
425
426
  if (!marketplaceOrder) {
426
427
  marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
427
428
  where: { orderNo: releaseGood.refNo, domain: companyDomain },