@things-factory/marketplace-base 4.1.2 → 4.1.8

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 (129) 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 +6 -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 +10 -5
  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 +58 -3
  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/initialise-logistics-by-batch.js +2 -0
  24. package/dist-server/graphql/resolvers/marketplace-order/initialise-logistics-by-batch.js.map +1 -1
  25. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.js +3 -2
  26. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.js.map +1 -1
  27. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.js +4 -2
  28. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.js.map +1 -1
  29. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js +2 -1
  30. package/dist-server/graphql/resolvers/marketplace-order/marketplace-orders.js.map +1 -1
  31. package/dist-server/graphql/resolvers/marketplace-order/split-orders-by-batch.js +72 -243
  32. package/dist-server/graphql/resolvers/marketplace-order/split-orders-by-batch.js.map +1 -1
  33. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js +20 -12
  34. package/dist-server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.js.map +1 -1
  35. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js +62 -5
  36. package/dist-server/graphql/resolvers/marketplace-order/sync-marketplace-order.js.map +1 -1
  37. package/dist-server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.js +65 -37
  38. package/dist-server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.js.map +1 -1
  39. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.js +7 -4
  40. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.js.map +1 -1
  41. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js +2 -1
  42. package/dist-server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.js.map +1 -1
  43. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.js +11 -0
  44. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.js.map +1 -0
  45. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.js +12 -0
  46. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.js.map +1 -0
  47. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.js +15 -0
  48. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.js.map +1 -0
  49. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/index.js +14 -0
  50. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/index.js.map +1 -0
  51. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.js +22 -0
  52. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.js.map +1 -0
  53. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.js +14 -0
  54. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.js.map +1 -0
  55. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.js +15 -0
  56. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.js.map +1 -0
  57. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.js +30 -0
  58. package/dist-server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.js.map +1 -0
  59. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js +2 -1
  60. package/dist-server/graphql/resolvers/marketplace-report/marketplace-sales-report.js.map +1 -1
  61. package/dist-server/graphql/types/index.js +1 -0
  62. package/dist-server/graphql/types/index.js.map +1 -1
  63. package/dist-server/graphql/types/marketplace-order/index.js +8 -7
  64. package/dist-server/graphql/types/marketplace-order/index.js.map +1 -1
  65. package/dist-server/graphql/types/marketplace-order/logistics-info.js +1 -0
  66. package/dist-server/graphql/types/marketplace-order/logistics-info.js.map +1 -1
  67. package/dist-server/graphql/types/marketplace-order-item/marketplace-order-item.js +1 -1
  68. package/dist-server/graphql/types/marketplace-order-item/new-marketplace-order-item.js +0 -1
  69. package/dist-server/graphql/types/marketplace-order-item/new-marketplace-order-item.js.map +1 -1
  70. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.js +0 -1
  71. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.js.map +1 -1
  72. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.js +2 -1
  73. package/dist-server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.js.map +1 -1
  74. package/dist-server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.js +0 -1
  75. package/dist-server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.js.map +1 -1
  76. package/dist-server/graphql/types/marketplace-order-shipping-item/index.js +47 -0
  77. package/dist-server/graphql/types/marketplace-order-shipping-item/index.js.map +1 -0
  78. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.js +14 -0
  79. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.js.map +1 -0
  80. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.js +19 -0
  81. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.js.map +1 -0
  82. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.js +22 -0
  83. package/dist-server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.js.map +1 -0
  84. package/dist-server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.js +18 -0
  85. package/dist-server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.js.map +1 -0
  86. package/package.json +6 -6
  87. package/server/entities/index.ts +15 -12
  88. package/server/entities/marketplace-order-item.ts +17 -5
  89. package/server/entities/marketplace-order-shipping-item.ts +55 -0
  90. package/server/entities/marketplace-order-shipping.ts +9 -3
  91. package/server/graphql/resolvers/index.ts +1 -0
  92. package/server/graphql/resolvers/marketplace-order/auto-initialise-logistics-by-batch.ts +9 -6
  93. package/server/graphql/resolvers/marketplace-order/auto-update-order-ready-to-ship.ts +16 -6
  94. package/server/graphql/resolvers/marketplace-order/generate-marketplace-order.ts +65 -3
  95. package/server/graphql/resolvers/marketplace-order/get-etrax-order-document.ts +5 -2
  96. package/server/graphql/resolvers/marketplace-order/get-order-document.ts +22 -7
  97. package/server/graphql/resolvers/marketplace-order/initialise-lazada-logistics-by-batch.ts +4 -2
  98. package/server/graphql/resolvers/marketplace-order/initialise-logistics-by-batch.ts +2 -0
  99. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-batch-init.ts +5 -2
  100. package/server/graphql/resolvers/marketplace-order/marketplace-orders-for-export.ts +7 -3
  101. package/server/graphql/resolvers/marketplace-order/marketplace-orders.ts +2 -1
  102. package/server/graphql/resolvers/marketplace-order/split-orders-by-batch.ts +84 -280
  103. package/server/graphql/resolvers/marketplace-order/sync-all-marketplace-order.ts +25 -13
  104. package/server/graphql/resolvers/marketplace-order/sync-marketplace-order.ts +67 -6
  105. package/server/graphql/resolvers/marketplace-order/update-order-ready-to-ship.ts +80 -42
  106. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shipping.ts +9 -4
  107. package/server/graphql/resolvers/marketplace-order-shipping/marketplace-order-shippings.ts +2 -1
  108. package/server/graphql/resolvers/marketplace-order-shipping-item/create-marketplace-order-shipping-item.ts +14 -0
  109. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-item.ts +10 -0
  110. package/server/graphql/resolvers/marketplace-order-shipping-item/delete-marketplace-order-shipping-items.ts +13 -0
  111. package/server/graphql/resolvers/marketplace-order-shipping-item/index.ts +20 -0
  112. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +21 -0
  113. package/server/graphql/resolvers/marketplace-order-shipping-item/marketplace-order-shipping-items.ts +16 -0
  114. package/server/graphql/resolvers/marketplace-order-shipping-item/update-marketplace-order-shipping-item.ts +18 -0
  115. package/server/graphql/resolvers/marketplace-order-shipping-item/update-multiple-marketplace-order-shipping-item.ts +44 -0
  116. package/server/graphql/resolvers/marketplace-report/marketplace-sales-report.ts +2 -1
  117. package/server/graphql/types/index.ts +1 -0
  118. package/server/graphql/types/marketplace-order/index.ts +8 -7
  119. package/server/graphql/types/marketplace-order/logistics-info.ts +1 -0
  120. package/server/graphql/types/marketplace-order-item/marketplace-order-item.ts +1 -1
  121. package/server/graphql/types/marketplace-order-item/new-marketplace-order-item.ts +0 -1
  122. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping-patch.ts +0 -1
  123. package/server/graphql/types/marketplace-order-shipping/marketplace-order-shipping.ts +2 -1
  124. package/server/graphql/types/marketplace-order-shipping/new-marketplace-order-shipping.ts +0 -1
  125. package/server/graphql/types/marketplace-order-shipping-item/index.ts +32 -0
  126. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-list.ts +8 -0
  127. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item-patch.ts +13 -0
  128. package/server/graphql/types/marketplace-order-shipping-item/marketplace-order-shipping-item.ts +16 -0
  129. package/server/graphql/types/marketplace-order-shipping-item/new-marketplace-order-shipping-item.ts +12 -0
