ustSumme function

int ustSumme(
  1. Warenkorb warenkorb, {
  2. int rabattCents = 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 (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));