parseCentsAllowZero function
Ein eingetippter Betrag in Cent, ohne Gleitkomma: '12,5' -> 1250,
'0' -> 0 (anders als beim Kassieren ist 0 hier gueltig: eine leere Lade,
kein Startgeld). Dezimaltrenner Komma oder Punkt mit einer oder zwei
Nachkommastellen; null fuer leer, Vorzeichen, Tausendertrenner
('1.000', '1 000'), drei Nachkommastellen, Euro-Zeichen und alles ueber
einer sicheren Ganzzahl. Leerraum aussen faellt weg wie bei
String.prototype.trim in JS. Gemeinsame Faelle mit dem JS-Zwilling:
shift-cases.json des Vertrags.
Implementation
int? parseCentsAllowZero(String text) {
final m = _betragMuster.firstMatch(jsTrim(text));
if (m == null) return null;
final cents = BigInt.parse(m[1]!) * BigInt.from(100) + BigInt.parse((m[2] ?? '').padRight(2, '0'));
return cents <= _groessteSichere ? cents.toInt() : null;
}