Award and Invoice Interaction
Award and Invoice Interaction
Allowance lines are not the final payroll or invoice total by themselves. They feed the award and invoice layers.
Award calculation reads allowance lines
AwardTimesheetCalculator iterates over Timesheet.allowanceLines. For each TimesheetAllowanceLine, it creates an award calculation line of type allowance with:
- allowance name
- quantity
- unit
- unit rate
- amount
- trigger reason
- source snapshot
- billable flag
- taxable flag
If the allowance line is billable, billing markup and GST functions can derive bill rate and bill amount for the award calculation line.
Invoice behavior
Invoice generation has two broad paths:
- If the current award calculation has a positive
billTotal, invoice timesheet amount uses that bill total plus material total. - If there is no positive award bill total, invoice timesheet amount falls back to labour hours x matching base rate plus allowance total plus material total.
This means allowance lines can appear in invoices either as part of the award bill total or as fallback allowance totals.
PDF labels
InvoicePdfViewBuilder builds allowance rows and labels. If an allowance is EAB, the label can include (EAB). It prefers calculated allowance lines but can fall back to manually selected entry allowances where needed.
Important boundary
Do not model materials or reimbursable expenses as allowances. Materials and expenses have their own records and invoice paths. Allowance rows should remain EBA/add-on calculation components.