ustSumme 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 (verteileRabatt) und senkt den Umsatz seines Satzes.
rabattCents ist derselbe Wert, der auch in belegPositionen geht.
Implementation
int ustSumme(Warenkorb warenkorb, {int rabattCents = 0}) =>
ustSummePositionen(belegPositionen(warenkorb, rabattCents));