Franz Holzinger

Verse of the day

Bei Gott ist mein Heil, meine Ehre, der Fels meiner Stärke; meine Zuversicht ist auf Gott.
Psalm 62:7

© Bible Gateway's Verse of the Day


autor  
15-08-11 19:42:08 Rundungsfehler bei Preisberechnung
Björn Heinermann
Hallo,

es ist noch ein Rundungsfehler in der Gesamberechnung drin.
Das Produkt kostet 21,90 und hat 7% MwSt. Die Versandkosten sind 3,90 und haben 19% MwSt.

Hier das was berechnet wird:
Gesamtpreis ohne MwSt: 23.74 EUR
Enthaltene MwSt 7%: 1.43 EUR
Enthaltene MwSt 19%: 0.62 EUR
Enthaltene MwSt Gesamt: 2.06 EUR
Gesamtpreis: 25.80 EUR

Der Preis ohne MwSt müsste dann 23,75 sein statt der 23,74. Da die MwSt. Preise richtig gerunden sind, vermute ich das der Preis vom Produkt und der Preis von den Versandkosten erst nach dem Addieren gerundet werden.

Kann man das beheben oder macht das dann an anderer Stelle Probleme?
Ich nutze die gerade hochgeladene Version 2.7.2

Viele Grüsse
Björn

16-08-11 20:18:19 interner Preis
Franz Holzinger
Das Produkt wird intern mit mehr als den angezeigten Nachkommastellen berechnet (ohne MwSt). Entscheidend ist, dass der Preis ohne MwSt stimmt. Eine Rundung des Preises ohne MwSt wäre deshalb problematisch, weil es dann bei großen Stückzahlen mit 10000 zu falschen Preisen kommen würde.

Der Gesamtpreis ohne MwSt darf nicht geändert werden. Denn die Preisberechnung ohne MwSt ist die richtige.

Ev. ist hier ein Fehler:
Enthaltene MwSt Gesamt: 2.06 EUR
Das sollten 2.05 EUR sein.
17-08-11 09:21:56 Wie kann ich das beheben?
Björn Heinermann
Wie kann ich den Fehler beheben. Wobei ich davon ausgehe das auch andere diesen Rundungsehler Fehler haben müssten.

Preisberechnungen in einem Shop sind echt ätzend.

Vielen Danke für die Rückmeldung
19-08-11 22:27:26 Korrektur zu tt_products 2.7.2
Franz Holzinger
Es müssen folgende Korrekturen vorgenommen werden:

tt_products/model/class.tx_ttproducts_basket.php:

Die Steuersätze müssen intern mit 2 Nachkommastellen gespeichert werden, auch wenn es die Zahl 19 ist, muss der Array Index als '19.00' verwendet werden.

public function getCalculatedBasket () {
...

if ($shippingTax) {
$this->calculatedArray['priceNoTax']['sametaxtotal'][strval(number_format($shippingTax, 2))] += $this->calculatedArray['priceNoTax']['shipping'];
}
} // getCalculatedBasket

Die Nettopreise müssen vor der Summenbildung der Produktsumme mit den Versandkosten auf 2 Nachkommastellen gerundet aufaddiert werden, denn sonst ergeben sich andere Summen für die Mehrwertsteuer. Nur bei der Summenbildung über die Produkte mit demselben Steuersatz dürfen die Nettopreise nicht gerundet werden, sondern sie können viele Nachkommastellen haben.

public function getCalculatedSums () {
...
$this->calculatedArray['priceNoTax']['total'] = round($this->calculatedArray['priceNoTax']['goodstotal'], 2);
$this->calculatedArray['priceNoTax']['total'] += round($this->calculatedArray['priceNoTax']['payment'], 2);
$this->calculatedArray['priceNoTax']['total'] += round($this->calculatedArray['priceNoTax']['shipping'], 2);

...
}
< Zurück zum Forum