@things-factory/marketplace-base 4.1.3 → 4.1.4

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 (113) hide show
  1. package/dist-server/entities/index.js +13 -10
  2. package/dist-server/entities/index.js.map +1 -1
  3. package/dist-server/entities/marketplace-order-item.js +3 -3
  4. package/dist-server/entities/marketplace-order-item.js.map +1 -1
  5. package/dist-server/entities/marketplace-order-shipping-item.js +77 -0
  6. package/dist-server/entities/marketplace-order-shipping-item.js.map +1 -0
  7. package/dist-server/entities/marketplace-order-shipping.js +2 -2
  8. package/dist-server/entities/marketplace-order-shipping.js.map +1 -1
  9. package/dist-server/graphql/resolvers/index.js +1 -0
  10. package/dist-server/graphql/resolvers/index.js.map +1 -1
  11. package/dist-server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.js +9 -6
  12. package/dist-server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.js.map +1 -1
  13. package/dist-server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.js +8 -4
  14. package/dist-server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.js.map +1 -1
  15. package/dist-server/graphql/resolvers/marketplace-order/generate-marketplace-order.js +51 -2
  16. package/dist-server/graphql/resolvers/marketplace-order/generate-marketplace-order.js.map +1 -1
  17. package/dist-server/graphql/resolvers/marketplace-order/get-etrax-order-document.js +3 -2
  18. package/dist-server/graphql/resolvers/marketplace-order/get-etrax-order-document.js.map +1 -1
  19. package/dist-server/graphql/resolvers/marketplace-order/get-order-document.js +14 -6
  20. package/dist-server/graphql/resolvers/marketplace-order/get-order-document.js.map +1 -1
  21. package/dist-server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.js +2 -1
  22. package/dist-server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.js.map +1 -1
  23. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.js +3 -2
  24. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.js.map +1 -1
  25. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.js +4 -2
  26. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.js.map +1 -1
  27. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js +2 -1
  28. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js.map +1 -1
  29. package/dist-server/graphql/resolvers/marketplace-order/split-orders-by-batch.js +72 -243
  30. package/dist-server/graphql/resolvers/marketplace-order/split-orders-by-batch.js.map +1 -1
  31. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js +3 -2
  32. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js.map +1 -1
  33. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js +60 -4
  34. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js.map +1 -1
  35. package/dist-server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.js +8 -4
  36. package/dist-server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.js.map +1 -1
  37. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.js +7 -4
  38. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.js.map +1 -1
  39. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.js +11 -0
  40. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.js.map +1 -0
  41. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.js +12 -0
  42. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.js.map +1 -0
  43. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.js +15 -0
  44. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.js.map +1 -0
  45. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/index.js +14 -0
  46. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/index.js.map +1 -0
  47. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.js +22 -0
  48. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.js.map +1 -0
  49. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.js +14 -0
  50. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.js.map +1 -0
  51. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.js +15 -0
  52. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.js.map +1 -0
  53. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.js +30 -0
  54. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.js.map +1 -0
  55. package/dist-server/graphql/types/index.js +1 -0
  56. package/dist-server/graphql/types/index.js.map +1 -1
  57. package/dist-server/graphql/types/marketplace-order-item/marketplace-order-item.js +1 -1
  58. package/dist-server/graphql/types/marketplace-order-item/new-marketplace-order-item.js +0 -1
  59. package/dist-server/graphql/types/marketplace-order-item/new-marketplace-order-item.js.map +1 -1
  60. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.js +0 -1
  61. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.js.map +1 -1
  62. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.js +1 -1
  63. package/dist-server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.js +0 -1
  64. package/dist-server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.js.map +1 -1
  65. package/dist-server/graphql/types/marketplace-order-shipping-item/index.js +47 -0
  66. package/dist-server/graphql/types/marketplace-order-shipping-item/index.js.map +1 -0
  67. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.js +14 -0
  68. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.js.map +1 -0
  69. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.js +19 -0
  70. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.js.map +1 -0
  71. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.js +22 -0
  72. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.js.map +1 -0
  73. package/dist-server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.js +18 -0
  74. package/dist-server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.js.map +1 -0
  75. package/package.json +2 -2
  76. package/server/entities/index.ts +15 -12
  77. package/server/entities/marketplace-order-item.ts +17 -5
  78. package/server/entities/marketplace-order-shipping-item.ts +55 -0
  79. package/server/entities/marketplace-order-shipping.ts +6 -3
  80. package/server/graphql/resolvers/index.ts +1 -0
  81. package/server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.ts +9 -6
  82. package/server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.ts +14 -5
  83. package/server/graphql/resolvers/marketplace-order/generate-marketplace-order.ts +54 -2
  84. package/server/graphql/resolvers/marketplace-order/get-etrax-order-document.ts +5 -2
  85. package/server/graphql/resolvers/marketplace-order/get-order-document.ts +22 -7
  86. package/server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.ts +4 -2
  87. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.ts +5 -2
  88. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.ts +7 -3
  89. package/server/graphql/resolvers/marketplace-order/marketplace-orders.ts +2 -1
  90. package/server/graphql/resolvers/marketplace-order/split-orders-by-batch.ts +84 -280
  91. package/server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.ts +3 -2
  92. package/server/graphql/resolvers/marketplace-order/sync-marketplace-order.ts +64 -5
  93. package/server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.ts +14 -5
  94. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.ts +9 -4
  95. package/server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.ts +14 -0
  96. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.ts +10 -0
  97. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.ts +13 -0
  98. package/server/graphql/resolvers/marketplace-order-shipping-item/index.ts +20 -0
  99. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +21 -0
  100. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.ts +16 -0
  101. package/server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.ts +18 -0
  102. package/server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.ts +44 -0
  103. package/server/graphql/types/index.ts +1 -0
  104. package/server/graphql/types/marketplace-order-item/marketplace-order-item.ts +1 -1
  105. package/server/graphql/types/marketplace-order-item/new-marketplace-order-item.ts +0 -1
  106. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.ts +0 -1
  107. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.ts +1 -1
  108. package/server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.ts +0 -1
  109. package/server/graphql/types/marketplace-order-shipping-item/index.ts +32 -0
  110. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.ts +8 -0
  111. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.ts +13 -0
  112. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +16 -0
  113. package/server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.ts +12 -0
