Seite 1 von 1
Fehler bei MwSt.
Verfasst: 13.01.2011, 10:52
von wolfschw
Hallo,
bei der Berechnung der MwSt. ist leider ein Fehler !
Ich versuche es mal zu beschreiben :
Kunde meldet sich aus einem Land ausserhalb der EU an, also wird bei einer Bestellung keine MwSt. berechnet, soweit passt das noch.
Nun gibt er aber eine Lieferadresse innerhalb Deutschland oder EU an, dann muss die MwSt. berechnet werden, das funktioniert leider nicht.
Die Berechnung der MwSt. hängt immer von der Lieferadresse ab
Gruß
Wolfgang
Verfasst: 15.01.2011, 14:36
von r23
Hallo,
eigentlich sollte der Shop dies richtig machen. Zumindest habe ich daran vor Jahren
Stunden gearbeitet. Warum dies die aktuelle Version 1.7.x dies nicht mehr kann -
entzieht sich mir.
Bei irgend einer Änderung wurde dies überschrieben.
lauf nächster woche werden wird fixen
Danke für den Hinweis.
Verfasst: 26.01.2011, 16:07
von wolfschw
Hallo
Bitte nicht vergessen
gruß
wolfgang
Verfasst: 27.01.2011, 16:42
von r23
Hallo,
Die MwSt Berechnung basiert bei angemeldeten Kunden auf
Code: Alles auswählen
$country_id = $_SESSION['customer_country_id];
$zone_id = $_SESSION['customer_zone_id];
Bei einer Änderung der Lieferadresse werden die Daten leider nicht geändert.
In der Klasse
~/shop/includes/classes/class_order.php
schreiben wir in
Code: Alles auswählen
$this->delivery = array('firstname' => $shipping_address['entry_firstname],
'lastname' => $shipping_address['entry_lastname],
'company' => $shipping_address['entry_company],
'street_address' => $shipping_address['entry_street_address],
'suburb' => $shipping_address['entry_suburb],
'city' => $shipping_address['entry_city],
'postcode' => $shipping_address['entry_postcode],
'state' => ((!empty($shipping_address['entry_state])) ? $shipping_address['entry_state] : $shipping_address['zone_name]),
'zone_id' => $shipping_address['entry_zone_id],
'country' => array('id' => $shipping_address['countries_id], 'title' => $shipping_address['countries_name], 'iso_code_2' => $shipping_address['countries_iso_code_2], 'iso_code_3' => $shipping_address['countries_iso_code_3]),
'country_id' => $shipping_address['entry_country_id],
'format_id' => $shipping_address['address_format_id]);
unter
ein
Code: Alles auswählen
$_SESSION['customer_country_id] = $shipping_address['entry_country_id];
$_SESSION['customer_zone_id] = $shipping_address['entry_zone_id];
Beste Grüße
ralf
Verfasst: 28.01.2011, 06:19
von wolfschw
Hallo
In der Datei class_order.php gibt es in Zeile 8 eine kleine Abweichung
Code: Alles auswählen
$this->delivery = array('firstname' => $shipping_address['entry_firstname],
'lastname' => $shipping_address['entry_lastname],
'company' => $shipping_address['entry_company],
'street_address' => $shipping_address['entry_street_address],
'suburb' => $shipping_address['entry_suburb],
'city' => $shipping_address['entry_city],
'postcode' => $shipping_address['entry_postcode],
'state' => ((oos_is_not_null($shipping_address['entry_state])) ? $shipping_address['entry_state] : $shipping_address['zone_name]),
'zone_id' => $shipping_address['entry_zone_id],
'country' => array('id' => $shipping_address['countries_id], 'title' => $shipping_address['countries_name], 'iso_code_2' => $shipping_address['countries_iso_code_2], 'iso_code_3' => $shipping_address['countries_iso_code_3]),
'country_id' => $shipping_address['entry_country_id],
'format_id' => $shipping_address['address_format_id]);
gruß
wolfgang
Verfasst: 28.01.2011, 06:41
von r23
[quote='wolfschw',index.php?page=Thread&postID=2108#post2108]
In der Datei class_order.php gibt es in Zeile 8 eine kleine Abweichung
[/quote]
welche?
wir fügen in Zeile 275
Code: Alles auswählen
$_SESSION['customer_country_id] = $shipping_address['entry_country_id];
$_SESSION['customer_zone_id] = $shipping_address['entry_zone_id];
und funktioniert hier
http://demo.myoos.de/
beste Grüße
ralf
Verfasst: 28.01.2011, 15:27
von wolfschw
Hallo
So sieht meine class_order.php Datei aus.
http://www.jura-ersatzteile-shop.de/dow ... _order.txt
Von diesen Zeilen......
Code: Alles auswählen
$_SESSION['customer_country_id] = $shipping_address['entry_country_id];
$_SESSION['customer_zone_id] = $shipping_address['entry_zone_id];
sehe ich da nix.
gruß
wolfgang
Verfasst: 28.01.2011, 17:21
von r23
Hallo,
die beiden fehlenden Zeilen
nach ca. Zeile 273
einfügen.
Beste Grüße
ralf
Verfasst: 09.03.2011, 09:24
von wolfschw
Hallo
Habe die 2 zeilen in class_order.php eingefügt,
es werden dann nur die Artikel im Warenkorb inkl. MwSt abgeändert.
Beim abschluß der Bestellung werden die Artikel ohne MwSt angezeigt,
und die Bestellung geht auch ohne MwSt ein.
gruß
Wolfgang
Verfasst: 09.03.2011, 13:29
von r23
Hallo,
vielen Dank für den Hinweis.
In der class_order wird in Zeile 348 wird die MwSt für das Produkt bestimmt.
Code: Alles auswählen
$products = $_SESSION['cart]->get_products();
for ($i=0, $n=sizeof($products); $i<$n; $i++) {
$this->products[$index] = array('qty' => $products[$i]['quantity],
'name' => $products[$i]['name],
'model' => $products[$i]['model],
'ean' => $products[$i]['ean],
'tax' => oos_get_tax_rate($products[$i]['tax_class_id], $shipping_address['entry_country_id], $shipping_address['entry_zone_id]),
'tax_description' => oos_get_tax_description($products[$i]['tax_class_id], $shipping_address['entry_country_id], $shipping_address['entry_zone_id]),
'price' => $products[$i]['price],
'final_price' => $products[$i]['price] + $_SESSION['cart]->attributes_price($products[$i]['id]),
'weight' => $products[$i]['weight],
'towlid' => $products[$i]['towlid],
'id' => $products[$i]['id]);
Bei dir auf Basis der Rechnungsadresse ($billing_address)
Code: Alles auswählen
'tax' => oos_get_tax_rate($products[$i]['tax_class_id], $billing_address['entry_country_id], $billing_address['entry_zone_id]),
'tax_description' => oos_get_tax_description($products[$i]['tax_class_id], $billing_address['entry_country_id], $billing_address['entry_zone_id]),
die MwSt Berechnung auf Basis der Lieferadresse sollten die beiden Zielen so aussehen
Code: Alles auswählen
'tax' => oos_get_tax_rate($products[$i]['tax_class_id], $shipping_address['entry_country_id], $shipping_address['entry_zone_id]),
'tax_description' => oos_get_tax_description($products[$i]['tax_class_id], $shipping_address['entry_country_id], $shipping_address['entry_zone_id]),
Hier die class_order.php
http://www.oos-shop.de/service/oos17x/class_order.txt
die Änderungen am besten mit Winmerge
http://winmerge.org/
übernehmen.
Beste Grüße
ralf
Verfasst: 09.03.2011, 18:05
von wolfschw
Ok jetzt gehts
vielen Dank
Verfasst: 16.03.2011, 06:39
von wolfschw
Hallo
Doch noch einen kleiner Fehler entdeckt.
Die Versandkosten werden noch ohne MwSt berechnet.
gruß
wolfgang
Verfasst: 16.03.2011, 17:10
von r23
Hallo,
vielen Dank für den Hinweis. ;(
~/shop/includes/modules/ot_shipping.php
Zeile 63
Code: Alles auswählen
$shipping_tax = oos_get_tax_rate($GLOBALS[$module]->tax_class, $oOrder->delivery['country]['id], $oOrder->delivery['zone_id]);
$shipping_tax_description = oos_get_tax_rate($GLOBALS[$module]->tax_class, $oOrder->delivery['country]['id], $oOrder->delivery['zone_id]);
bitte ändern
Datei
http://www.oos-shop.de/service/oos17x/ot_shipping.txt
Beste Grüße
ralf
Verfasst: 16.03.2011, 19:13
von r23
und noch eine kleine Änderung
Die Datei
ot_loworderfee.txt
http://www.oos-shop.de/service/oos17x/o ... derfee.txt
als ot_loworderfee.
php nach
includes/modules/order_total/
seichern.
Beste Grüße
ralf