Fehler bei MwSt.

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Fehler bei MwSt.

Beitrag 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
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag 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.
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

Hallo

Bitte nicht vergessen

gruß

wolfgang
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag 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
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag 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
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag 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
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag 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
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

die beiden fehlenden Zeilen

nach ca. Zeile 273

Code: Alles auswählen

$class =& $_SESSION['payment];
einfügen.

Beste Grüße

ralf
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag 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
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag 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
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

Ok jetzt gehts

vielen Dank
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

Hallo

Doch noch einen kleiner Fehler entdeckt.

Die Versandkosten werden noch ohne MwSt berechnet.

gruß

wolfgang
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag 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
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag 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
Antworten