feat(assignments): emit ADJUSTMENT movement on quantity change

This commit is contained in:
2026-06-25 16:58:03 +02:00
parent 1142855578
commit 91dc0220ae
2 changed files with 262 additions and 1 deletions
+26 -1
View File
@@ -244,8 +244,17 @@ export async function updateAssignmentUseCase(
return updateAssignmentError({ id: ["Assignment not found"] })
}
if (
assignment.status === "RETURNED" ||
assignment.status === "CANCELLED"
) {
return updateAssignmentError({ id: ["Assignment is closed"] })
}
let item = null
if (itemId) {
const item = await ItemService.findById(itemId, tx)
item = await ItemService.findById(itemId, tx)
if (!item) {
return updateAssignmentError({ itemId: ["Item not found"] })
@@ -308,6 +317,22 @@ export async function updateAssignmentUseCase(
tx,
)
} else {
if (item && assignment.quantity !== quantity) {
const stockDelta = quantity - (assignment.quantity ?? 0)
const adjustmentItemId = item.id
await ItemService.updateStock(adjustmentItemId, -stockDelta, tx)
await MovementService.create(
{
type: "ADJUSTMENT",
itemId: adjustmentItemId,
quantity: Math.abs(stockDelta),
stockDeltaSign: stockDelta < 0 ? 1 : -1,
userId: actorId,
},
tx,
)
}
await AssignmentService.update(
id,
{