vatTotalCents function

int vatTotalCents(
  1. Cart cart, {
  2. int discountCents = 0,
})

Enthaltene MwSt des Warenkorbs — wie sie auf dem Beleg stehen wird.

Zwei Dinge, die die frueheren Fassungen falsch hatten:

  1. Je Steuersatz gerundet, nicht je Position. Dreimal 0,33 € zu 20 % ergaben einzeln gerundet 0,18 €, als eine Position mit Menge 3 dagegen 0,17 € — der Beleg weist fuer dieselbe Ware 0,16 € aus. Der Steuersatz ist die Gruppe, nicht die Zeile.
  2. Der Rabatt zaehlt mit. Ein Korb ueber 12,00 € zu 20 % mit 2,00 € Rabatt enthaelt 1,67 € MwSt, nicht 2,00 € — der Rabatt ist eine negative Belegposition (distributeDiscount) und senkt den Umsatz seines Satzes.

discountCents ist derselbe Wert, der auch in receiptItems geht.

Implementation

int vatTotalCents(Cart cart, {int discountCents = 0}) =>
    vatTotalCentsOfItems(receiptItems(cart, discountCents));