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

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 (82) hide show
  1. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +3 -3
  2. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  3. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +4 -2
  4. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/loading-worksheet-controller.js +4 -10
  6. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/outbound/packing-worksheet-controller.js +20 -22
  8. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/picking-worksheet-controller.js +39 -34
  10. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +14 -12
  12. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/vas/vas-worksheet-controller.js +2 -1
  14. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/worksheet-controller.js +3 -2
  16. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  17. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +0 -6
  18. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  19. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +2 -1
  20. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  21. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +6 -6
  22. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  23. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +1 -2
  24. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  25. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +28 -67
  26. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  27. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +8 -23
  28. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  29. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +7 -30
  30. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  31. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +8 -23
  32. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  33. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +8 -25
  34. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  35. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +12 -59
  36. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  37. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +25 -51
  38. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  39. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +2 -2
  40. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  41. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +118 -262
  42. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  43. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +2 -3
  44. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  45. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +14 -39
  46. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  47. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +17 -17
  48. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  49. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +4 -4
  50. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
  51. package/dist-server/graphql/types/worksheet-detail/index.js +0 -1
  52. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  53. package/dist-server/utils/inventory-util.js +98 -1
  54. package/dist-server/utils/inventory-util.js.map +1 -1
  55. package/package.json +17 -17
  56. package/server/controllers/inbound/unloading-worksheet-controller.ts +4 -5
  57. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +4 -2
  58. package/server/controllers/outbound/loading-worksheet-controller.ts +3 -9
  59. package/server/controllers/outbound/packing-worksheet-controller.ts +31 -23
  60. package/server/controllers/outbound/picking-worksheet-controller.ts +51 -34
  61. package/server/controllers/outbound/sorting-worksheet-controller.ts +12 -12
  62. package/server/controllers/vas/vas-worksheet-controller.ts +2 -2
  63. package/server/controllers/worksheet-controller.ts +6 -4
  64. package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +0 -6
  65. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +2 -1
  66. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +2 -2
  67. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +1 -3
  68. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +33 -77
  69. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +9 -26
  70. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +9 -34
  71. package/server/graphql/resolvers/worksheet/packing/packing.ts +9 -26
  72. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +9 -28
  73. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +13 -68
  74. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +30 -60
  75. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +2 -2
  76. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +130 -288
  77. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +2 -3
  78. package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +15 -45
  79. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +2 -3
  80. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +1 -4
  81. package/server/graphql/types/worksheet-detail/index.ts +0 -1
  82. package/server/utils/inventory-util.ts +126 -1
@@ -69,7 +69,7 @@ export async function completeBatchPicking(
69
69
 
70
70
  let foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
71
71
  where: { id: releaseGood.id },
72
- relations: ['orderProducts', 'orderProducts.product']
72
+ relations: ['orderProducts', 'orderProducts.product', 'orderProducts.product.productDetails']
73
73
  })
74
74
 
75
75
  if (!foundReleaseGood?.packageId) {
@@ -112,7 +112,7 @@ export async function completeBatchPicking(
112
112
  })
113
113
 
114
114
  // loop to generate packing worksheet
