dodil/erp-brick-inventory
DODIL ERP brick: inventory
src/brick_inventory/application/brick.py
"""The Brick declaration: one place, so every use-case module registers on the same brick without importing the others."""
from erp_platform.bricks import Brick
MACHINE = ("inv:receipt:intake", "inv:reservation:intake", "inv:valuation:post", "inv:number_series:claim",
"inv:count:suggest", "inv:migration:import", "inv:migration:read", "inv:return:expect",
"inv:replenishment:propose", "inv:abc:classify", "inv:issue:intake", "inv:standard_price:intake")
INV = Brick("inventory", version="0.1.2", ids_as_strings=True, machine_permissions=MACHINE, instructions=(
"Where every item is and how many you have: warehouses and their shelves, goods received from suppliers, picked and "
"delivered to customers, moved between shelves and sites, and counted, with every movement recorded so the quantity on a "
"shelf and the value of the stock always add up, and nobody sells the last unit twice. Stock is a LEDGER of append-only "
"moves in the product's base unit; on hand is derived from them, never stored. A receipt from a supplier is recorded in "
"purchasing (scan_delivery asks it to); purchasing posts each line back here. A mistake is a reversing move, never an edit."))
INV.declare_process("process.yaml")