@things-factory/warehouse-base 4.3.82 → 4.3.83
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.
- package/dist-server/controllers/warehouse-controller.js.map +1 -1
- package/dist-server/service/inventory/inventory-query.js +4 -10
- package/dist-server/service/inventory/inventory-query.js.map +1 -1
- package/dist-server/service/inventory/inventory.js +0 -4
- package/dist-server/service/inventory/inventory.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change-mutation.js +5 -16
- package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-query.js +1 -1
- package/dist-server/service/inventory-item/inventory-item.js +3 -8
- package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product.js +3 -8
- package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
- package/dist-server/service/location/location.js +1 -0
- package/dist-server/service/location/location.js.map +1 -1
- package/dist-server/utils/inventory-util.js +24 -83
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +8 -8
- package/server/controllers/warehouse-controller.ts +1 -0
- package/server/service/inventory/inventory-query.ts +12 -25
- package/server/service/inventory/inventory.ts +0 -3
- package/server/service/inventory-change/inventory-change-mutation.ts +11 -18
- package/server/service/inventory-history/inventory-history-query.ts +1 -1
- package/server/service/inventory-item/inventory-item.ts +2 -9
- package/server/service/inventory-product/inventory-product.ts +1 -5
- package/server/service/location/location.ts +1 -0
- package/server/utils/inventory-util.ts +51 -117
|
@@ -147,134 +147,68 @@ export async function generateInventoryHistory(
|
|
|
147
147
|
}
|
|
148
148
|
})
|
|
149
149
|
|
|
150
|
-
let
|
|
151
|
-
let
|
|
152
|
-
let
|
|
150
|
+
let seq: number = 0
|
|
151
|
+
let openingQty: number = 0
|
|
152
|
+
let openingUomValue: number = 0
|
|
153
|
+
|
|
154
|
+
if (lastInvHistory) {
|
|
155
|
+
openingQty = lastInvHistory.openingQty + lastInvHistory.qty
|
|
156
|
+
openingUomValue = lastInvHistory.openingUomValue + lastInvHistory.uomValue
|
|
157
|
+
seq = lastInvHistory.seq + 1
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
let remainQty = (openingQty || 0) + (qty || 0)
|
|
161
|
+
|
|
162
|
+
let inventoryHistory: any = new InventoryHistory()
|
|
163
|
+
|
|
164
|
+
inventoryHistory = {
|
|
165
|
+
...inventory,
|
|
166
|
+
name: InventoryNoGenerator.inventoryHistoryName(),
|
|
167
|
+
inventory,
|
|
168
|
+
seq: seq,
|
|
169
|
+
status: remainQty == 0 ? INVENTORY_STATUS.TERMINATED : inventory.status,
|
|
170
|
+
transactionType,
|
|
153
171
|
refOrderId: refOrder?.id || null,
|
|
154
172
|
orderNo: refOrder?.name || null,
|
|
155
173
|
orderRefNo: refOrder?.refNo || null,
|
|
156
|
-
|
|
157
|
-
|
|
174
|
+
qty,
|
|
175
|
+
openingQty,
|
|
176
|
+
uomValue,
|
|
177
|
+
openingUomValue: openingUomValue,
|
|
158
178
|
creator: user,
|
|
159
|
-
updater: user
|
|
160
|
-
domain: inventory?.domain,
|
|
161
|
-
bizplace: inventory?.bizplace,
|
|
162
|
-
reusablePallet: inventory?.reusablePallet,
|
|
163
|
-
inventory: inventory,
|
|
164
|
-
product: inventory?.product,
|
|
165
|
-
warehouse: inventory?.warehouse,
|
|
166
|
-
location: inventory?.location,
|
|
167
|
-
|
|
168
|
-
palletId: inventory?.palletId,
|
|
169
|
-
batchId: inventory?.batchId,
|
|
170
|
-
zone: inventory?.zone,
|
|
171
|
-
packingType: inventory?.packingType,
|
|
172
|
-
description: inventory?.description,
|
|
173
|
-
expirationDate: inventory?.expirationDate,
|
|
174
|
-
unitCost: inventory?.unitCost,
|
|
175
|
-
batchIdRef: inventory?.batchIdRef,
|
|
176
|
-
cartonId: inventory?.cartonId,
|
|
177
|
-
manufactureYear: inventory?.manufactureYear,
|
|
178
|
-
packingSize: inventory?.packingSize,
|
|
179
|
-
manufactureDate: inventory?.manufactureDate
|
|
179
|
+
updater: user
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
.execute()
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
if (transactionType == 'PICKING' || transactionType == 'UNLOADING') {
|
|
205
|
-
const findSameOrderHistory: InventoryHistory[] = await invHistoryRepo.find({
|
|
206
|
-
domain: inventory.domain,
|
|
207
|
-
palletId: inventory.palletId,
|
|
208
|
-
refOrderId: refOrder.id
|
|
209
|
-
})
|
|
210
|
-
|
|
211
|
-
if (findSameOrderHistory.length > 0) {
|
|
212
|
-
let prevTotalQty = 0
|
|
213
|
-
let prevTotalUomValue = 0
|
|
214
|
-
for (let oh of findSameOrderHistory) {
|
|
215
|
-
prevTotalQty += oh.qty
|
|
216
|
-
prevTotalUomValue += oh.uomValue
|
|
217
|
-
}
|
|
218
|
-
qty -= prevTotalQty
|
|
219
|
-
uomValue -= prevTotalUomValue
|
|
220
|
-
}
|
|
182
|
+
delete inventoryHistory.updatedAt
|
|
183
|
+
delete inventoryHistory.createdAt
|
|
184
|
+
delete inventoryHistory.id
|
|
185
|
+
|
|
186
|
+
let newInventoryHistory = await invHistoryRepo.save(inventoryHistory)
|
|
187
|
+
|
|
188
|
+
if (remainQty == 0) {
|
|
189
|
+
seq = seq + 1
|
|
190
|
+
let terminatedHistory = {
|
|
191
|
+
...newInventoryHistory,
|
|
192
|
+
name: InventoryNoGenerator.inventoryHistoryName(),
|
|
193
|
+
seq: seq,
|
|
194
|
+
status: INVENTORY_STATUS.TERMINATED,
|
|
195
|
+
transactionType: INVENTORY_TRANSACTION_TYPE.TERMINATED,
|
|
196
|
+
uom: inventory.uom,
|
|
197
|
+
qty: 0,
|
|
198
|
+
openingQty: 0,
|
|
199
|
+
uomValue: 0,
|
|
200
|
+
openingUomValue: 0
|
|
221
201
|
}
|
|
222
|
-
|
|
223
|
-
res = await invHistoryRepo
|
|
224
|
-
.createQueryBuilder()
|
|
225
|
-
.insert()
|
|
226
|
-
.into(InventoryHistory)
|
|
227
|
-
.values([
|
|
228
|
-
{
|
|
229
|
-
...inventoryHistoryFields,
|
|
230
|
-
name: InventoryNoGenerator.inventoryHistoryName(),
|
|
231
|
-
status: () =>
|
|
232
|
-
`(select case when opening_qty + ${qty} = 0 then 'TERMINATED' else 'STORED' end as status from inventory_histories where inventory_id = '${inventory.id}' order by seq desc limit 1)`,
|
|
233
|
-
transactionType,
|
|
234
|
-
qty,
|
|
235
|
-
openingQty: () =>
|
|
236
|
-
`(select opening_qty from inventory_histories where inventory_id = '${inventory.id}' order by seq desc limit 1) + ${qty}`,
|
|
237
|
-
uomValue,
|
|
238
|
-
openingUomValue: () =>
|
|
239
|
-
`(select opening_uom_value from inventory_histories where inventory_id = '${inventory.id}' order by seq desc limit 1) + ${uomValue}`,
|
|
240
|
-
seq: () =>
|
|
241
|
-
`(select seq from inventory_histories where inventory_id = '${inventory.id}' order by seq desc limit 1) + 1`
|
|
242
|
-
}
|
|
243
|
-
])
|
|
244
|
-
.returning('*')
|
|
245
|
-
.execute()
|
|
246
|
-
}
|
|
247
202
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if (newInventoryHistory.openingQty == 0) {
|
|
252
|
-
let terminatedRes = await invHistoryRepo
|
|
253
|
-
.createQueryBuilder()
|
|
254
|
-
.insert()
|
|
255
|
-
.into(InventoryHistory)
|
|
256
|
-
.values([
|
|
257
|
-
{
|
|
258
|
-
...inventoryHistoryFields,
|
|
259
|
-
name: InventoryNoGenerator.inventoryHistoryName(),
|
|
260
|
-
status: INVENTORY_STATUS.TERMINATED,
|
|
261
|
-
transactionType: INVENTORY_TRANSACTION_TYPE.TERMINATED,
|
|
262
|
-
qty: 0,
|
|
263
|
-
openingQty: 0,
|
|
264
|
-
uomValue: 0,
|
|
265
|
-
openingUomValue: 0,
|
|
266
|
-
seq: () =>
|
|
267
|
-
`(select seq from inventory_histories where inventory_id = '${inventory.id}' order by seq desc limit 1) + 1`
|
|
268
|
-
}
|
|
269
|
-
])
|
|
270
|
-
.returning('seq')
|
|
271
|
-
.execute()
|
|
272
|
-
|
|
273
|
-
lastSeq = terminatedRes.generatedMaps[0].seq
|
|
203
|
+
delete terminatedHistory.id
|
|
204
|
+
|
|
205
|
+
newInventoryHistory = await invHistoryRepo.save(terminatedHistory)
|
|
274
206
|
inventory.status = INVENTORY_STATUS.TERMINATED
|
|
275
207
|
}
|
|
276
208
|
|
|
277
|
-
|
|
209
|
+
if (inventory.lastSeq !== seq) {
|
|
210
|
+
await invRepo.update(inventory.id, { lastSeq: newInventoryHistory.seq, updater: user })
|
|
211
|
+
}
|
|
278
212
|
|
|
279
213
|
await switchLocationStatus(domain, location, user, trxMgr)
|
|
280
214
|
return newInventoryHistory
|