## Inventory and purchasing: products, warehouses, stock and purchase orders
Draft
Sent
Received
Category @Catalog order="name"
name d r
Product @Catalog order="name" defaultlisting="main"
sku ds r "SKU"
name d r
category Category ds
unitCost double r
minimumStock integer default="0"
stock integer ds fixed default="0"
Warehouse @Configuration order="name"
name d r
address
Supplier @Purchasing order="name"
name d r
taxId r "Tax_ID"
email
active boolean default="true"
PurchaseOrder @Purchasing order="orderDate desc" defaultlisting="main"
supplier Supplier d r subset="active"
orderDate date ds r default="now"
warehouse Warehouse r
lines PurchaseOrderLine set ei x childproperty="purchaseOrder"
total double ds calculated="sum(lines[*].amount)"
state enum enumset="OrderState" default="draft" fixed
PurchaseOrderLine @
purchaseOrder PurchaseOrder
product Product r
quantity integer r
unitCost double r \
amount double calculated="quantity * unitCost"
ReceiveOrders @ transient
orders PurchaseOrder set fixed
receivedOn date r default="now"
notes text
StockMovement @Inventory order="id desc" noadd="noadd" noremove="noremove"
product Product d fixed
warehouse Warehouse ds fixed
quantity integer ds fixed
movedAt datetime ds fixed
reason fixed