## 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