canCancel function
Darf dieser Beleg storniert werden?
Kein Storno von einem Storno, keines von Null-, Start- oder
Trainingsbelegen, keines von einem bereits voll stornierten Beleg und keines
bei einem unbekannten Stornostand (ein kuenftiger Wert des Servers: die
Kasse bietet dann nichts an, statt zu raten) – und mit der Reichweite own
nur die eigenen. Fehlt der Stand in der Liste, entscheidet der Server.
Implementation
bool canCancel(ReceiptSummary receipt, RegisterScope scope, String ownUid) {
if (scope == RegisterScope.none) return false;
if (!receipt.isSale) return false;
if (receipt.cancellationState == CancellationState.full || receipt.cancellationState == CancellationState.unknown) return false;
if (scope == RegisterScope.own && receipt.operator?.uid != ownUid) return false;
return true;
}