@@ -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 } })
@@ -117,8 +117,9 @@ export const syncAllMarketplaceOrder = {
117
117
  'domain',
118
118
  'fulfillmentCenter',
119
119
  'marketplaceOrderItems',
120
- 'marketplaceOrderItems.marketplaceProductVariation',
121
- 'marketplaceOrderItems.marketplaceOrderShipping'
120
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
121
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
122
+ 'marketplaceOrderItems.marketplaceProductVariation'
122
123
  ]
123
124
  })
124
125
 
@@ -236,7 +237,7 @@ export const syncAllMarketplaceOrder = {
236
237
  })
237
238
 
238
239
  if (releaseOrders?.length) {
239
- for (var a = 0; a < releaseOrders.length; a++) {
240
+ for (let a = 0; a < releaseOrders.length; a++) {
240
241
  const releaseOrderId: string = releaseOrders[a].id
241
242
  await FulfillmentAPI.cancelReleaseOrder(fulfillmentCenter, {
242
243
  customerBizplaceId,
@@ -322,10 +323,12 @@ export const syncAllMarketplaceOrder = {
322
323
  attentionTo: orderShipping.attentionTo,
323
324
  city: orderShipping.city,
324
325
  country: orderShipping.country,
326
+ state: orderShipping?.state,
325
327
  postCode: orderShipping.postCode,
326
328
  phone1: orderShipping.phone1,
327
329
  phone2: orderShipping.phone2,
328
- trackingNo: order.trackingNo,
330
+ email: orderShipping?.email,
331
+ trackingNo: order?.trackingNo,
329
332
  shippingFee: orderShipping.shippingFee,
330
333
  actualShippingFee: orderShipping.actualShippingFee,
331
334
  marketplaceShippingFeeVoucher: orderShipping.marketplaceShippingFeeVoucher,
@@ -339,12 +342,18 @@ export const syncAllMarketplaceOrder = {
339
342
  } else {
340
343
  if (existingMarketplaceOrder?.marketplaceOrderItems) {
341
344
  let existingOrderShipping: MarketplaceOrderShipping
342
- existingOrderShipping = existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShipping
345
+ existingOrderShipping =
346
+ existingMarketplaceOrder.marketplaceOrderItems[0].marketplaceOrderShippingItems[0]
347
+ .marketplaceOrderShipping
343
348
 
344
349
  marketplaceOrderShipping = {
345
350
  ...existingOrderShipping,
346
351
  ...marketplaceOrderShipping,
347
- trackingNo: order?.trackingNo ? order.trackingNo : existingOrderShipping.trackingNo,
352
+ trackingNo: marketplaceOrderShipping?.trackingNo
353
+ ? marketplaceOrderShipping.trackingNo
354
+ : existingOrderShipping?.trackingNo
355
+ ? existingOrderShipping.trackingNo
356
+ : marketplaceOrderShipping.trackingNo,
348
357
  updater: user
349
358
  }
350
359
 
@@ -364,10 +373,15 @@ export const syncAllMarketplaceOrder = {
364
373
  let foundVariations = []
365
374
  for (var j = 0; j < order.orderItems.length; j++) {
366
375
  var item = order.orderItems[j]
367
- let foundVariation = await getRepository(MarketplaceProductVariation).findOne({
368
- where: { domain: marketplaceStore.domain, variationId: item.variationId }
376
+ let foundVariationsQuery = await getRepository(MarketplaceProductVariation).find({
377
+ where: { domain: marketplaceStore.domain, variationId: item.variationId },
378
+ relations: ['domain', 'marketplaceProduct', 'marketplaceProduct.marketplaceStore']
369
379
  })
370
380
 
381
+ let foundVariation = foundVariationsQuery.filter(
382
+ fv => fv.marketplaceProduct.marketplaceStore.id == marketplaceStore.id
383
+ )[0]
384
+
371
385
  if (foundVariation) {
372
386
  foundVariations.push(foundVariation)
373
387
  }
@@ -393,9 +407,8 @@ export const syncAllMarketplaceOrder = {
393
407
  marketplaceOrderItem.status = marketplaceOrder.status
394
408
  marketplaceOrderItem.docRefNo = item.docRefNo
395
409
  marketplaceOrderItem.marketplaceProductVariation = foundVariation
396
- marketplaceOrderItem.marketplaceOrder = marketplaceOrder
397
410
  marketplaceOrderItem.trackingCode = order.trackingNo
398
- marketplaceOrderItem.marketplaceOrderShipping = savedMarketplaceOrderShipping
411
+ marketplaceOrderItem.marketplaceOrder = marketplaceOrder
399
412
  marketplaceOrderItem.originalPrice = item.originalPrice
400
413
  marketplaceOrderItem.discount = item.discount
401
414
  marketplaceOrderItem.promotionId = item.promotionId
@@ -416,7 +429,7 @@ export const syncAllMarketplaceOrder = {
416
429
  marketplaceOrderItem.promotionalChargesFlexiCombo = item.promotionalChargesFlexiCombo
417
430
  marketplaceOrderItem.autoShippingSubsidyMarketplace = item.autoShippingSubsidyMarketplace
418
431
  marketplaceOrderItem.originalShippingFee = item.originalShippingFee
419
- marketplaceOrderItem.taxAmount = item.autoShippingSubsidyMarketplace
432
+ marketplaceOrderItem.taxAmount = item.taxAmount
420
433
 
421
434
  marketplaceOrderItems.push({ ...marketplaceOrderItem })
422
435
 
@@ -665,11 +678,10 @@ export const syncAllMarketplaceOrder = {
665
678
  relations: ['domain', 'marketplaceProduct', 'marketplaceProduct.marketplaceStore']
666
679
  })
667
680
 
668
- let item = order.orderItems.find(e => e.variationId == foundVariation.variationId)
669
681
  let activeVariations: MarketplaceProductVariation[] = allVariations.filter(
670
682
  variation => variation.marketplaceProduct.marketplaceStore.status != 'TERMINATED'
671
683
  )
672
-
684
+ let item = order.orderItems.find(e => e.variationId == foundVariation.variationId)
673
685
  await Promise.all(
674
686
  activeVariations.map(async variation => {
675
687
  await calculateReserveQtyForBundle(variation, marketplaceOrder.domain, item.qty)