115
- for (let i: number = 0; i < uniqueRoNo.length; i++) {
115
+ for (var i: number = 0; i < uniqueRoNo.length; i++) {
116
116
  const releaseGoodNo: string = uniqueRoNo[i]
117
117
  const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
118
118
  await packingWSCtrl.generatePackingWorksheet(releaseGoodNo)
@@ -1,6 +1,6 @@
1
1
  import { EntityManager, getManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { Bizplace, ContactPoint, getMyBizplace } from '@things-factory/biz-base'
5
5
  import { LastMileAPI, LastMileDelivery } from '@things-factory/integration-lmd'
6
6
  import { MarketplaceStore, MarketplaceTransporter } from '@things-factory/integration-marketplace'
@@ -81,307 +81,149 @@ export async function completePicking(
81
81
 
82
82
  await pickingWSCtrl.completePicking(releaseGoodNo)
83
83
 
84
- const orderSource: string = releaseGood.source
85
- switch (orderSource) {
86
- case ApplicationType.SELLERCRAFT:
87
- const sellercraft: Sellercraft = await tx
88
- .getRepository(Sellercraft)
89
- .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
90
- const initSCOrderShipment = async sellercraft => {
91
- if (sellercraft) {
92
- await getManager().transaction(async txMgr => {
93
- const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)
94
-
95
- if (!releaseGood?.packageId) {
96
- const orderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).find({
97
- where: { releaseGood },
98
- relations: ['product', 'product.productDetails']
99
- })
100
- releaseGood = await sellercraftCtrl.packOrder(sellercraft, { ...releaseGood, orderProducts })
101
-
102
- if (releaseGood?.packageId) {
103
- await txMgr
104
- .getRepository(ReleaseGood)
105
- .update({ id: releaseGood.id }, { packageId: releaseGood.packageId, updater: releaseGood.updater })
106
- }
84
+ if (releaseGood.type == 'b2c') {
85
+
86
+ const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
87
+ const initSCOrderShipment = async (sellercraft) => {
88
+ if (sellercraft) {
89
+
90
+ await getManager().transaction(async txMgr => {
91
+ const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)
92
+
93
+ if (!releaseGood?.packageId) {
94
+ const orderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).find({
95
+ where: { releaseGood },
96
+ relations: ['product', 'product.productDetails']
97
+ })
98
+ releaseGood = await sellercraftCtrl.packOrder(sellercraft, { ...releaseGood, orderProducts })
99
+
100
+ if (releaseGood?.packageId) {
101
+ await txMgr.getRepository(ReleaseGood).update({ id: releaseGood.id }, { packageId: releaseGood.packageId, updater: releaseGood.updater })
107
102
  }
103
+ }
108
104
 
109
- await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
110
- })
111
- }
105
+ await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
106
+ })
112
107
  }
108
+ }
113
109
 
114
- // asynchronouly call to initiate sellercraft order shipment/ RTS
115
- initSCOrderShipment(sellercraft)
116
- break
117
-
118
- case ApplicationType.MMS:
119
- const companyDomain: Domain = releaseGood.bizplace.company.domain
120
- let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
121
- where: { orderNo: releaseGood.refNo, domain: companyDomain },
122
- relations: [
123
- 'marketplaceStore',
124
- 'marketplaceOrderItems',
125
- 'marketplaceOrderItems.marketplaceOrderShippingItems',
126
- 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
127
- ]
128
- })
129
-
130
- if (marketplaceOrder) {
131
- const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
132
- let eTraxOption: boolean
133
-
134
- if (marketplaceStore.isAutoUpdateShipment) {
135
- const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
136
- await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PACKING)
137
- }
110
+ // asynchronouly call to initiate sellercraft order shipment/ RTS
111
+ initSCOrderShipment(sellercraft)
112
+
113
+ const companyDomain: Domain = releaseGood.bizplace.company.domain
114
+ let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
115
+ where: { orderNo: releaseGood.refNo, domain: companyDomain },
116
+ relations: [
117
+ 'marketplaceStore',
118
+ 'marketplaceOrderItems',
119
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
120
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
121
+ ]
122
+ })
138
123
 
