vatTotalCents function
Enthaltene MwSt des Warenkorbs — wie sie auf dem Beleg stehen wird.
Zwei Dinge, die die frueheren Fassungen falsch hatten:
- 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.
- 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));