Stubs
Each stub is a tear-off line. Quantity, rate, amount, tax. Nothing collapsed.
A stub is the atomic document. Statements are lists of stubs. Books are lists of statements.
Fields
type Stub = {
code: string;
quantity: number;
unit: string;
rate: number;
amount: number;
tax?: number;
};
amount must equal quantity * rate after the printed rounding rule. If it does not, the close fails.
Void and credit
You may void a draft stub. After close, you print a credit stub. You do not edit the original.