Core Architectural Directives
Immutable Append-Only Ledger
Historical stock levels are never overwritten. Every transaction appends an immutable movement record (
StockMovement) to guarantee audit integrity.FIFO Lot Tracking
Received items form explicit batches (
InventoryLot) with unit purchase prices, receiving timestamps, and expiration dates. Cost of Goods Sold (COGS) is calculated via strict First-In, First-Out (FIFO).Multi-Location Hierarchy
Track inventory across physical locations — Central Store (“Eka Bet”), Main Kitchen, Bar (“MeTet Bet”), Pastry Kitchen, and Cellar.
Nested Unit Conversions
Input items in natural operational units (Crates, Sacks, Packs) while maintaining standard base unit counts (Kilogram, Liter, Piece) on the backend.
Unit Categories & Base Units
Measurement units belong to Unit Categories with a single authoritative Base Unit (Conversion Factor = 1.0).Packaging Rules & Item Conversions
Staff do not receive or issue items exclusively in base units. Packaging conversion rules (ItemUnitConversion) allow entry in natural units while maintaining base unit ledger records.
Examples:
- Beer Bottle: Base Unit =
Piece(Bottle). Packaging Rule:1 Crate = 24 Pieces. - Teff Grain: Base Unit =
Kilogram. Packaging Rule:1 Sack = 50 Kilograms. - Cooking Oil: Base Unit =
Liter. Packaging Rule:1 Jerrycan = 20 Liters.
Storage Locations
Configure storage locations under Admin Panel → Inventory → Locations:CENTRAL_STORE: Main receiving warehouse (e.g. “Eka Bet”).KITCHEN: Food prep area (e.g. “Main Kitchen”, “Pastry Kitchen”).BAR: Beverage dispensing location (e.g. “MeTet Bet”, “VIP Lounge Bar”).WAREHOUSE: Bulk storage facility.
For detailed procurement, transfers, recipe mapping, and audit workflows, explore the subsequent Inventory Guide sections.