cashPayment function

KeckPaymentInput cashPayment(
  1. CheckoutTotals invoice, {
  2. int? amountCents,
})

Die Barzahlung aus der Kassierrechnung als Eintrag fuer payments -- mit tenderedCents, damit das Backend Gegeben und Rueckgeld am Beleg fuehrt und der Bon sie zeigt.

amountCents ist der Teil, der bar bezahlt wird; ohne Angabe alles, was der Gast gibt (CheckoutTotals.totalCents, also samt Trinkgeld -- der Zahlbetrag des Backends zaehlt das Mitarbeiter-Trinkgeld mit). Bei mehreren Zahlungen ist es der Rest nach den Karten.

tenderedCents geht nur mit, wenn das Rueckgeld gerechnet wird (CheckoutTotals.cash) und das Gegebene den Betrag deckt: zu wenig Gegebenes lehnte der Server ab (payment_tendered_invalid), und ein Beleg darf an einer Anzeige-Angabe nicht scheitern.

Implementation

KeckPaymentInput cashPayment(CheckoutTotals invoice, {int? amountCents}) {
  final betrag = amountCents ?? invoice.totalCents;
  final gegeben = invoice.tenderedCents;
  return KeckPaymentInput(
    method: KeckPaymentMethod.cash,
    amountCents: betrag,
    tenderedCents: invoice.cash && gegeben != null && gegeben >= betrag ? gegeben : null,
  );
}