139
- if (!marketplaceOrder)
140
- throw new Error('Failed to find ecommerce order, kindly contact our support team regarding this issue')
141
- eTraxOption = marketplaceOrder?.marketplaceStore.eTrax
142
-
143
- // if eTrax option is true
144
- if (eTraxOption) {
145
- const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
146
-
147
- // access every marketplaceOrderItems for shipping information you need
148
- // trigger the controller from integration-lmd that trigger the API, build the parameters needed
149
- // for etrax didn't support multi awb per order
150
- const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =
151
- marketplaceOrderItems[0].marketplaceOrderShippingItems
152
- const marketplaceOrderShipping: MarketplaceOrderShipping =
153
- marketplaceOrderShippingItems[0].marketplaceOrderShipping
154
- const lmd: LastMileDelivery = await tx.getRepository(LastMileDelivery).findOne({
155
- where: {
156
- domain,
157
- platform: 'eTrax'
158
- }
159
- })
160
-
161
- //Get which transporter to use
162
- const marketplaceTransporter: MarketplaceTransporter = await tx
163
- .getRepository(MarketplaceTransporter)
164
- .findOne({
165
- where: { marketplaceStore: marketplaceOrder.marketplaceStore },
166
- relations: ['pickupTransporter', 'deliveryTransporter']
167
- })
124
+ if (!sellercraft && marketplaceOrder) {
125
+ const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
126
+ let eTraxOption: boolean
168
127
 
169
- const resp = await LastMileAPI.createShipmentRequest(lmd, {
170
- orderNo: marketplaceOrder.orderNo,
171
- clientId: lmd.clientId,
172
- clientType: lmd.clientType,
173
- clientName: lmd.clientName,
174
- transporterId: marketplaceTransporter.pickupTransporter.transporterId,
175
- pickupName: warehouseContactPoint.name,
176
- pickupAddress1: warehouseContactPoint.address,
177
- pickupAddress2: warehouseContactPoint.address2,
178
- pickupPostcode: warehouseContactPoint.postCode,
179
- pickupState: warehouseContactPoint.state,
180
- pickupCity: warehouseContactPoint.city,
181
- pickupPhone: warehouseContactPoint.phone,
182
- pickupEmail: warehouseContactPoint.email,
183
- name: marketplaceOrderShipping?.attentionTo ? marketplaceOrderShipping.attentionTo.trim() : '',
184
- address1: marketplaceOrderShipping?.address1 ? marketplaceOrderShipping?.address1.trim() : '-',
185
- address2: marketplaceOrderShipping?.address2 ? marketplaceOrderShipping?.address2.trim() : '-',
186
- postCode: marketplaceOrderShipping?.postCode ? marketplaceOrderShipping?.postCode.trim() : '',
187
- city: marketplaceOrderShipping?.city ? marketplaceOrderShipping?.city.trim() : '',
188
- state: marketplaceOrderShipping?.state ? marketplaceOrderShipping?.state.trim() : '',
189
- phone: marketplaceOrderShipping.phone1 || '',
190
- email: marketplaceOrderShipping.email || '',
191
- attentionTo: marketplaceOrderShipping.attentionTo,
192
- quantity: marketplaceOrderItems.length
193
- })
194
-
195
- const delay = (ms: number) => {
196
- return new Promise(resolve => setTimeout(resolve, ms))
128
+ if (marketplaceStore.isAutoUpdateShipment) {
129
+ const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
130
+ await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PACKING)
131
+ }
132
+
133
+ if (!marketplaceOrder)
134
+ throw new Error('Failed to find ecommerce order, kindly contact our support team regarding this issue')
135
+ eTraxOption = marketplaceOrder?.marketplaceStore.eTrax
136
+
137
+ // if eTrax option is true
138
+ if (eTraxOption) {
139
+ const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
140
+
141
+ // access every marketplaceOrderItems for shipping information you need
142
+ // trigger the controller from integration-lmd that trigger the API, build the parameters needed
143
+ // for etrax didn't support multi awb per order
144
+ const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =
145
+ marketplaceOrderItems[0].marketplaceOrderShippingItems
146
+ const marketplaceOrderShipping: MarketplaceOrderShipping =
147
+ marketplaceOrderShippingItems[0].marketplaceOrderShipping
148
+ const lmd: LastMileDelivery = await tx.getRepository(LastMileDelivery).findOne({
149
+ where: {
150
+ domain,
151
+ platform: 'eTrax'
197
152
  }
153
+ })
154
+
155
+ //Get which transporter to use
156
+ const marketplaceTransporter: MarketplaceTransporter = await tx.getRepository(MarketplaceTransporter).findOne({
157
+ where: { marketplaceStore: marketplaceOrder.marketplaceStore },
158
+ relations: ['pickupTransporter', 'deliveryTransporter']
159
+ })
160
+
161
+ const resp = await LastMileAPI.createShipmentRequest(lmd, {
162
+ orderNo: marketplaceOrder.orderNo,
163
+ clientId: lmd.clientId,
164
+ clientType: lmd.clientType,
165
+ clientName: lmd.clientName,
166
+ transporterId: marketplaceTransporter.pickupTransporter.transporterId,
167
+ pickupName: warehouseContactPoint.name,
168
+ pickupAddress1: warehouseContactPoint.address,
169
+ pickupAddress2: warehouseContactPoint.address2,
170
+ pickupPostcode: warehouseContactPoint.postCode,
171
+ pickupState: warehouseContactPoint.state,
172
+ pickupCity: warehouseContactPoint.city,
173
+ pickupPhone: warehouseContactPoint.phone,
174
+ pickupEmail: warehouseContactPoint.email,
175
+ name: marketplaceOrderShipping?.attentionTo ? marketplaceOrderShipping.attentionTo.trim() : '',
176
+ address1: marketplaceOrderShipping?.address1 ? marketplaceOrderShipping?.address1.trim() : '-',
177
+ address2: marketplaceOrderShipping?.address2 ? marketplaceOrderShipping?.address2.trim() : '-',
178
+ postCode: marketplaceOrderShipping?.postCode ? marketplaceOrderShipping?.postCode.trim() : '',
179
+ city: marketplaceOrderShipping?.city ? marketplaceOrderShipping?.city.trim() : '',
180
+ state: marketplaceOrderShipping?.state ? marketplaceOrderShipping?.state.trim() : '',
181
+ phone: marketplaceOrderShipping.phone1 || '',
182
+ email: marketplaceOrderShipping.email || '',
183
+ attentionTo: marketplaceOrderShipping.attentionTo,
184
+ quantity: marketplaceOrderItems.length
185
+ })
186
+
187
+ const delay = (ms: number) => {
188
+ return new Promise(resolve => setTimeout(resolve, ms))
189
+ }
198
190
 
199
- if (resp.Status === 'SUCCESS') {
200
- //Success
201
- let awbObtained = false
202
- let retry = 0
203
- while (!awbObtained) {
204
- const marketplaceOrder2: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
205
- where: { releaseOrderId: releaseGood.id },
206
- relations: [
207
- 'marketplaceStore',
208
- 'marketplaceOrderItems',
209
- 'marketplaceOrderItems.marketplaceOrderShippingItems',
210
- 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
211
- ]
212
- })
213
- const orderShipping =
214
- marketplaceOrder2.marketplaceOrderItems[0].marketplaceOrderShippingItems[0].marketplaceOrderShipping
215
- if (orderShipping?.airwayBill) {
216
- awbObtained = true
217
- }
218
- await delay(5000)
219
- //Timeout after 15sec
220
- if (++retry > 3) {
221
- break
222
- }
191
+ if (resp.Status === 'SUCCESS') {
192
+ //Success
193
+ let awbObtained = false
194
+ let retry = 0
195
+ while (!awbObtained) {
196
+ const marketplaceOrder2: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
197
+ where: { releaseOrderId: releaseGood.id },
198
+ relations: [
199
+ 'marketplaceStore',
200
+ 'marketplaceOrderItems',
201
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
202
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
203
+ ]
204
+ })
205
+ const orderShipping =
206
+ marketplaceOrder2.marketplaceOrderItems[0].marketplaceOrderShippingItems[0].marketplaceOrderShipping
207
+ if (orderShipping?.airwayBill) {
208
+ awbObtained = true
209
+ }
210
+ await delay(5000)
211
+ //Timeout after 15sec
212
+ if (++retry > 3) {
213
+ break
223
214
  }
224
- } else {
225
- if (resp?.AWBurl && resp?.TrackingNo)
226
- await tx
227
- .getRepository(MarketplaceOrderShipping)
228
- .update({ id: marketplaceOrderShipping.id }, { airwayBill: resp.AWBurl, trackingNo: resp.TrackingNo })
229
- else throw resp
230
215
  }
216
+ } else {
217
+ if (resp?.AWBurl && resp?.TrackingNo)
218
+ await tx
219
+ .getRepository(MarketplaceOrderShipping)
220
+ .update({ id: marketplaceOrderShipping.id }, { airwayBill: resp.AWBurl, trackingNo: resp.TrackingNo })
221
+ else throw resp
231
222
  }
232
223
  }
