Stock and inventory
Stock levels, counts, adjustments, and transfers.
Stock
/dashboard/platform/stock shows stock by location with low stock, negative stock, and expiring lots. StockLevel rows hold quantity; InventoryLot tracks lot, expiry, and status (active, quarantined, consumed, expired, recalled). Every movement writes an InventoryLedgerEntry.
Counts
Start
startInventoryCount with a location and type full, cycle, or spot.
Count lines
recordInventoryCountLine with actualQuantity. A count increase needs a unit cost: "Count increase is missing its accepted unit cost".
Submit and approve
transitionInventoryCount: draft, counting, submitted, approved, cancelled. approveInventoryCount posts differences.
Adjustments
postInventoryAdjustment for corrections, spoilage, waste, and theft. A zero adjustment or one that makes stock negative is refused.
Transfers
draftInventoryTransfer, then transitionInventoryTransfer: draft, approved, shipped, received, cancelled. Lot allocations are recorded per line.