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;
}