Modify

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 INETvisio, 9 years ago

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.

comment:2 by Torsten Riemer, 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 Ronald Parcinski, 9 years ago

Resolution: invalid
Status: newclosed

Ist auf jeden Fall kein Fehler, auch wenn der Code nicht schön ist.

comment:4 by INETvisio, 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.

comment:5 by Torsten Riemer, 9 years ago

Resolution: invalid
Status: closedreopened
Type: AufgabeFrage

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...

Version 0, edited 9 years ago by Torsten Riemer (next)

comment:6 by Torsten Riemer, 9 years ago

Resolution: invalid
Status: reopenedclosed

comment:7 by anonymous, 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 anonymous, 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 INETvisio, 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:

  1. Man legt eine neue Steuerklasse an: (z.B. Steuerklasse gemischt)

admin/tax_classes.php

  1. Man legt neue Steuersätze an: (z.B. x mit x% und y mit y%)

admin/tax_rates.php

  1. 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 INETvisio, 9 years ago

Das war technisches Beispiel. Praktischen Beispiel habe ich aktuell nicht.

comment:11 by INETvisio, 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.

comment:12 by anonymous, 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.

Last edited 9 years ago by Torsten Riemer (previous) (diff)

in reply to:  5 comment:13 by Torsten Riemer, 9 years ago

Milestone: modified-shop-2.0.2.2modified-shop-2.1.0.0
Resolution: invalid
Status: closedreopened

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 INETvisio, 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.

in reply to:  12 comment:15 by anonymous, 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 Torsten Riemer, 8 years ago

Milestone: modified-shop-2.1.0.0

Modify Ticket

Action
as reopened The owner will remain somebody.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.