@things-factory/worksheet-base 4.3.770 → 4.3.772

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +10 -5
  2. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
  3. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +10 -5
  4. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +45 -19
  6. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/outbound/packing-worksheet-controller.js +2 -2
  8. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/picking-worksheet-controller.js +169 -44
  10. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/outbound/returning-worksheet-controller.js +36 -3
  12. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +2 -2
  14. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js +1 -1
  16. package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js.map +1 -1
  17. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +12 -8
  18. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
  19. package/package.json +4 -4
  20. package/server/controllers/inbound/putaway-returning-worksheet-controller.ts +26 -5
  21. package/server/controllers/inbound/putaway-worksheet-controller.ts +26 -5
  22. package/server/controllers/inbound/unloading-worksheet-controller.ts +66 -23
  23. package/server/controllers/outbound/packing-worksheet-controller.ts +3 -2
  24. package/server/controllers/outbound/picking-worksheet-controller.ts +211 -45
  25. package/server/controllers/outbound/returning-worksheet-controller.ts +41 -16
  26. package/server/controllers/outbound/sorting-worksheet-controller.ts +3 -2
  27. package/server/controllers/replenishment/replenishment-worksheet-controller.ts +1 -7
  28. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +14 -16
@@ -1,5 +1,6 @@
1
1
  import { OrderInventory, ORDER_INVENTORY_STATUS, ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'
2
2
  import {
3
+ generateInventoryHistory,
3
4
  Inventory,
4
5
  Warehouse,
5
6
  INVENTORY_STATUS,
@@ -114,24 +115,37 @@ export class ReturningWorksheetController extends VasWorksheetController {
114
115
  throw new Error(this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('return', 'pallet ID is not matched'))
115
116
  }
116
117
 
118
+ const isLocationChanged: boolean = originLocation.id !== toLocation.id
119
+
120
+ const updateFields: any = {
121
+ qty: () => `"qty" + :addQty::numeric`,
122
+ uomValue: () => `"uom_value" + :addUomValue::numeric`,
123
+ status: INVENTORY_STATUS.STORED,
124
+ updater: this.user,
125
+ updatedAt: new Date()
126
+ }
127
+ if (isLocationChanged) {
128
+ updateFields.location = toLocation
129
+ updateFields.warehouse = toLocation.warehouse
130
+ updateFields.zone = toLocation.zone
131
+ }
132
+ await this.trxMgr.getRepository(Inventory).createQueryBuilder()
133
+ .update(Inventory).set(updateFields)
134
+ .setParameter('addQty', targetInventory.releaseQty)
135
+ .setParameter('addUomValue', targetInventory.releaseUomValue)
136
+ .where('id = :id', { id: inventory.id }).execute()
137
+
138
+ // Update in-memory for downstream
117
139
  inventory.qty += targetInventory.releaseQty
118
140
  inventory.uomValue += targetInventory.releaseUomValue
119
141
  inventory.status = INVENTORY_STATUS.STORED
120
-
121
- const isLocationChanged: boolean = originLocation.id !== toLocation.id
122
142
  if (isLocationChanged) {
123
143
  inventory.location = toLocation
124
144
  inventory.warehouse = toLocation.warehouse
125
145
  inventory.zone = toLocation.zone
126
146
  }
127
147
 
128
- await this.transactionInventory(
129
- inventory,
130
- releaseGood,
131
- targetInventory.releaseQty,
132
- targetInventory.releaseUomValue,
133
- INVENTORY_TRANSACTION_TYPE.RETURN
134
- )
148
+ await generateInventoryHistory(inventory, releaseGood, INVENTORY_TRANSACTION_TYPE.RETURN, targetInventory.releaseQty, targetInventory.releaseUomValue, this.user, this.trxMgr)
135
149
 
136
150
  // update status of order inventory
137
151
  targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
@@ -205,19 +219,30 @@ export class ReturningWorksheetController extends VasWorksheetController {
205
219
  const warehouse: Warehouse = location.warehouse
206
220
  const zone: string = warehouse.zone
207
221
 
222
+ await this.trxMgr.getRepository(Inventory).createQueryBuilder()
223
+ .update(Inventory).set({
224
+ qty: () => `"qty" + :addQty::numeric`,
225
+ uomValue: () => `"uom_value" + :addUomValue::numeric`,
226
+ status: INVENTORY_STATUS.STORED,
227
+ location: location,
228
+ warehouse: warehouse,
229
+ zone: zone,
230
+ updater: this.user,
231
+ updatedAt: new Date()
232
+ })
233
+ .setParameter('addQty', targetInventory.releaseQty)
234
+ .setParameter('addUomValue', targetInventory.releaseUomValue)
235
+ .where('id = :id', { id: inventory.id }).execute()
236
+
237
+ // Update in-memory for downstream
208
238
  inventory.qty += targetInventory.releaseQty
209
239
  inventory.uomValue += targetInventory.releaseUomValue
210
240
  inventory.location = location
211
241
  inventory.status = INVENTORY_STATUS.STORED
212
242
  inventory.warehouse = warehouse
213
243
  inventory.zone = zone
214
- await this.transactionInventory(
215
- inventory,
216
- releaseGood,
217
- targetInventory.releaseQty,
218
- targetInventory.releaseUomValue,
219
- INVENTORY_TRANSACTION_TYPE.RETURN
220
- )
244
+
245
+ await generateInventoryHistory(inventory, releaseGood, INVENTORY_TRANSACTION_TYPE.RETURN, targetInventory.releaseQty, targetInventory.releaseUomValue, this.user, this.trxMgr)
221
246
 
222
247
  targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
223
248
  targetInventory.updater = this.user
@@ -14,6 +14,7 @@ import {
14
14
  } from '@things-factory/sales-base'
15
15
  import { Setting } from '@things-factory/setting-base'
16
16
  import {
17
+ generateInventoryHistory,
17
18
  Inventory,
18
19
  INVENTORY_ITEM_SOURCE,
19
20
  INVENTORY_STATUS,
@@ -347,7 +348,7 @@ export class SortingWorksheetController extends VasWorksheetController {
347
348
  if (matchingOI.sortedQty == pickedQty) {
348
349
  matchingOI.status = ORDER_INVENTORY_STATUS.SORTED
349
350
  await this.updateOrderTargets([matchingOI])
350
- await this.transactionInventory(inventory, releaseGood, 0, 0, INVENTORY_TRANSACTION_TYPE.SORTING)
351
+ await generateInventoryHistory(inventory, releaseGood, INVENTORY_TRANSACTION_TYPE.SORTING, 0, 0, this.user, this.trxMgr)
351
352
 
352
353
  let worksheetDetail = worksheetDetails.find(wd => wd.targetInventory.id == matchingOI.id)
353
354
  await this.trxMgr
@@ -493,7 +494,7 @@ export class SortingWorksheetController extends VasWorksheetController {
493
494
  if (matchingOI.sortedQty == releaseQty) {
494
495
  matchingOI.status = ORDER_INVENTORY_STATUS.SORTED
495
496
  await this.updateOrderTargets([matchingOI])
496
- await this.transactionInventory(inventory, releaseGood, 0, 0, INVENTORY_TRANSACTION_TYPE.SORTING)
497
+ await generateInventoryHistory(inventory, releaseGood, INVENTORY_TRANSACTION_TYPE.SORTING, 0, 0, this.user, this.trxMgr)
497
498
 
498
499
  let inventoryItems: InventoryItem = await this.trxMgr
499
500
  .getRepository(InventoryItem)
@@ -572,13 +572,7 @@ export class ReplenishmentWorksheetController extends WorksheetController {
572
572
  await this.trxMgr.getRepository(InventoryItem).save(inventoryItems)
573
573
  }
574
574
 
575
- await this.transactionInventory(
576
- newInventory,
577
- replenishment,
578
- actualQty,
579
- newUomValue,
580
- INVENTORY_TRANSACTION_TYPE.RELOCATE
581
- )
575
+ await generateInventoryHistory(newInventory, replenishment, INVENTORY_TRANSACTION_TYPE.RELOCATE, actualQty, newUomValue, this.user, this.trxMgr)
582
576
 
583
577
  if (actualQty + targetInventory.actualPackQty === targetInventory.releaseQty) {
584
578
  targetInventory.actualPackQty = targetInventory.releaseQty
@@ -24,7 +24,7 @@ import {
24
24
  } from '@things-factory/sales-base'
25
25
  import { Setting } from '@things-factory/setting-base'
26
26
  import { Domain } from '@things-factory/shell'
27
- import { Inventory, INVENTORY_TRANSACTION_TYPE, InventoryUtil } from '@things-factory/warehouse-base'
27
+ import { generateInventoryHistory, Inventory, INVENTORY_TRANSACTION_TYPE } from '@things-factory/warehouse-base'
28
28
 
29
29
  import { PickingWorksheetController } from '../../../../controllers/'
30
30
  import { Worksheet, WorksheetDetail } from '../../../../entities'
@@ -66,8 +66,6 @@ export async function generatePickingWorksheet(
66
66
  })
67
67
 
68
68
  if (releaseGood.type == 'b2c' && directReleaseOrder && directReleaseOrder.value.toLowerCase() == 'true') {
69
- const inventoryUtil = new InventoryUtil(tx, domain, user)
70
-
71
69
  await mmsProcessOrder(tx, domain, user, releaseGood, context)
72
70
 
73
71
  let orderInventories: OrderInventory[] = await tx.getRepository(OrderInventory).find({
@@ -86,19 +84,19 @@ export async function generatePickingWorksheet(
86
84
  .getRepository(Inventory)
87
85
  .findOne({ where: { id: orderInventory.inventory.id } })
88
86
 
89
- await inventoryUtil.transactionInventory(
90
- {
91
- id: inventory.id,
92
- qty: inventory.qty - orderInventory.releaseQty,
93
- uomValue: Math.round((inventory.uomValue - orderInventory.releaseUomValue) * 100) / 100,
94
- lockedQty: inventory.lockedQty - orderInventory.releaseQty,
95
- lockedUomValue: Math.round((inventory.lockedUomValue - orderInventory.releaseUomValue) * 100) / 100
96
- },
97
- releaseGood,
98
- -orderInventory.releaseQty,
99
- -orderInventory.releaseUomValue,
100
- INVENTORY_TRANSACTION_TYPE.DIRECT_DEDUCTION
101
- )
87
+ await tx.getRepository(Inventory).createQueryBuilder()
88
+ .update(Inventory).set({
89
+ qty: () => `"qty" - :releaseQty::numeric`,
90
+ uomValue: () => `ROUND(("uom_value" - :releaseUomValue::numeric)::numeric, 2)`,
91
+ lockedQty: () => `"locked_qty" - :releaseQty::numeric`,
92
+ lockedUomValue: () => `ROUND(("locked_uom_value" - :releaseUomValue::numeric)::numeric, 2)`,
93
+ updater: user, updatedAt: new Date()
94
+ })
95
+ .setParameter('releaseQty', orderInventory.releaseQty)
96
+ .setParameter('releaseUomValue', orderInventory.releaseUomValue)
97
+ .where('id = :id', { id: inventory.id }).execute()
98
+
99
+ await generateInventoryHistory(inventory, releaseGood, INVENTORY_TRANSACTION_TYPE.DIRECT_DEDUCTION, -orderInventory.releaseQty, -orderInventory.releaseUomValue, user, tx)
102
100
 
103
101
  await tx
104
102
  .getRepository(OrderInventory)