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

Code: Alles auswählen

        $class =& $_SESSION['payment];
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

Code: Alles auswählen

$class =& $_SESSION['payment];
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