233
- break
234
-
235
- default:
236
- break
224
+ }
237
225
  }
238
226
 
239
- // if (releaseGood.type == 'b2c') {
240
- // const sellercraft: Sellercraft = await tx
241
- // .getRepository(Sellercraft)
242
- // .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })
243
-
244
- // const initSCOrderShipment = async sellercraft => {
245
- // if (sellercraft) {
246
- // await getManager().transaction(async txMgr => {
247
- // const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)
248
-
249
- // if (!releaseGood?.packageId) {
250
- // const orderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).find({
251
- // where: { releaseGood },
252
- // relations: ['product', 'product.productDetails']
253
- // })
254
- // releaseGood = await sellercraftCtrl.packOrder(sellercraft, { ...releaseGood, orderProducts })
255
-
256
- // if (releaseGood?.packageId) {
257
- // await txMgr
258
- // .getRepository(ReleaseGood)
259
- // .update({ id: releaseGood.id }, { packageId: releaseGood.packageId, updater: releaseGood.updater })
260
- // }
261
- // }
262
-
263
- // await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)
264
- // })
265
- // }
266
- // }
267
-
268
- // // asynchronouly call to initiate sellercraft order shipment/ RTS
269
- // initSCOrderShipment(sellercraft)
270
-
271
- // const companyDomain: Domain = releaseGood.bizplace.company.domain
272
- // let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
273
- // where: { orderNo: releaseGood.refNo, domain: companyDomain },
274
- // relations: [
275
- // 'marketplaceStore',
276
- // 'marketplaceOrderItems',
277
- // 'marketplaceOrderItems.marketplaceOrderShippingItems',
278
- // 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
279
- // ]
280
- // })
281
-
282
- // if (!sellercraft && marketplaceOrder) {
283
- // const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore
284
- // let eTraxOption: boolean
285
-
286
- // if (marketplaceStore.isAutoUpdateShipment) {
287
- // const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
288
- // await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PACKING)
289
- // }
290
-
291
- // if (!marketplaceOrder)
292
- // throw new Error('Failed to find ecommerce order, kindly contact our support team regarding this issue')
293
- // eTraxOption = marketplaceOrder?.marketplaceStore.eTrax
294
-
295
- // // if eTrax option is true
296
- // if (eTraxOption) {
297
- // const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems
298
-
299
- // // access every marketplaceOrderItems for shipping information you need
300
- // // trigger the controller from integration-lmd that trigger the API, build the parameters needed
301
- // // for etrax didn't support multi awb per order
302
- // const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =
303
- // marketplaceOrderItems[0].marketplaceOrderShippingItems
304
- // const marketplaceOrderShipping: MarketplaceOrderShipping =
305
- // marketplaceOrderShippingItems[0].marketplaceOrderShipping
306
- // const lmd: LastMileDelivery = await tx.getRepository(LastMileDelivery).findOne({
307
- // where: {
308
- // domain,
309
- // platform: 'eTrax'
310
- // }
311
- // })
312
-
313
- // //Get which transporter to use
314
- // const marketplaceTransporter: MarketplaceTransporter = await tx.getRepository(MarketplaceTransporter).findOne({
315
- // where: { marketplaceStore: marketplaceOrder.marketplaceStore },
316
- // relations: ['pickupTransporter', 'deliveryTransporter']
317
- // })
318
-
319
- // const resp = await LastMileAPI.createShipmentRequest(lmd, {
320
- // orderNo: marketplaceOrder.orderNo,
321
- // clientId: lmd.clientId,
322
- // clientType: lmd.clientType,
323
- // clientName: lmd.clientName,
324
- // transporterId: marketplaceTransporter.pickupTransporter.transporterId,
325
- // pickupName: warehouseContactPoint.name,
326
- // pickupAddress1: warehouseContactPoint.address,
327
- // pickupAddress2: warehouseContactPoint.address2,
328
- // pickupPostcode: warehouseContactPoint.postCode,
329
- // pickupState: warehouseContactPoint.state,
330
- // pickupCity: warehouseContactPoint.city,
331
- // pickupPhone: warehouseContactPoint.phone,
332
- // pickupEmail: warehouseContactPoint.email,
333
- // name: marketplaceOrderShipping?.attentionTo ? marketplaceOrderShipping.attentionTo.trim() : '',
334
- // address1: marketplaceOrderShipping?.address1 ? marketplaceOrderShipping?.address1.trim() : '-',
335
- // address2: marketplaceOrderShipping?.address2 ? marketplaceOrderShipping?.address2.trim() : '-',
336
- // postCode: marketplaceOrderShipping?.postCode ? marketplaceOrderShipping?.postCode.trim() : '',
337
- // city: marketplaceOrderShipping?.city ? marketplaceOrderShipping?.city.trim() : '',
338
- // state: marketplaceOrderShipping?.state ? marketplaceOrderShipping?.state.trim() : '',
339
- // phone: marketplaceOrderShipping.phone1 || '',
340
- // email: marketplaceOrderShipping.email || '',
341
- // attentionTo: marketplaceOrderShipping.attentionTo,
342
- // quantity: marketplaceOrderItems.length
343
- // })
344
-
345
- // const delay = (ms: number) => {
346
- // return new Promise(resolve => setTimeout(resolve, ms))
347
- // }
348
-
349
- // if (resp.Status === 'SUCCESS') {
350
- // //Success
351
- // let awbObtained = false
352
- // let retry = 0
353
- // while (!awbObtained) {
354
- // const marketplaceOrder2: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({
355
- // where: { releaseOrderId: releaseGood.id },
356
- // relations: [
357
- // 'marketplaceStore',
358
- // 'marketplaceOrderItems',
359
- // 'marketplaceOrderItems.marketplaceOrderShippingItems',
360
- // 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'
361
- // ]
362
- // })
363
- // const orderShipping =
364
- // marketplaceOrder2.marketplaceOrderItems[0].marketplaceOrderShippingItems[0].marketplaceOrderShipping
365
- // if (orderShipping?.airwayBill) {
366
- // awbObtained = true
367
- // }
368
- // await delay(5000)
369
- // //Timeout after 15sec
370
- // if (++retry > 3) {
371
- // break
372
- // }
373
- // }
374
- // } else {
375
- // if (resp?.AWBurl && resp?.TrackingNo)
376
- // await tx
377
- // .getRepository(MarketplaceOrderShipping)
378
- // .update({ id: marketplaceOrderShipping.id }, { airwayBill: resp.AWBurl, trackingNo: resp.TrackingNo })
379
- // else throw resp
380
- // }
381
- // }
382
- // }
383
- // }
384
-
385
227
  if (releaseGood.packingOption) {
386
228
  const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)
