Genau eines von unitPriceCents und unitPriceMicros (§ 9.1). Der
assert fängt den Irrtum schon im Debug-Lauf; der Server weist ihn sonst
als validation mit Feldpfad ab.
Artikel aus dem Artikelstamm (Lager). Ist er bestandsgeführt und das
Modul Lager aktiv, bucht das Ausstellen ihn ab – danach; die Rechnung
scheitert nie am Lager. Die Form (kein /, nicht ./..) prüft der
Server (validation mit Feldpfad).
Der Preis in Cent, gleich welches Feld ihn trägt — unitPriceMicros
zählt dabei als Zehntausendstel Cent. Wer rechnet, nimmt das hier und
nicht eines der beiden Felder: sonst stünde die Fallunterscheidung an
jeder Rechenstelle, und eine davon vergäße man.
Schlüssel aus invoiceUnits (piece, hour, …); ohne Angabe piece.
Als String, damit ein unbekannter Wert als validation mit Feldpfad
vom Server zurückkommt statt hier still zu verschwinden.
Einzelpreis in ganzen Cent im priceMode der Rechnung. Als num, damit
ein fehlerhafter Wert unverändert beim Server ankommt und dort als
validation mit Feldpfad zurückkommt — nicht still gerundet.
null, wenn die Position ihren Preis in unitPriceMicros trägt.
Einzelpreis in Mikro-Euro (10⁻⁶ €) — für Preise unterhalb eines Cents,
etwa in der Verbrauchsabrechnung. Gilt erst ab dem Schalter des Kontos;
ohne ihn weist der Server ihn mit validation ab und sagt es.
Der USt-Satz in Prozent. Gesendet wird ein Satz aus vatRates (0,
10, 13, 20); gelesen wird jeder Satz, den der Server schickt —
darum num und nicht int. Eine Rechnung aus dem Panel kann eine Zeile
zu 4,9 % (Grundnahrungsmittel) tragen, und ein int liesse das Lesen der
eigenen Gutschrift daran scheitern.