@things-factory/worksheet-base 4.3.154 → 4.3.156

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 (40) hide show
  1. package/dist-server/controllers/ecommerce/sellercraft-controller.js +5 -3
  2. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  3. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +3 -1
  4. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +3 -1
  6. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/outbound/picking-worksheet-controller.js +16 -13
  8. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/worksheet-controller.js +9 -17
  10. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  11. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +4 -0
  12. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  13. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +2 -1
  14. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  15. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +146 -118
  16. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  17. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +245 -216
  18. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  19. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +22 -0
  20. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
  21. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +0 -10
  22. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  23. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +12 -4
  24. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
  25. package/dist-server/utils/inventory-util.js +29 -1
  26. package/dist-server/utils/inventory-util.js.map +1 -1
  27. package/package.json +18 -18
  28. package/server/controllers/ecommerce/sellercraft-controller.ts +33 -27
  29. package/server/controllers/inbound/putaway-returning-worksheet-controller.ts +3 -1
  30. package/server/controllers/inbound/putaway-worksheet-controller.ts +3 -1
  31. package/server/controllers/outbound/picking-worksheet-controller.ts +23 -15
  32. package/server/controllers/worksheet-controller.ts +13 -17
  33. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +7 -0
  34. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +8 -26
  35. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +168 -131
  36. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +272 -237
  37. package/server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.ts +35 -4
  38. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +0 -12
  39. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +17 -7
  40. package/server/utils/inventory-util.ts +36 -0
@@ -1,14 +1,12 @@
1
1
  import { EntityManager, In } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
- import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
4
  import { ReturnOrder } from '@things-factory/sales-base'
6
5
  import { Domain } from '@things-factory/shell'
7
6
  import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
8
7
 
9
8
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
10
9
  import { PutawayReturningWorksheetController, UnloadingReturningWorksheetController } from '../../../../controllers'
11
- import { SellercraftController } from '../../../../controllers/ecommerce'
12
10
  import { Worksheet, WorksheetDetail } from '../../../../entities'
13
11
 
14
12
  export const completeUnloadReturningResolver = {
@@ -28,16 +26,6 @@ export const completeUnloadReturningResolver = {
28
26
  ]
29
27
  })
30
28
 
31
- const customerDomain: Domain = returnOrder.bizplace.domain
32
- const sellercraft: Sellercraft = await tx
33
- .getRepository(Sellercraft)
34
- .findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
35
-
36
- if (sellercraft) {
37
- const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
38
- await sellercraftCtrl.registerProductReturn(sellercraft, returnOrder)
39
- }
40
-
41
29
  const putawayWSCtrl: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(tx, domain, user)
42
30
  let putawayWorksheet: Worksheet
43
31
 
@@ -81,13 +81,23 @@ export async function regenerateReleaseGoodWorksheetDetails(
81
81
  await Promise.all(
82
82
  prevOrderInventories.map(async prevOI => {
83
83
  if (prevOI?.inventory) {
84
- await tx.getRepository(Inventory).update(
85
- { id: prevOI.inventory.id },
86
- {
87
- lockedQty: prevOI.inventory.lockedQty - prevOI.releaseQty,
88
- lockedUomValue: prevOI.inventory.lockedUomValue - prevOI.releaseUomValue
89
- }
90
- )
84
+ if (prevOI.pickedQty == prevOI.releaseQty) {
85
+ await tx.getRepository(Inventory).update(
86
+ { id: prevOI.inventory.id },
87
+ {
88
+ qty: prevOI.inventory.qty + prevOI.pickedQty,
89
+ uomValue: prevOI.inventory.uomValue + prevOI.pickedUomValue
90
+ }
91
+ )
92
+ } else {
93
+ await tx.getRepository(Inventory).update(
94
+ { id: prevOI.inventory.id },
95
+ {
96
+ lockedQty: prevOI.inventory.lockedQty - prevOI.releaseQty,
97
+ lockedUomValue: prevOI.inventory.lockedUomValue - prevOI.releaseUomValue
98
+ }
99
+ )
100
+ }
91
101
  }
92
102
  })
93
103
  )
@@ -143,6 +143,10 @@ export async function inventoriesByStrategy(
143
143
  .andWhere('"LOC"."type" NOT IN (:...locationTypes)', {
144
144
  locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]
145
145
  })
146
+ .andWhere('"INV"."obsolete" = false')
147
+ .andWhere(
148
+ 'case when "INV"."expiration_date" is not null and "PROD"."shelf_life" is not null then CURRENT_DATE < "INV"."expiration_date" - "PROD"."shelf_life" else true end'
149
+ )
146
150
  .setParameters({
147
151
  domainId: domain.id,
148
152
  productId,
@@ -257,3 +261,35 @@ export async function isInventoryExpiring(inventory: Inventory): Promise<boolean
257
261
 
258
262
  return expiryDate < acceptBefore
259
263
  }
264
+
265
+ export async function isInventoryObsolete(inventories: Inventory[]): Promise<any> {
266
+ if (inventories?.length < 1) throw new Error('No inventory id provided')
267
+
268
+ let obsoleteInventories = []
269
+
270
+ for (let i = 0; i < inventories.length; i++) {
271
+ let product: Product | undefined = inventories[0].product
272
+ if (!product) {
273
+ let inventory: Inventory = await getRepository(Inventory).findOne(inventories[0].id, {
274
+ relations: ['product']
275
+ })
276
+ product = inventory.product
277
+ }
278
+
279
+ let { expirationDate } = inventories[0]
280
+ const { shelfLife } = product
281
+
282
+ if (shelfLife && expirationDate) {
283
+ let date: Date = new Date()
284
+ expirationDate = new Date(expirationDate)
285
+
286
+ const releaseBefore: Date = new Date(expirationDate.setDate(expirationDate.getDate() - shelfLife))
287
+
288
+ if (date > releaseBefore) {
289
+ obsoleteInventories.push(inventories[0].id)
290
+ }
291
+ }
292
+ }
293
+
294
+ return obsoleteInventories
295
+ }