387
229
  await packingWSCtrl.generatePackingWorksheet(releaseGoodNo)
@@ -76,7 +76,6 @@ export async function pickingWorksheet(
76
76
  .leftJoinAndSelect('T_INV.binLocation', 'BIN_LOC')
77
77
  .leftJoinAndSelect('T_INV.inventory', 'INV')
78
78
  .leftJoinAndSelect('T_INV.product', 'PROD')
79
- .leftJoinAndSelect('T_INV.productDetail', 'PROD_DET')
80
79
  .leftJoinAndSelect('INV.location', 'LOC')
81
80
 
82
81
  if (locationSortingRules?.length > 0) {
@@ -115,8 +114,8 @@ export async function pickingWorksheet(
115
114
  const inventoryChangesCount: number = await tx.getRepository(InventoryChange).count({
116
115
  where: {
117
116
  inventory: inventory.id,
118
- status: 'PENDING',
119
- transactionType: 'MISSING'
117
+ status: "PENDING",
118
+ transactionType: "MISSING"
120
119
  },
121
120
  relations: ['inventory', 'product']
122
121
  })
@@ -1,6 +1,6 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
 
3
- import { ApplicationType, User } from '@things-factory/auth-base'
3
+ import { User } from '@things-factory/auth-base'
4
4
  import { MarketplaceStore } from '@things-factory/integration-marketplace'
5
5
  import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
6
6
  import { ArrivalNotice } from '@things-factory/sales-base'
@@ -33,54 +33,24 @@ export const completePutawayResolver = {
33
33
  // search for any active marketplace connection
34
34
  const companyDomain: Domain = arrivalNotice.bizplace.company.domain
35
35
  const customerDomain: Domain = arrivalNotice.bizplace.domain
36
+ const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
37
+ where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
38
+ relations: ['marketplaceDistributors']
39
+ })
36
40
 
37
- const orderSource: string = arrivalNotice.source
38
- switch (orderSource) {
39
- case ApplicationType.SELLERCRAFT:
40
- const sellercraft: Sellercraft = await tx
41
- .getRepository(Sellercraft)
42
- .findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
43
-
44
- if (sellercraft) {
45
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
46
- await sellercraftCtrl.registerProductInbound(sellercraft, arrivalNotice)
47
- }
48
- break
49
-
50
- case ApplicationType.MMS:
51
- const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
52
- where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
53
- relations: ['marketplaceDistributors']
54
- })
55
-
56
- if (marketplaceStores?.length && marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
57
- const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
58
- await ecommerceCtrl.updateProductVariationStock(marketplaceStores, arrivalNotice.orderProducts, companyDomain)
59
- }
60
- break
41
+ const sellercraft: Sellercraft = await tx
42
+ .getRepository(Sellercraft)
43
+ .findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
61
44
 
62
- default:
63
- break
45
+ if (sellercraft) {
46
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
47
+ await sellercraftCtrl.registerProductInbound(sellercraft, arrivalNotice)
64
48
  }
65
49
 
66
- // const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
67
- // where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
68
- // relations: ['marketplaceDistributors']
69
- // })
70
-
71
- // const sellercraft: Sellercraft = await tx
72
- // .getRepository(Sellercraft)
73
- // .findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
74
-
75
- // if (sellercraft) {
76
- // const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
77
- // await sellercraftCtrl.registerProductInbound(sellercraft, arrivalNotice)
78
- // }
79
-
80
- // if (marketplaceStores?.length && marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
81
- // const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
82
- // await ecommerceCtrl.updateProductVariationStock(marketplaceStores, arrivalNotice.orderProducts, companyDomain)
83
- // }
50
+ if (marketplaceStores?.length && marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
51
+ const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
52
+ await ecommerceCtrl.updateProductVariationStock(marketplaceStores, arrivalNotice.orderProducts, companyDomain)
53
+ }
84
54
  }
