Projekt

Allgemein

Profil

Aktionen

GX-Task #68464

geschlossen

Improve overload ability of CheckoutShippingContentControl::proceed() and ot_coupon::calculate_tax_deduction() | Überladbarkeit von CheckoutShippingContentControl::proceed() und ot_coupon::calculate_tax_deduction() verbessern

Von Moritz Bunjes vor etwa 3 Jahren hinzugefügt. Vor 3 Monaten aktualisiert.

Status:
Erledigt
Priorität:
Hoch
Zugewiesen an:
Marvin Muxfeld
Kategorie:
Core
Zielversion:
% erledigt:

0%

Steps to reproduce:
Betroffene Versionen:
4.4.0.0
Release Notes Langtext:

Die Klassen CheckoutShippingContentControl und ot_coupon bieten durch neue Methoden bessere Möglichkeiten zur Überladbarkeit


Beschreibung

The third party developer Holger Schrörs from Xycons is complaining about the missing possibility to overload logic in CheckoutShippingContentControl::proceed() and ot_coupon::calculate_tax_deduction(), because the methods are much to long, so you cannot overload parts of it. The code should be split into several methods.

Example: In CheckoutShippingContentControl::proceed() it should be possible to overload the value of MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER


Ein Rabatt-Kupon hat einen festen oder einen prozentualen Rabatt. Ist es ein fester Betrag, kann er zusätzlich als versandkostenfrei bestimmt werden, andernfalls nicht. Ebenfalls kann ein Mindestbestellwert festgelegt werden, ab dem der Rabatt-Kupon gültig ist. Ob der Wert brutto oder netto verrechnet wird hängt von der Einstellung im ot_coupon-Zusamenfassung-Modul ab. Ebenso kann im ot_coupon-Zusamenfassung-Modul festgelegt werden, ob die Versandkosten an den Warenwert angerechnet werden sollen, was relevant für den Mindestbestellwert und die anteilge Verrechnung der MwSt. ist. Wenn man die Versandkosten nicht anrechnen möchte, muss die Anzeigereihenfolge auf 29 gestellt werden, also niedriger sein, als die Versandkosten. Ein Rabatt-Kupon reduziert den Warenwert, muss also auch die MwSt. entsprechend reduzieren. Daher ist im Zusammenfassung-Modul die Option "MwSt. neu berechnen" auf "Standard" zu setzen. Es ist auch möglich die MwSt. nicht zu reduzieren, indem die Option "None" gewählt wird. Ein Use-Case dafür ist mir aber nicht bekannt. Rabatt-Kupons können auch mit der Option "Credit Note" als Gutschrift behandelt werden. Dann wird buchalterisch nicht mehr der Warenwert reduziert und es kann über die Option "MwSt.-Satz" festgelegt werden, ob und welche Steuer enthalten ist, die dann ensprechend verrechnet wird. Gutschriften sind auch unüblich, hier eignet sich das Gutschein-System besser (ot_gv).

Beispiel 1: Kupon enthält MwSt.

Ein 10 EUR Rabatt-Kupon, der den Warenwert inkl. Versandkosten (aber nicht versandkostenfrei) und die MwSt. reduziert, macht dies anteilig.

Artikel A 19% MwSt.: 10 EUR brutto, 8,4034 EUR netto + 1,5966 19% MwSt.
Artikel B 7% MwSt.: 10 EUR brutto, 9,3458 EUR netto + 0,6542 7% MwSt.
Versandkosten 19% MwSt.: 10 EUR brutto, 8,4034 EUR netto + 1,5966 19% MwSt.

Das sind 20 EUR inkl. 19% MwSt. und 10 EUR inkl. 7% MwSt., also 66,667% 19% MwSt.-Anteil und 33,333% 7% MwSt.-Anteil, so dass bei einem Kuponwert von 10 EUR brutto dieser 33,3% 7% MwSt. und 66,7% 19% MwSt. enthält. Die Rechnung dazu lautet:

10 * 0,66667 = 6,6667
(6,6667 / 1,19 - 6,6667) * -1 = 1,0644

10 * 0,33333 = 3,3333
(3,3333 / 1,07 - 3,3333) * -1 = 0,2181

Bestellung ohne Kupon
Artikel A: 10 EUR
Artikel B: 10 EUR
Versandkosten: 10 EUR
inkl. 19& MwSt.: 3,19 EUR (3,1932)
inkl. 7% MwSt.: 0,65 EUR (0,6542)
Summe: 30 EUR

