Antwort #9 am: 30. August 2013, 02:40:51
Nachschlag zu meinem vorherigen Problem (siehe die beiden Posts über diesem) mit dem Rundungsfehler.
Was ich erreichen möchte ist, daß die Preisanzeigen (Rundung) in der Fremdwährung in meiner WaWi (Berechnung 2-stellig) und im Shop (Berechnung 4-stellig) übereinstimmen.
Kurze Erläuterung zum Problem:Bevor meine WaWi den Auftrag aus dem Shop bekommt, muss ich den Auftrag in meinem Exportskript in Euro zurückrechnen (auf 4-stellen genau), da die Preise und Summen in der Shop-Datenbank als Fremdwährung abgelegt werden und die WaWi intern nur mit Euro rechnet. Die Währung und der Wechselkurs des Auftrags werden gesondert mitübertragen.
Mein Problem ist jetzt, daß meine WaWi die automatische Fremdwährungsumrechnung von Preisen und Summen in der Rechnungsstellung 2-stellig vornimmt, darauf habe ich leider keinen Einfluss wie ich leider feststellen musste, da Fixvariablen.
Mein Lösung:=> Shop auf 2-stellig Runden umstellen
Ich habe nun erst probiert im Adminbereich über Konfiguration -> Mein Shop -> Brutto/Netto Dezimalstellen -> 2 - die Umrechnungsgenauigkeit auf 2 zu stellen, mit wenig Erfolg - die Preise blieben gleich. Bei ein wenig graben im Source-Code ist mir aufgefallen, daß bei der Berechnung der angezeigten Preise immernoch 4-stellig berechnet wird.
Um mal auf den Punkt zu kommen.
Ich habe folgendes in xtcPrice.php (includes/classes) geändert, um für meinen Fall gleiche Preise und Summen im Shop und in der WaWi zu bekommen:
function xtcAddTax
($price, $tax) { $price += $price / 100 * $tax; //$price = $this->xtcCalculateCurr($price); // Geaendert zu ... $price = $this->xtcCalculateCurr(round($price, $this->currencies[$this->actualCurr]['decimal_places']));...} und
function xtcFormat
($price, $format, $tax_class = 0, $curr = false, $vpeStatus = 0, $pID = 0, $decimal_places = 0) { if ($curr) { //$price = $this->xtcCalculateCurr($price); // Geändert zu ... $price = $this->xtcCalculateCurr(round($price, $this->currencies[$this->actualCurr]['decimal_places'])); }...} Das ist zwar keine allgemeine Lösung, evtl gibts noch mehr Stellen an denen die Rundung eingestellt werden muss, aber für mich passt es so. Ausserdem sind die Rundungen jetzt abhängig von den Einstellungen im Adminbereich von Land / Steuer -> Währungen -> z.B. US Dollar -> Dezimalstellen.
Evtl. hilft das ja dem ein oder anderen mit einem ähnlichen Problem.
MfG
gimmenospam