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")