Bestellung mit 10 Kupon
Artikel A: 10 EUR
Artikel B: 10 EUR
Versandkosten: 10 EUR
Kupon: -10 EUR
inkl. 19& MwSt.: 2,13 EUR (3,1932 - 1,0644 = 2,1288)
inkl. 7% MwSt.: 0,44 EUR (0,6542 - 0,2181 = 0,4361)
Summe: 20 EUR

Beispiel 2: Kupon enthält keine MwSt.

Ein 10 EUR Rabatt-Kupon, der den Warenwert inkl. Versandkosten (aber nicht versandkostenfrei) und die MwSt. reduziert, macht dies anteilig.

Artikel A 19% MwSt.: 10 EUR brutto, 8,4034 EUR netto + 1,5966 19% MwSt.
Artikel B 7% MwSt.: 10 EUR brutto, 9,3458 EUR netto + 0,6542 7% MwSt.
Versandkosten 19% MwSt.: 10 EUR brutto, 8,4034 EUR netto + 1,5966 19% MwSt.

Das sind 16,8068 EUR exkl. 19% MwSt. und 9,3458 EUR exkl. 7% MwSt., also 64,26416116% 19% MwSt.-Anteil und 35,73553546% 7% MwSt.-Anteil, so dass bei einem Kuponwert von 10 EUR netto dieser 35,73553546% 7% MwSt. und 64,26416116% 19% MwSt. enthält. Die Rechnung dazu lautet:

10 * 0,6426416116 = 6,426416116
6,426416116 * 0,19 = 1,221019062

10 * 0,3573553546 = 3,573553546
3,573553546 * 0,07 = 0,250148748

Bestellung ohne Kupon
Artikel A: 8,40 EUR (8,4034)
Artikel B: 9,35 EUR (9,3458)
Versandkosten: 8,40 EUR (8,4034)
Summe netto: 26,15 EUR
zzgl. 19& MwSt.: 3,19 EUR (3,1932)
zzgl. 7% MwSt.: 0,65 EUR (0,6542)
Summe: 30 EUR

Bestellung mit 10 Kupon
Artikel A: 8,40 EUR (8,4034)
Artikel B: 9,35 EUR (9,3458)
Versandkosten: 8,40 EUR (8,4034)
Kupon: -10 EUR
Summe netto: 16,15 EUR (16,1526)
zzgl. 19& MwSt.: 1,97 EUR (3,1932 - 1,221019062 = 1,972180938)
zzgl. 7% MwSt.: 0,40 EUR (0,6542 - 0,250148748 = 0,404051252)
Summe: 18,53 EUR (18,52883219)

Beim Testen sollte auch die Einschränkung eines Kupons auf Artikel und Kategorien überprüft werden, da die Logik dazu ebenfalls neu geschrieben wurde.


Aktionen #1

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

  • Status wurde von Anerkannt zu In Bearbeitung geändert
  • Zugewiesen an wurde auf Moritz Bunjes gesetzt
Aktionen #2

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

  • Beschreibung aktualisiert (Vergleich)
  • Privat wurde von Ja zu Nein geändert
Aktionen #3

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

  • Status wurde von In Bearbeitung zu Testing geändert
  • Zugewiesen an wurde von Moritz Bunjes zu Core-Entwickler geändert
  • Zielversion wurde von 133 zu 4.5.1.0 beta1 geändert
  • Release Notes Langtext aktualisiert (Vergleich)
Aktionen #6

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

  • Tags wurde auf time killer gesetzt
Aktionen #7

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

Aktionen #8

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

Aktionen #9

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

Aktionen #10

Von Mirko Janssen vor fast 3 Jahren aktualisiert

  • Zugewiesen an wurde von Core-Entwickler zu Mirko Janssen geändert
Aktionen #11

Von Mirko Janssen vor fast 3 Jahren aktualisiert

  • Zugewiesen an wurde von Mirko Janssen zu Core-Entwickler geändert
Aktionen #12

Von Marvin Muxfeld vor fast 3 Jahren aktualisiert

  • Status wurde von Testing zu Erledigt geändert
  • Zugewiesen an wurde von Core-Entwickler zu Marvin Muxfeld geändert
Aktionen #13

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

  • Tags wurde von time killer zu time killer, 4.5.1.0_beta1 geändert
Aktionen #14

Von Moritz Bunjes vor mehr als 2 Jahren aktualisiert

  • Tags wurde von time killer, 4.5.1.0_beta1 zu time killer geändert
Aktionen #15

Von Till Tepelmann vor 3 Monaten aktualisiert

  • Tags time killer wurde gelöscht
Aktionen

Auch abrufbar als: Atom PDF