W107: Dispose inventory
Records the permanent removal of finished goods. Triggered from the Finished Goods Inventory page, "Dispose". Mirrors the materials equivalent (W100).
Steps
-
Validate the SKU and location. Confirm both exist.
-
Write the DISPOSE ledger entry. Call
FinishedGoodsInventory.recordDisposal({ skuId, locationId, quantity, eventDate, notes }).quantityis positive (per the L1 invariant); DISPOSE encodes outflow direction.refis null.
Returns
The ledger entry.
Business rules
- Disposal is distinct from adjustment. The DISPOSE event type lets reporting separate scrap and loss from positive corrections.
- No stock guard. The workflow does not block disposals that would take on-hand below zero.
Errors
NotFoundError. The SKU or location was not found.