An invoice is a separate document raised from a jobcard, and it moves through a fixed lifecycle. Everything before issued is provisional; everything after is locked.
The states
| Status | Means |
|---|---|
draft | Editable. Refresh rebuilds it from the jobcard; Delete draft removes it. No number yet. |
issued | Numbered, dated, due date set, locked as a VAT record. |
sent | Set automatically when you Send Invoice by email. |
part paid | Payments recorded, but less than the frozen total. |
paid | Recorded payments cover the frozen total. |
cancelled | Reversed by a credit note, via Cancel invoice or Amend. |
Calculated, not manual
You can't set the paid states by hand. Recording a payment moves the invoice to PART PAID, and to PAID once the total is covered; the comparison is always against the total frozen at issue time. A £0 invoice can never reach paid.
Overdue is a badge, not a status
When an unpaid invoice passes its due date, Pistonlog shows an OVERDUE badge. It's derived on the fly from the due date; the stored status doesn't change.
Cancelling and amending
Both paths issue a reversing credit note against the original, and both require a reason:
- Cancel invoice reverses it, full stop.
- Amend reverses it and also creates a replacement draft, rebuilt fresh from the jobcard.
Any payments already recorded stay attached to the original invoice. See Amending an invoice.