## Expense reports: employees submit expenses with lines; managers approve them
Draft
Submitted
Approved
## People
Employee @Staff order="lastName"
firstName d r / lastName d r
workEmail email r
department Department
Department @Staff order="name"
name d r
## Expense reports and their approval
ExpenseReport @Expenses order="submittedOn desc"
employee Employee d r
submittedOn date ds r default="now"
purpose d r
lines ExpenseLine set ei x childproperty="report"
total double ds calculated="sum(lines[*].amount)"
status enum enumset="ExpenseStatus" default="draft" fixed
ExpenseLine @
report ExpenseReport
date r
concept d r
amount double r
receipt image
ApproveExpenseReport @ transient
report ExpenseReport fixed
notes text