85
55
  }
86
56
 
@@ -19,13 +19,12 @@ import {
19
19
  InventoryNoGenerator,
20
20
  Location,
21
21
  Pallet,
22
- Warehouse,
23
- generateInventoryHistory
22
+ Warehouse
24
23
  } from '@things-factory/warehouse-base'
25
24
 
26
25
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
27
26
  import { Worksheet, WorksheetDetail } from '../../../../entities'
28
- import { WorksheetNoGenerator } from '../../../../utils'
27
+ import { generateInventoryHistory, WorksheetNoGenerator } from '../../../../utils'
29
28
  import {
30
29
  OperationGuideInterface,
31
30
  PackingUnits,
@@ -19,7 +19,7 @@ import { WorksheetNoGenerator } from '../../../utils'
19
19
  export const regenerateReleaseGoodWorksheetDetailsResolver = {
20
20
  async regenerateReleaseGoodWorksheetDetails(
21
21
  _: any,
22
- { worksheetNo, batchId, productId, productDetailId, packingType, packingSize, orderProductId, worksheetDetails },
22
+ { worksheetNo, batchId, productId, packingType, packingSize, orderProductId, worksheetDetails },
23
23
  context: any
24
24
  ): Promise<void> {
25
25
  const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
@@ -30,7 +30,6 @@ export const regenerateReleaseGoodWorksheetDetailsResolver = {
30
30
  worksheetNo,
31
31
  batchId,
32
32
  productId,
33
- productDetailId,
34
33
  packingType,
35
34
  packingSize,
36
35
  orderProductId,
@@ -46,7 +45,6 @@ export async function regenerateReleaseGoodWorksheetDetails(
46
45
  worksheetNo: string,
47
46
  batchId: string,
48
47
  productId: string,
49
- productDetailId: string,
50
48
  packingType: string,
51
49
  packingSize: number,
52
50
  orderProductId: string,
@@ -117,7 +115,6 @@ export async function regenerateReleaseGoodWorksheetDetails(
117
115
  batchIdRef: inventory.batchIdRef,
118
116
  status: ORDER_INVENTORY_STATUS.READY_TO_PICK,
119
117
  product: await tx.getRepository(Product).findOne(productId),
120
- productDetail: productDetailId,
121
118
  packingType,
122
119
  packingSize,
123
120
  orderProduct: targetProduct,
@@ -32,7 +32,6 @@ export const Mutation = /* GraphQL */ `
32
32
  worksheetNo: String!
33
33
  batchId: String!
34
34
  productId: String!
35
- productDetailId: String!
36
35
  packingType: String!
37
36
  packingSize: Float!
38
37
  orderProductId: String!