fehler property
String?
get
fehler
Was am Trinkgeld nicht stimmt — null, wenn alles passt.
Zwilling der Prüfungen in tip-core.normalizeTip des Backends, Wortlaut
inklusive: Wer den Fehler hier sieht, sieht denselben Satz wie der, der
ihn vom Server bekommt. Geprüft wird hier trotzdem, damit ein Tippfehler
nicht erst nach einem Netzweg auffällt.
Implementation
String? get fehler {
if (cents <= 0) {
return 'Trinkgeld: Betrag muss eine ganze Zahl in Cent > 0 sein';
}
final e = recipients;
if (e == null) return null;
if (e.isEmpty) {
return 'Trinkgeld: Empfängerliste darf nicht leer sein';
}
final ids = <String>{};
var summe = 0;
for (final r in e) {
if (r.registerUserId.trim().isEmpty) {
return 'Trinkgeld: Kassen-Benutzer fehlt';
}
if (!ids.add(r.registerUserId)) {
return 'Trinkgeld: Kassen-Benutzer ${r.registerUserId} doppelt';
}
if (r.cents <= 0) {
return 'Trinkgeld: Betrag muss eine ganze Zahl in Cent > 0 sein';
}
summe += r.cents;
}
if (summe != cents) {
return 'Trinkgeld: Summe der Empfänger ($summe) entspricht nicht dem '
'Betrag ($cents)';
}
return null;
}