canCancel function

bool canCancel(
  1. ReceiptSummary receipt,
  2. RegisterScope scope,
  3. String ownUid
)

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