@@ -1,6 +1,13 @@
1
- import { MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'
2
1
  import { EntityManager, In } from 'typeorm'
3
- import { MarketplaceOrder, MarketplaceOrderItem, MarketplaceOrderShipping } from '../../../entities'
2
+
3
+ import { MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'
4
+
5
+ import {
6
+ MarketplaceOrder,
7
+ MarketplaceOrderItem,
8
+ MarketplaceOrderShipping,
9
+ MarketplaceOrderShippingItem
10
+ } from '../../../entities'
4
11
  import { getETraxOrderDocumentFunction } from '../marketplace-order'
5
12
 
6
13
  export const getOrderDocumentResolver = {
@@ -8,7 +15,12 @@ export const getOrderDocumentResolver = {
8
15
  const { tx }: { tx: EntityManager } = context.state
9
16
  const foundMarketplaceOrders: MarketplaceOrder[] = await tx.getRepository(MarketplaceOrder).find({
10
17
  where: { orderNo: In(orderNo) },
11
- relations: ['marketplaceStore', 'marketplaceOrderItems', 'marketplaceOrderItems.marketplaceOrderShipping']
18
+ relations: [
19
+ 'marketplaceStore',
20
+ 'marketplaceOrderItems',
21
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
22
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
23
+ ]
12
24
  })
13
25
  if (foundMarketplaceOrders?.length === 0) throw new Error('No order is found')
14
26
 
@@ -78,11 +90,14 @@ export const getOrderDocumentResolver = {
78
90
 
79
91
  let marketplaceOrderShippings: MarketplaceOrderShipping[] = []
80
92
  marketplaceOrderItems.map((item, idx) => {
81
- const marketplaceOrderShipping = item[idx].marketplaceOrderShipping
93
+ const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = item[idx].marketplaceOrderShippingItems
94
+ marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {
95
+ const marketplaceOrderShipping = marketplaceOrderShippingItem.marketplaceOrderShipping
82
96
 
83
- if (marketplaceOrderShipping) {
84
- marketplaceOrderShippings.push(marketplaceOrderShipping)
85
- }
97
+ if (marketplaceOrderShipping) {
98
+ marketplaceOrderShippings.push(marketplaceOrderShipping)
99
+ }
100
+ })
86
101
  })
87
102
 
88
103
  let uniqueMarketplaceOrderShippings: MarketplaceOrderShipping[] = Array.from(
@@ -1,5 +1,6 @@
1
1
  import { MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'
2
- import { MarketplaceOrder, MarketplaceOrderItem, MarketplaceOrderShipping } from '../../../entities'
2
+
3
+ import { MarketplaceOrder, MarketplaceOrderItem } from '../../../entities'
3
4
 
4
5
  export const initialiseLazadaLogisticsByBatch = {
5
6
  async initialiseLazadaLogisticsByBatch(_: any, { patches }, context: any) {
@@ -12,7 +13,8 @@ export const initialiseLazadaLogisticsByBatch = {
12
13
  relations: [
13
14
  'marketplaceStore',
14
15
  'marketplaceOrderItems',
15
- 'marketplaceOrderItems.marketplaceOrderShipping',
16
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
17
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
16
18
  'marketplaceOrderItems.marketplaceProductVariation'
17
19
  ]
18
20
  })
@@ -1,5 +1,7 @@
1
- import { convertListParams, ListParam } from '@things-factory/shell'
2
1
  import { getRepository } from 'typeorm'
2
+
3
+ import { convertListParams, ListParam } from '@things-factory/shell'
4
+
3
5
  import { MarketplaceOrder } from '../../../entities'
4
6
  import { getLogisticsParam } from '../marketplace-order/get-logistics-param'
5
7
 
@@ -15,8 +17,9 @@ export const marketplaceOrdersForBatchInitResolver = {
15
17
  'domain',
16
18
  'marketplaceStore',
17
19
  'marketplaceOrderItems',
20
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
21
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
18
22
  'marketplaceOrderItems.marketplaceProductVariation',
19
- 'marketplaceOrderItems.marketplaceOrderShipping',
20
23
  'creator',
21
24
  'updater'
22
25
  ]
@@ -1,5 +1,6 @@
1
1
  import { getRepository, In } from 'typeorm'
2
- import { MarketplaceOrder, MarketplaceOrderItem } from '../../../entities'
2
+
3
+ import { MarketplaceOrder, MarketplaceOrderItem, MarketplaceOrderShippingItem } from '../../../entities'
3
4
 
4
5
  export const marketplaceOrdersForExport = {
5
6
  async marketplaceOrdersForExport(_: any, { orderNos }, context: any) {
@@ -8,7 +9,8 @@ export const marketplaceOrdersForExport = {
8
9
  relations: [
9
10
  'marketplaceStore',
10
11
  'marketplaceOrderItems',
11
- 'marketplaceOrderItems.marketplaceOrderShipping',
12
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
13
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
12
14
  'marketplaceOrderItems.marketplaceProductVariation'
13
15
  ]
14
16
  })
@@ -27,8 +29,10 @@ export const marketplaceOrdersForExport = {
27
29
  const updatedAt = order.orderUpdatedAt
28
30
 
29
31
  mergedOrder = marketplaceOrderItems.map(orderItem => {
32
+ const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = orderItem.marketplaceOrderShippingItems
33
+
30
34
  const variationName: string = orderItem.marketplaceProductVariation.name
31
- const marketplaceOrderShipping = orderItem.marketplaceOrderShipping
35
+ const marketplaceOrderShipping = marketplaceOrderShippingItems[0].marketplaceOrderShipping
32
36
  const sku: string = orderItem.marketplaceProductVariation.sku
33
37
  const itemQty: number = orderItem.qty
34
38
  const trackingNo: string = marketplaceOrderShipping?.trackingNo
@@ -25,9 +25,10 @@ export const marketplaceOrdersResolver = {
25
25
  qb.leftJoinAndSelect('mo.domain', 'domain')
26
26
  .leftJoinAndSelect('mo.marketplaceStore', 'ms')
27
27
  .leftJoinAndSelect('mo.marketplaceOrderItems', 'mi')
28
+ .leftJoinAndSelect('mi.marketplaceOrderShippingItems', 'mosi')
28
29
  .leftJoinAndSelect('mi.marketplaceProductVariation', 'mpv')
29
30
  .leftJoinAndSelect('mpv.marketplaceProduct', 'mp')
30
- .leftJoinAndSelect('mi.marketplaceOrderShipping', 'mos')
31
+ .leftJoinAndSelect('mosi.marketplaceOrderShipping', 'mos')
31
32
  .leftJoinAndSelect('mo.creator', 'creator')
32
33
  .leftJoinAndSelect('mo.updater', 'updater')
33
34
 
@@ -1,13 +1,16 @@
1
1
  import { EntityManager } from 'typeorm'
2
+ import uuid from 'uuid/v4'
2
3
 
3
4
  import { User } from '@things-factory/auth-base'
4
5
  import { MarketplaceSetting, MarketplaceStore } from '@things-factory/integration-marketplace'
6
+ import { Product } from '@things-factory/product-base'
5
7
  import { Domain } from '@things-factory/shell'
6
8
 
7
9
  import {
8
10
  MarketplaceOrder,
9
11
  MarketplaceOrderItem,
10
12
  MarketplaceOrderShipping,
13
+ MarketplaceOrderShippingItem,
11
14
  MarketplaceProductVariation
12
15
  } from '../../../entities'
13
16
  import { NoGenerator } from '../../../utils'
@@ -36,43 +39,74 @@ export const splitOrdersByBatch = {
36
39
  })
37
40
  if (!maxWeightSetting) throw new Error('marketplace_order_max_weight setting not found')
38
41
 
42
+ const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
43
+ if (!marketplaceOrderItems.every(marketplaceOrderItem => marketplaceOrderItem.marketplaceProductVariation.sku))
44
+ throw new Error('all items must be linked before split order')
45
+
39
46
  let originalMarketplaceOrderShipping: MarketplaceOrderShipping = await tx
40
47
  .getRepository(MarketplaceOrderShipping)
41
48
  .findOne({
42
- where: { domain, orderNoRef: marketplaceOrder.orderNo, marketplaceStore: marketplaceOrder.marketplaceStore }
49
+ where: { domain, orderNoRef: marketplaceOrder.orderNo, marketplaceStore: marketplaceOrder.marketplaceStore },
50
+ relations: [
51
+ 'marketplaceOrderShippingItems',
52
+ 'marketplaceOrderShippingItems.product',
53
+ 'marketplaceOrderShippingItems.product.productDetails',
54
+ 'marketplaceOrderShippingItems.marketplaceOrderItem',
55
+ 'marketplaceOrderShippingItems.marketplaceOrderItem.marketplaceProductVariation'
56
+ ]
43
57
  })
44
58
 
45
- const originalMarketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
46
- let newMarketplaceOrderItems: MarketplaceOrderItem[] = []
59
+ const originalMarketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =
60
+ originalMarketplaceOrderShipping.marketplaceOrderShippingItems
61
+ let newMarketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = []
47
62
  let splittedShipmentItems: any[] = []
48
63
 
49
- for (let a: number = 0; a < originalMarketplaceOrderItems.length; a++) {
50
- const marketplaceOrderItem: MarketplaceOrderItem = originalMarketplaceOrderItems[a]
64
+ for (let a: number = 0; a < originalMarketplaceOrderShippingItems.length; a++) {
65
+ const marketplaceOrderShippingItem: MarketplaceOrderShippingItem = originalMarketplaceOrderShippingItems[a]
51
66
 
52
- for (let b: number = 0; b < marketplaceOrderItem.qty; b++) {
53
- const newItem: MarketplaceOrderItem = {
54
- ...marketplaceOrderItem,
67
+ for (let b: number = 0; b < marketplaceOrderShippingItem.qty; b++) {
68
+ const newItem: MarketplaceOrderShippingItem = {
69
+ ...marketplaceOrderShippingItem,
55
70
  qty: 1
56
71
  }
57
- newMarketplaceOrderItems.push(newItem)
72
+ newMarketplaceOrderShippingItems.push(newItem)
58
73
  }
59
74
  }
60
75
 
61
- newMarketplaceOrderItems.sort(function (a, b) {
62
- if (a.marketplaceProductVariation.primaryUnitValue < b.marketplaceProductVariation.primaryUnitValue) return -1
63
- if (a.marketplaceProductVariation.primaryUnitValue > b.marketplaceProductVariation.primaryUnitValue) return 1
76
+ newMarketplaceOrderShippingItems.sort(function (a, b) {
77
+ if (
78
+ a.marketplaceOrderItem.marketplaceProductVariation.primaryUnitValue <
79
+ b.marketplaceOrderItem.marketplaceProductVariation.primaryUnitValue
80
+ )
81
+ return -1
82
+ if (
83
+ a.marketplaceOrderItem.marketplaceProductVariation.primaryUnitValue >
84
+ b.marketplaceOrderItem.marketplaceProductVariation.primaryUnitValue
85
+ )
86
+ return 1
64
87
  return 0
65
88
  })
66
89
 
67
- for (let a: number = 0; a < newMarketplaceOrderItems.length; a++) {
68
- const marketplaceOrderItem: MarketplaceOrderItem = newMarketplaceOrderItems[a]
69
- const marketplaceProductVariation: MarketplaceProductVariation =
70
- marketplaceOrderItem.marketplaceProductVariation
71
- if (!marketplaceProductVariation.primaryUnitValue)
90
+ for (let a: number = 0; a < newMarketplaceOrderShippingItems.length; a++) {
91
+ let marketplaceOrderShippingItem: MarketplaceOrderShippingItem = newMarketplaceOrderShippingItems[a]
92
+ const product: Product = marketplaceOrderShippingItem.product
93
+ const marketplaceOrderItem: MarketplaceOrderItem = marketplaceOrderShippingItem.marketplaceOrderItem
94
+ const marketplaceProductVariations: MarketplaceProductVariation[] = await tx
95
+ .getRepository(MarketplaceProductVariation)
96
+ .find({
97
+ where: { domain: marketplaceOrder.domain, sku: product.sku },
98
+ relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']
99
+ })
100
+ const marketplaceProductVariation: MarketplaceProductVariation = marketplaceProductVariations.filter(
101
+ mpv => mpv.marketplaceProduct.marketplaceStore.id == marketplaceOrder.marketplaceStore.id
102
+ )[0]
103
+
104
+ if (!marketplaceProductVariation?.primaryUnitValue)
72
105
  throw new Error(marketplaceProductVariation.variationSku + ' weight is empty')
73
- const primaryUnitValue: number = parseFloat(marketplaceProductVariation.primaryUnitValue.toFixed(2))
74
106
 
75
- delete marketplaceOrderItem.id
107
+ const primaryUnitValue: number = parseFloat(marketplaceProductVariation.primaryUnitValue.toFixed(2)) || 0
108
+
109
+ delete marketplaceOrderShippingItem.id
76
110
 
77
111
  let newMarketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
78
112
  newMarketplaceOrderShipping.name = NoGenerator.orderShipping()
@@ -101,13 +135,14 @@ export const splitOrdersByBatch = {
101
135
  .getRepository(MarketplaceOrderShipping)
102
136
  .save(newMarketplaceOrderShipping)
103
137
 
104
- marketplaceOrderItem.marketplaceOrder = marketplaceOrder
105
- marketplaceOrderItem.marketplaceOrderShipping = newMarketplaceOrderShipping
106
- marketplaceOrderItem.domain = marketplaceOrder.domain
107
- marketplaceOrderItem.docRefNo = marketplaceOrder.orderNo
138
+ marketplaceOrderShippingItem.name = uuid()
139
+ marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
140
+ marketplaceOrderShippingItem.marketplaceOrderShipping = newMarketplaceOrderShipping
141
+ marketplaceOrderShippingItem.product = product
142
+ marketplaceOrderShippingItem.domain = marketplaceOrder.domain
108
143
 
109
144
  let splittedShipment: any = {
110
- shipments: [{ ...marketplaceOrderItem }],
145
+ shipments: [{ ...marketplaceOrderShippingItem }],
111
146
  totalWeight: primaryUnitValue
112
147
  }
113
148
  splittedShipmentItems.push(splittedShipment)
@@ -120,14 +155,18 @@ export const splitOrdersByBatch = {
120
155
  let shipments: any[] = shipmentItem.shipments
121
156
 
122
157
  shipments = shipments.map(async shipment => {
123
- if (shipment.marketplaceProductVariation.id === marketplaceProductVariation.id) {
124
- shipment.qty += marketplaceOrderItem.qty
158
+ if (shipment.product.id === product.id) {
159
+ shipment.qty += marketplaceOrderShippingItem.qty
125
160
  } else {
126
- marketplaceOrderItem.marketplaceOrder = marketplaceOrder
127
- marketplaceOrderItem.marketplaceOrderShipping = shipment.marketplaceOrderShipping
128
- marketplaceOrderItem.domain = marketplaceOrder.domain
129
- marketplaceOrderItem.docRefNo = marketplaceOrder.orderNo
130
- shipmentItem.shipments.push({ ...marketplaceOrderItem })
161
+ const matchedProduct = shipments.find(shipment => shipment.product.id == product.id)
162
+ if (!matchedProduct) {
163
+ marketplaceOrderShippingItem.name = uuid()
164
+ marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
165
+ marketplaceOrderShippingItem.marketplaceOrderShipping = shipment.marketplaceOrderShipping
166
+ marketplaceOrderShippingItem.product = product
167
+ marketplaceOrderShippingItem.domain = marketplaceOrder.domain
168
+ shipmentItem.shipments.push({ ...marketplaceOrderShippingItem })
169
+ }
131
170
  }
132
171
 
133
172
  shipment.marketplaceOrderShipping.totalWeight = parseFloat(
@@ -146,13 +185,14 @@ export const splitOrdersByBatch = {
146
185
  .getRepository(MarketplaceOrderShipping)
147
186
  .save(newMarketplaceOrderShipping)
148
187
 
149
- marketplaceOrderItem.marketplaceOrder = marketplaceOrder
150
- marketplaceOrderItem.marketplaceOrderShipping = newMarketplaceOrderShipping
151
- marketplaceOrderItem.domain = marketplaceOrder.domain
152
- marketplaceOrderItem.docRefNo = marketplaceOrder.orderNo
188
+ marketplaceOrderShippingItem.name = uuid()
189
+ marketplaceOrderShippingItem.marketplaceOrderItem = marketplaceOrderItem
190
+ marketplaceOrderShippingItem.marketplaceOrderShipping = newMarketplaceOrderShipping
191
+ marketplaceOrderShippingItem.product = product
192
+ marketplaceOrderShippingItem.domain = marketplaceOrder.domain
153
193
 
154
194
  let splittedShipment: any = {
155
- shipments: [{ ...marketplaceOrderItem }],
195
+ shipments: [{ ...marketplaceOrderShippingItem }],
156
196
  totalWeight: primaryUnitValue
157
197
  }
158
198
  splittedShipmentItems.push(splittedShipment)
@@ -160,260 +200,24 @@ export const splitOrdersByBatch = {
160
200
  }
161
201
  }
162
202
 
163
- let savedMarketplaceOrderItems: MarketplaceOrderItem[] = []
203
+ let savedMarketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = []
164
204
  for (let a: number = 0; a < splittedShipmentItems.length; a++) {
165
205
  const shipments: any[] = splittedShipmentItems[a].shipments
166
206
  for (let b: number = 0; b < shipments.length; b++) {
167
- savedMarketplaceOrderItems.push(shipments[b])
207
+ savedMarketplaceOrderShippingItems.push(shipments[b])
168
208
  }
169
209
  }
170
210
 
171
- savedMarketplaceOrderItems = await tx.getRepository(MarketplaceOrderItem).save(savedMarketplaceOrderItems)
211
+ savedMarketplaceOrderShippingItems = await tx
212
+ .getRepository(MarketplaceOrderShippingItem)
213
+ .save(savedMarketplaceOrderShippingItems)
172
214
 
173
- await tx.getRepository(MarketplaceOrderItem).delete(originalMarketplaceOrderItems.map(item => item.id))
215
+ await tx
216
+ .getRepository(MarketplaceOrderShippingItem)
217
+ .delete(originalMarketplaceOrderShippingItems.map(item => item.id))
174
218
 
175
219
  await tx.getRepository(MarketplaceOrderShipping).delete(originalMarketplaceOrderShipping.id)
176
220
 
177
- // if (marketplaceStore.platform === 'shopee') {
178
- // let marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
179
-
180
- // if (marketplaceOrderItems.some(item => item.marketplaceProductVariation.primaryUnitValue == null)) {
181
- // throw new Error('some sku weight are empty')
182
- // }
183
-
184
- // marketplaceOrderItems.sort(function (a, b) {
185
- // if (
186
- // a.marketplaceProductVariation.primaryUnitValue * a.qty <
187
- // b.marketplaceProductVariation.primaryUnitValue * b.qty
188
- // )
189
- // return -1
190
- // if (
191
- // a.marketplaceProductVariation.primaryUnitValue * a.qty >
192
- // b.marketplaceProductVariation.primaryUnitValue * b.qty
193
- // )
194
- // return 1
195
- // return 0
196
- // })
197
-
198
- // let splittedShipmentItems: any[] = []
199
- // for (let j: number = 0; j < marketplaceOrderItems.length; j++) {
200
- // const marketplaceOrderItem: MarketplaceOrderItem = marketplaceOrderItems[j]
201
- // const marketplaceProductVariation: MarketplaceProductVariation =
202
- // marketplaceOrderItem.marketplaceProductVariation
203
- // const qty: number = marketplaceOrderItem.qty
204
- // const primaryValue: number = parseFloat(marketplaceProductVariation.primaryUnitValue.toFixed(2)) * qty
205
-
206
- // if (splittedShipmentItems.length == 0) {
207
- // let splittedShipment: any = {
208
- // shipments: [{ ...marketplaceOrderItem }],
209
- // totalWeight: primaryValue
210
- // }
211
- // splittedShipmentItems.push(splittedShipment)
212
- // } else {
213
- // let lastShipment: any = splittedShipmentItems[splittedShipmentItems.length - 1]
214
- // let lastTotalWeight: number = parseFloat(lastShipment.totalWeight.toFixed(2))
215
- // if (lastTotalWeight + primaryValue < parseFloat(maxWeightSetting.value)) {
216
- // splittedShipmentItems.map((shipmentItem, idx) => {
217
- // if (idx === splittedShipmentItems.length - 1) {
218
- // let shipments: any[] = shipmentItem.shipments
219
-
220
- // shipments = shipments.map(async shipment => {
221
- // if (shipment.marketplaceProductVariation.id === marketplaceProductVariation.id) {
222
- // shipment.qty += marketplaceOrderItem.qty
223
- // } else {
224
- // marketplaceOrderItem.marketplaceOrder = marketplaceOrder
225
- // marketplaceOrderItem.marketplaceOrderShipping = shipment.marketplaceOrderShipping
226
- // shipmentItem.shipments.push({ ...marketplaceOrderItem })
227
- // }
228
-
229
- // shipment.marketplaceOrderShipping.totalWeight = parseFloat(
230
- // (lastTotalWeight + primaryValue).toFixed(2)
231
- // )
232
- // await tx.getRepository(MarketplaceOrderShipping).save(shipment.marketplaceOrderShipping)
233
- // })
234
-
235
- // shipmentItem.totalWeight += primaryValue
236
- // }
237
- // })
238
- // } else {
239
- // let splittedShipment: any = {
240
- // shipments: [{ ...marketplaceOrderItem }],
241
- // totalWeight: primaryValue
242
- // }
243
- // splittedShipmentItems.push(splittedShipment)
244
- // }
245
- // }
246
- // }
247
-
248
- // let parcels: any[] = []
249
-
250
- // splittedShipmentItems.forEach(shipmentItem => {
251
- // parcels.push(
252
- // shipmentItem.shipments.map(shipment => {
253
- // return {
254
- // item_id: parseFloat(shipment.name),
255
- // variation_id: parseFloat(shipment.marketplaceProductVariation.variationId),
256
- // order_item_id: parseFloat(shipment.name),
257
- // promotion_group_id: 0
258
- // }
259
- // })
260
- // )
261
- // })
262
-
263
- // const splittedPackage: any = await StoreAPI.splitOrder(marketplaceStore, {
264
- // ordersn: marketplaceOrder.orderNo,
265
- // parcels
266
- // })
267
-
268
- // const packageLists: any[] = splittedPackage.packageList
269
-
270
- // for (let a: number = 0; a < packageLists.length; a++) {
271
- // const packageList: any = packageLists[a]
272
- // const packageNumber: string = packageList.packageNumber
273
- // const packageItems: any[] = packageList.items
274
- // for (let b: number = 0; b < marketplaceOrderItems.length; b++) {
275
- // let marketplaceOrderItem: any = marketplaceOrderItems[b]
276
- // if (packageItems.find(item => item.itemId === marketplaceOrderItem)) {
277
- // marketplaceOrderItem.packageId = packageNumber
278
- // }
279
- // }
280
- // }
281
-
282
- // await tx.getRepository(MarketplaceOrderItem).save(marketplaceOrderItems)
283
- // } else {
284
- // let originalMarketplaceOrderShipping: MarketplaceOrderShipping = await tx
285
- // .getRepository(MarketplaceOrderShipping)
286
- // .findOne({
287
- // where: { domain, orderNoRef: marketplaceOrder.orderNo, marketplaceStore: marketplaceOrder.marketplaceStore }
288
- // })
289
-
290
- // const originalMarketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
291
- // let newMarketplaceOrderItems: MarketplaceOrderItem[] = []
292
- // let splittedShipmentItems: any[] = []
293
-
294
- // for (let a: number = 0; a < originalMarketplaceOrderItems.length; a++) {
295
- // const marketplaceOrderItem: MarketplaceOrderItem = originalMarketplaceOrderItems[a]
296
-
297
- // for (let b: number = 0; b < marketplaceOrderItem.qty; b++) {
298
- // const newItem: MarketplaceOrderItem = {
299
- // ...marketplaceOrderItem,
300
- // qty: 1
301
- // }
302
- // newMarketplaceOrderItems.push(newItem)
303
- // }
304
- // }
305
-
306
- // newMarketplaceOrderItems.sort(function (a, b) {
307
- // if (a.marketplaceProductVariation.primaryUnitValue < b.marketplaceProductVariation.primaryUnitValue) return -1
308
- // if (a.marketplaceProductVariation.primaryUnitValue > b.marketplaceProductVariation.primaryUnitValue) return 1
309
- // return 0
310
- // })
311
-
312
- // for (let a: number = 0; a < newMarketplaceOrderItems.length; a++) {
313
- // const marketplaceOrderItem: MarketplaceOrderItem = newMarketplaceOrderItems[a]
314
- // const marketplaceProductVariation: MarketplaceProductVariation =
315
- // marketplaceOrderItem.marketplaceProductVariation
316
- // if (!marketplaceProductVariation.primaryUnitValue)
317
- // throw new Error(marketplaceProductVariation.variationSku + 'weight is empty')
318
- // const primaryUnitValue: number = parseFloat(marketplaceProductVariation.primaryUnitValue.toFixed(2))
319
-
320
- // delete marketplaceOrderItem.id
321
-
322
- // let newMarketplaceOrderShipping: MarketplaceOrderShipping = new MarketplaceOrderShipping()
323
- // newMarketplaceOrderShipping.name = NoGenerator.orderShipping()
324
- // newMarketplaceOrderShipping.address1 = originalMarketplaceOrderShipping.address1
325
- // newMarketplaceOrderShipping.address2 = originalMarketplaceOrderShipping.address2
326
- // newMarketplaceOrderShipping.address3 = originalMarketplaceOrderShipping.address3
327
- // newMarketplaceOrderShipping.address4 = originalMarketplaceOrderShipping.address4
328
- // newMarketplaceOrderShipping.address5 = originalMarketplaceOrderShipping.address5
329
- // newMarketplaceOrderShipping.attentionTo = originalMarketplaceOrderShipping.attentionTo
330
- // newMarketplaceOrderShipping.city = originalMarketplaceOrderShipping.city
331
- // newMarketplaceOrderShipping.country = originalMarketplaceOrderShipping.country
332
- // newMarketplaceOrderShipping.postCode = originalMarketplaceOrderShipping.postCode
333
- // newMarketplaceOrderShipping.phone1 = originalMarketplaceOrderShipping.phone1
334
- // newMarketplaceOrderShipping.phone2 = originalMarketplaceOrderShipping.phone2
335
- // newMarketplaceOrderShipping.orderNoRef = marketplaceOrder.orderNo
336
- // newMarketplaceOrderShipping.transporter = originalMarketplaceOrderShipping.transporter
337
- // newMarketplaceOrderShipping.marketplaceStore = marketplaceStore
338
- // newMarketplaceOrderShipping.creator = user
339
- // newMarketplaceOrderShipping.domain = marketplaceOrder.domain
340
- // newMarketplaceOrderShipping.weightUnit = 'KG'
341
-
342
- // if (splittedShipmentItems.length == 0) {
343
- // newMarketplaceOrderShipping.totalWeight = primaryUnitValue
344
-
345
- // newMarketplaceOrderShipping = await tx
346
- // .getRepository(MarketplaceOrderShipping)
347
- // .save(newMarketplaceOrderShipping)
348
-
349
- // marketplaceOrderItem.marketplaceOrder = marketplaceOrder
350
- // marketplaceOrderItem.marketplaceOrderShipping = newMarketplaceOrderShipping
351
-
352
- // let splittedShipment: any = {
353
- // shipments: [{ ...marketplaceOrderItem }],
354
- // totalWeight: primaryUnitValue
355
- // }
356
- // splittedShipmentItems.push(splittedShipment)
357
- // } else {
358
- // let lastShipment: any = splittedShipmentItems[splittedShipmentItems.length - 1]
359
- // let lastTotalWeight: number = parseFloat(lastShipment.totalWeight.toFixed(2))
360
- // if (lastTotalWeight + primaryUnitValue < parseFloat(maxWeightSetting.value)) {
361
- // splittedShipmentItems.map((shipmentItem, idx) => {
362
- // if (idx === splittedShipmentItems.length - 1) {
363
- // let shipments: any[] = shipmentItem.shipments
364
-
365
- // shipments = shipments.map(async shipment => {
366
- // if (shipment.marketplaceProductVariation.id === marketplaceProductVariation.id) {
367
- // shipment.qty += marketplaceOrderItem.qty
368
- // } else {
369
- // marketplaceOrderItem.marketplaceOrder = marketplaceOrder
370
- // marketplaceOrderItem.marketplaceOrderShipping = shipment.marketplaceOrderShipping
371
- // shipmentItem.shipments.push({ ...marketplaceOrderItem })
372
- // }
373
-
374
- // shipment.marketplaceOrderShipping.totalWeight = parseFloat(
375
- // (lastTotalWeight + primaryUnitValue).toFixed(2)
376
- // )
377
- // await tx.getRepository(MarketplaceOrderShipping).save(shipment.marketplaceOrderShipping)
378
- // })
379
-
380
- // shipmentItem.totalWeight += primaryUnitValue
381
- // }
382
- // })
383
- // } else {
384
- // newMarketplaceOrderShipping.totalWeight = primaryUnitValue
385
-
386
- // newMarketplaceOrderShipping = await tx
387
- // .getRepository(MarketplaceOrderShipping)
388
- // .save(newMarketplaceOrderShipping)
389
-
390
- // marketplaceOrderItem.marketplaceOrder = marketplaceOrder
391
- // marketplaceOrderItem.marketplaceOrderShipping = newMarketplaceOrderShipping
392
-
393
- // let splittedShipment: any = {
394
- // shipments: [{ ...marketplaceOrderItem }],
395
- // totalWeight: primaryUnitValue
396
- // }
397
- // splittedShipmentItems.push(splittedShipment)
398
- // }
399
- // }
400
- // }
401
-
402
- // let savedMarketplaceOrderItems: MarketplaceOrderItem[] = []
403
- // for (let a: number = 0; a < splittedShipmentItems.length; a++) {
404
- // const shipments: any[] = splittedShipmentItems[a].shipments
405
- // for (let b: number = 0; b < shipments.length; b++) {
406
- // savedMarketplaceOrderItems.push(shipments[b])
407
- // }
408
- // }
409
-
410
- // savedMarketplaceOrderItems = await tx.getRepository(MarketplaceOrderItem).save(savedMarketplaceOrderItems)
411
-
412
- // await tx.getRepository(MarketplaceOrderItem).delete(originalMarketplaceOrderItems.map(item => item.id))
413
-
414
- // await tx.getRepository(MarketplaceOrderShipping).delete(originalMarketplaceOrderShipping.id)
415
- // }
416
-
417
221
  let marketplaceOrderShippings: MarketplaceOrderShipping[] = await tx
418
222
  .getRepository(MarketplaceOrderShipping)
419
223
  .find({ where: { domain, orderNoRef: marketplaceOrder.orderNo } })
@@ -339,7 +339,9 @@ export const syncAllMarketplaceOrder = {
339
339
  } else {
340
340
  if (existingMarketplaceOrder?.marketplaceOrderItems) {
341
341
  let existingOrderShipping: MarketplaceOrderShipping
342
- existingOrderShipping = existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShipping
342
+ existingOrderShipping =
343
+ existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShippingItems[0]
344
+ .marketplaceOrderShipping
343
345
 
344
346
  marketplaceOrderShipping = {
345
347
  ...existingOrderShipping,
@@ -395,7 +397,6 @@ export const syncAllMarketplaceOrder = {
395
397
  marketplaceOrderItem.marketplaceProductVariation = foundVariation
396
398
  marketplaceOrderItem.marketplaceOrder = marketplaceOrder
397
399
  marketplaceOrderItem.trackingCode = order.trackingNo
398
- marketplaceOrderItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
399
400
  marketplaceOrderItem.originalPrice = item.originalPrice
400
401
  marketplaceOrderItem.discount = item.discount
401
402
  marketplaceOrderItem.promotionId = item.promotionId