Opened 9 years ago
Last modified 8 years ago
#1161 reopened Frage
Seltsame Code-Routine in xtc_get_tax_description()
| Reported by: | Torsten Riemer | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Shop | Version: | 2.0.2.1 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Siehe dazu: Seltsame Code-Routine in xtc_get_tax_description()
Besagte Code-Stelle lautet:
while ($tax = xtc_db_fetch_array($tax_query,true)) {
$tax_description .= $tax['tax_description'] . ' + ';
}
$tax_description = substr($tax_description, 0, -3);
Macht wirklich wenig Sinn die tax_description erst um 3 Zeichen zu erweitern um sie gleich im nächsten Schritt per substr() wieder zu entfernen.
Attachments (0)
Change History (16)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Vielleicht sehe ich gerade nur nicht den Fall wo bei dem Query vorher mehr als ein Ergebnis bei raus kommen kann. Ansonsten macht das so natürlich Sinn wie du schreibst!
comment:3 by , 9 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Ist auf jeden Fall kein Fehler, auch wenn der Code nicht schön ist.
comment:4 by , 9 years ago
Thema "Steuer" in XTC ist sehr komplex. Es hängt sehr stark mit der Zone zusammen.
$tax_query - wenn man hier Query analysiert wird nach "tax_priority" sortiert (ohne Limit). Ich denke mal, es gibt Shop-Betreiber, die das benutzen können.
Ich habe bis jetzt noch keinen getroffen, der die Steuer-Geschichte in dem Umfang, wie XTC es vorgesehen hat, genutzt hat. Aber Sinn macht es schon glaube ich.
follow-up: 13 comment:5 by , 9 years ago
| Resolution: | invalid |
|---|---|
| Status: | closed → reopened |
| Type: | Aufgabe → Frage |
Es war auch nicht als Ticket vom Typ "Bug/Fehler" erstellt worden.
Die Frage ist doch, ob es vorkommen kann, dass der Fall eintritt, dass die Funktion folgendes zurück gibt:
tax_description1 + tax_description2 + tax_description3
Ich sehe den Fall ehrlich gesagt nicht...
comment:6 by , 9 years ago
| Resolution: | → invalid |
|---|---|
| Status: | reopened → closed |
comment:7 by , 9 years ago
Könntest du mal ein Beispiel bringen INETvisio wo im Shop die Funktion so benutzt wird, daß die Query in der Funktion mehr als ein Ergebnis liefern könnte ?;
und vor allem was denn eine Ausgabe wie
19% Mwst. + 7% Mwst. + WAS_WEISS_ICH% Mwst.
als Steuerbezeichnung bedeuten und bringen soll ?
Danke.
Gruß,
noRiddle
comment:8 by , 9 years ago
*NACHTRAG*
Leider kann ich meinen Kommentar nicht editieren (oder habe ich's übersehen ?).
Hatte einen Fall in einem modified 1.06-Shop, wo die Funktion genauso aussieht, daß irgendwo unsichtbare 3 Zeichen hinter der $tax_description vorkamen und diese unsichtbaren Zeichen folglich gelöscht wurden, nicht jedoch das ' + '
und im z.B. Warenkorb dann ein Plus hinter 19% Mwst. stand, da habe ich vielleicht gesucht...
Ich denke man sollte das genauer untersuchen.
Gruß,
noRiddle
comment:9 by , 9 years ago
Ich habe ein Beispiel:
Der Shopbetreiber möchte 2 Steuersätze für 1 Produkt einführen:
Steuer Typ 1 + Steuer Typ 2
Was muss dafür gemacht werden:
- Man legt eine neue Steuerklasse an: (z.B. Steuerklasse gemischt)
admin/tax_classes.php
- Man legt neue Steuersätze an: (z.B. x mit x% und y mit y%)
admin/tax_rates.php
- Produkte zuordnen
In der Situation werden zwei Beschreibungen zusammengefügt und es werden zwei unterschiedliche Steuersätze miteinander multipliziert (z.B. (1 + (x% / 100)) * (1 + (y% / 100)) ).
Siehe genau so diese Datei an: inc/xtc_get_tax_rate.inc.php
$tax_multiplier = 1.0;
while ($tax = xtc_db_fetch_array($tax_query,true)) {
$tax_multiplier *= 1.0 + ($tax['tax_rate'] / 100);
}
comment:10 by , 9 years ago
Das war technisches Beispiel. Praktischen Beispiel habe ich aktuell nicht.
comment:11 by , 9 years ago
Doch, Beispiel:
Man braucht so eine Steuer Berechnung:
(100€ + Steuer) + Steuer
Beispiel, man kauft und zahlt den Steuer in Land A und danach bei der Zustellung in Land B zahlt man für den Produkt nochmal den Steuer auf die Gesamtsumme. Dann muss Steuersatz multipliziert werden.
follow-up: 15 comment:12 by , 9 years ago
Replying to anonymous:
[...]
Hatte einen Fall in einem modified 1.06-Shop, wo die Funktion genauso aussieht, daß irgendwo unsichtbare 3 Zeichen hinter der $tax_description vorkamen und diese unsichtbaren Zeichen folglich gelöscht wurden, nicht jedoch das ' + '
und im z.B. Warenkorb dann ein Plus hinter 19% Mwst. stand, da habe ich vielleicht gesucht...
[...]
Das kann eigenlich nicht sein weil ' + ' nach diesen 3 unsichtbaren Zeichen hinzugefügt würde und danach wieder entfernt würde.
Ich hätte es mit einem Array gemacht und danach mit implode (' + ', $array) verkettet.
comment:13 by , 9 years ago
| Milestone: | modified-shop-2.0.2.2 → modified-shop-2.1.0.0 |
|---|---|
| Resolution: | invalid |
| Status: | closed → reopened |
Replying to Tomcraft:
Replying to web28:
Ist auf jeden Fall kein Fehler, auch wenn der Code nicht schön ist.
Es war auch nicht als Ticket vom Typ "Bug/Fehler" erstellt worden.
Die Frage ist doch, ob es vorkommen kann, dass der Fall eintritt, dass die Funktion folgendes zurück gibt:
tax_description1 + tax_description2 + tax_description3
Ich sehe den Fall ehrlich gesagt nicht...
Nachtrag: INETvisio hat es nochmal klar gestellt, daher schliesse ich das Ticket wieder.
Ich habe mir das nochmal angeschaut und sehe einfach wirklich nicht, wann es zu dem besagten Fall kommen könnte, daher öffne ich das Ticket wieder und verschiebe es aber auf einen späteren Meilenstein.
comment:14 by , 9 years ago
Ich kenne mich mit Steuerrecht nicht so gut aus, aber geht es in der Situation nicht um den Verbrauchsteuern? Es gibt Steuerarten auf den MwSt drauf gezahlt werden muss.
(Produktpreis (netto) + Verbrauchsteuer) = netto + Mwst = brutto
Wenn man Verbrauchsteuer prozentuell verrechnet, könnte man genau diese Formel dafür einsetzen.
Diese Stelle funktioniert auf jeden Fall passend.
Gruß
Jürgen H.
comment:15 by , 9 years ago
Replying to anonymous:
Replying to anonymous:
[...]
Hatte einen Fall in einem modified 1.06-Shop, wo die Funktion genauso aussieht, daß irgendwo unsichtbare 3 Zeichen hinter der $tax_description vorkamen und diese unsichtbaren Zeichen folglich gelöscht wurden, nicht jedoch das ' + '
und im z.B. Warenkorb dann ein Plus hinter 19% Mwst. stand, da habe ich vielleicht gesucht...
[...]
Das kann eigenlich nicht sein weil ' + ' nach diesen 3 unsichtbaren Zeichen hinzugefügt würde und danach wieder entfernt würde.
Ich hätte es mit einem Array gemacht und danach mit implode (' + ', $array) verkettet.
Jau, stimmt, die unsichtbaren Zeichen müssen hinter dem + gewesen sein.
Habe nie herausgefunden woher sie kamen.
Gruß,
noRiddle
comment:16 by , 8 years ago
| Milestone: | modified-shop-2.1.0.0 |
|---|

Es ist doch logischer Schritt.
Sammeln & Verbinden: "Beschreibung1 + " . "Beschreibung2 + " . "Beschreibung3 + "
Danach die Ende aus 3 Zeichen löschen: " + "
Ergebnis: "Beschreibung1 + Beschreibung2 + Beschreibung3"
Oder geht es hier darum, wie schön der Code geschrieben wurde?
Gruß
Jürgen H.