3 Stimmen

Magento warum 3 Steuerberechnungsmethoden?

Heute war ich studieren, wie Magento Steuerberechnung funktioniert, um den Unterschied zwischen den Verhaltensweisen für " verstehen Steuerberechnungsmethode auf der Grundlage von ".

Ich verfolgte tief in die Mage_Steuer_Modell_Umsatz_Gesamt_Quote_Steuer die alle Methoden in der _unitBaseCalculation , _rowBaseCalculation , _totalBaseCalculation .

Ich habe festgestellt, dass sie zu genau den gleichen Ergebnissen führen. Warum hat man sich also die Mühe gemacht, sie zu implementieren?

Bei der Berechnung des Stückpreises wird beispielsweise die Steuer für die einzelne Einheit berechnet und dann der Rabattbetrag durch die Menge geteilt (wenn die Steuer nach dem Rabatt erhoben wird), dann beides subtrahiert und dann wieder mit der Menge multipliziert... was zu Rundungsfehlern führt.

Die Berechnung der Zeilensumme hingegen ist die intuitivste (sie nimmt den Preis aus der Zeile "Zwischensumme") abzüglich des Rabattbetrags (falls die Steuer nach dem Rabatt erhoben wird).

Die dritte ist lediglich eine Zusammenfassung der zweiten, die auf einmal berechnet wird.

Dadurch wird die Logik der Steuerberechnung nur noch verwirrender und undurchsichtiger. Kann jemand erklären, warum dies so gemacht wurde?

(Rundungsfehler ? Rückwärtskompatibilität ? Anwärter auf den TheDailyWTF-Preis ?)

EDIT : Für das Protokoll ist dies wahr, wie von Magento 1.6 und 1.7, weiß nicht, über ältere Versionen.

8voto

Raif Atef Punkte 2868

Ich habe dies gefunden von: https://gist.github.com/2572772 (von Alan Storm, wie es scheint)

Der Grund für diese Funktion waren wahrscheinlich einzelne lokale Vorschriften (oder Kundenwünsche), wie Steuern zu berechnen sind, da sich Bruchbeträge je nach Additions- und Rundungszeitpunkt unterschiedlich aufaddieren können. Abgesehen davon habe ich den Code nicht überprüft, um zu sehen, ob meine Vermutungen richtig sind, also YMMV. Andere Bereiche, die für zukünftige Forschung in Betracht gezogen werden sollten.

Wie wirken sich die einzelnen Modi auf die Preisregeln des Warenkorbs und auf filialweite Rabatte aus?

Bei den Preisregeln für den Einkaufswagen wird der Rabattbetrag (der möglicherweise nicht durch die Menge des Angebotsartikels teilbar ist, so dass ein Rundungsfehler entsteht) mühsam geteilt, so dass das Endergebnis im Grunde derselbe Prozess ist, nur mit unterschiedlichen "Wann "s und "Wo "s hinsichtlich der Rundung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X