asksTipRefundSource function
Fragt das Storno nach „Ja" auch „Woher kommt das Trinkgeld zurueck?" – nur,
wenn das Bargeld des Stornos (cashRefundCents, siehe
cancellationCashRefundCents) das offene Mitarbeiter-Trinkgeld deckt und die
Mitarbeiterin wenigstens eines davon schon hatte. Bei Kartenrueckgabe geht
es auf die Karte zurueck; ueber Lohn behaltenes Trinkgeld kommt immer aus
der Lade. Ohne diese Frage gilt beim Server fuer refundTip: true: aus der
Lade, kein „gibt die Mitarbeiterin direkt".
Implementation
bool asksTipRefundSource(KasseneckReceipt receipt, int cashRefundCents, {int? nowMs}) {
final offen = _offenesTrinkgeld(receipt, nowMs);
if (offen.isEmpty) return false;
if (!offen.any((p) => _hatteSie(receipt.items[p.index], receipt))) return false;
return cashRefundCents >= openStaffTipCents(receipt, nowMs: nowMs);
}