Invoice lifecycle
The Lifecycle
Invoice status combines command-controlled preparation and cancellation with amount-derived financial states. The quotation and removed nodes describe product conditions rather than additional stored invoice-status values.
Transitions Explained
The transition rows identify the initiating action, eligibility checks, resulting records and responsible caller. They retain the pinned evidence for each path.
What Cannot Happen
The invalid-transition rows describe final-state protection and unsupported paths; command eligibility remains distinct from the declared state vocabulary.
Concurrency and Timing
Invoice commands and balance maintenance take ordered locks to serialize conflicting changes. Draft replacement additionally checks the read version, and competing issues recheck draft eligibility. There is no scheduled invoice transition here; collection and correction commands drive the lifecycle.