Magento Forum

   
Page 1 of 4
MwSt. wird falsch berechnet. Rundungsfehler summieren sich auf. 
 
Blaumeiser
Jr. Member
 
Total Posts:  2
Joined:  2008-08-17
 

Hallo,

hat schon mal jemand von Hand nachgerechnet? Der rechnet falsch, wenn man bei jedem Einzelprodukt die MwSt. berechnet, dann rundet und summiert. Dann sind die ausgewiesenen 19% keine 19% mehr, sondern teilweise weit daneben. Jenachdem, wieviel Cent-Anteil weggerundet wird.

Kaufmännisch korrekt wäre es, erst die Summe alles Produkte zu nehmen (incl. Steuer wie im Shop ja angezeigt werden muss in Deutschland bei Endkunden) und dann geteilt durch 1,19 zu rechnen. Aber so rechnet er nicht.

Irgendeine Idee? Lexware und SAP werden die generierten Rechnungen so nicht erfassen. Nicht toll…

Jörg

Image Attachments
tax.jpg
 
Magento Community Magento Community
Magento Community
Magento Community
 
frape
Jr. Member
 
Total Posts:  2
Joined:  2008-09-08
 

Hallo,

habe das gleiche Problem und denke das jeder der einen Magentoshop benutzt ebenfalls dieses Problem hat, auch wenn er es noch gar nicht weiß. Wenn eine größere Stückzahl eines Artikels gekauft wird, passt die MwSt. nicht mehr. Ich vermute mal, dass die MwSt. nicht von dem Gesamtpreis berechnet wird. Habe es bei ein paar shops ausprobiert, die haben das Problem ebenfalls. Hier sollte schnellst möglich nachgebessert werden, bevor die doch recht teuren Abmahnungen kommen.
Also liebe Magentoshop Benutzer, rechnet mal nach, wie viel Prozent die MwSt. bei eurem Shop beträgt. Wenn schon jemand eine Lösung für den Magentoshop hat bitte melden.

Frank

 
Magento Community Magento Community
Magento Community
Magento Community
 
team_in_medias
Sr. Member
 
Avatar
Total Posts:  113
Joined:  2008-05-06
Aachen, Germany
 

Hallo zusammen,
ich habe das Problem auch. Ich habe eine entsprechende Anfrage an den (kostenpflichtigen) Support gestellt, mal sehen, was sich ergibt.

Danke an Frank für das Engagement, dass er sogar bei uns angerufen hat, um bescheid zu sagen!

Viele Grüße,
Andreas

 
Magento Community Magento Community
Magento Community
Magento Community
 
Alexander Amler
Jr. Member
 
Total Posts:  2
Joined:  2008-07-25
 

Hi!

Ich habe dasselbe Problem, wenn es eine Lösung gibt, bitte hier posten.

danke,
Alex

 
Magento Community Magento Community
Magento Community
Magento Community
 
mzentrale1
Guru
 
Total Posts:  731
Joined:  2007-12-06
Stuttgart, Germany
 

Hi,

darf ich hierauf verweisen:

http://www.magentocommerce.com/boards/viewthread/13518/#t60046

Mit ein wenig anpassung kein problem… muss sich ein wenig in den code einarbeiten!

Grüsse

 
Magento Community Magento Community
Magento Community
Magento Community
 
frape
Jr. Member
 
Total Posts:  2
Joined:  2008-09-08
 

Hallo zusammen,

habe das Problem gelöst. Einfach den Nettopreis eingeben und das Programm rechnet die MwSt. dazu, sodass der Bruttopreis erscheint. Im Adminbereich “System” - “Konfiguration” öffnen, zu “Verkäufe” gehen und “Steuern” öffnen, dort bei “Steuergesamtsumme anzeigen” ja einschalten (alle anderen ja/nein Schaltern auf nein setzen). Jetzt sollten die Summen im Warenkorb auf den Cent genau stimmen. Also viel Spaß beim Einpflegen der Nettopreise in euren Seiten.
Ich habe übrigens im Bereich “Display” die 3 übrigen Schalter alle auf “Inklusive und zuzüglich Steuern” stehen, sodass ich auf meiner Seite www.MarmorMagia.com die spätestens zum 01.10.2008 online geht, schon bei den Produkten den Netto und Bruttopreis stehen habe.

Viele Grüße an die versammelte Magento Gemeinde
Frank

 
Magento Community Magento Community
Magento Community
Magento Community
 
mzentrale1
Guru
 
Total Posts:  731
Joined:  2007-12-06
Stuttgart, Germany
 

Hi,

naja, das ist aber ne suboptimale lösung finde ich. Sagen wir du exportierst deine Preise in eine Preissuchmaschine oder so! Oder der Import erfolgt über ein WaWi dann muss das alles immer individuell angepasst werden.

Grüsse

 
Magento Community Magento Community
Magento Community
Magento Community
 
wein-momente
Jr. Member
 
Total Posts:  7
Joined:  2008-12-22
 

!!! Vorsicht - bitte nicht 1:1 kopieren - erst checken ob das auf Euren Shop zutrifft !!!

Hallo zusammen,

wir betreiben einen Wein Shop und hatten daher sehr stark unter dem Problem mit den Rundungsdiffernzen zu leiden. (Kleine Preise, große Mengen - da kommen gerne mal Euro-Beträge als Differenz raus.)

Unser Ziel ist es, dem Endverbraucher Bruttopreise anzuzeigen, richtig zu runden und die MwSt. richtig auszuweisen, auch für verschiedene Steuerklassen.

Da keine Zeit ist auf ein neues Release zu warten, blieb nur die Operation am offenen Herzen:

Folgende Einstellungen im Backen:

- Version ist 1.1.8
- Preise - netto (alles andere ist nicht sinnvoll, wozu gibts sonst Steuerklassen für Produkte und Kunden)
- Katalogpreise enthalten Steuern --> muss auf nein
- Versandkosten enthalten Steuern --> ja nach dem, allerdings nicht vergessen, die Steuerklasse beim Versand einzustellen
- Rabatte sind immer noch ein Problem (habe ich noch nicht gelöst - überspringe ich hier)
- Warenkorb-/Bestellpreise anzeigen --> Inklusive Steuern
- Steuergesamtsumme anzeigen --> egal - geht beides - wir haben hier nein
- Versandkosten anzeigen --> Inklusive Steuern
- Produktpreise anzeigen --> Inklusive Steuern
- Zwischensumme netto anzeigen --> nein (funktioniert aber nicht - ist immer netto - blöder Bug - führt zu Missverständnissen beim Endverbraucher)

Für die Reihenfolge der Anzeige habe ich folgendes eingestellt:

Zwischensumme (netto) - 10
(Rabatt - 40 )
Versand - 20
zzgl. 19% MwSt. (Steuer) - 30
Gesamtsumme - 100

So - jetzt sollte es eigentlich stimmen, leider kann magento nicht wirklich rechnen - da viele Routinen als Kalkulationsgrundlage immer den Nettopreis nehmen und so haufenweise Rundungsfehler produzieren:

Abhilfe hat hier folgendes Coding gebracht

app/code/core/Mage/Sales/Model/Quote/Item/abstract.php:

Methode calcRowTotal() und calcTaxAmount() anpassen.

public function calcRowTotal()
    
{
        $qty 
$this->getQty();

        if (
$this->getParentItem()) {
            $qty 
$qty*$this->getParentItem()->getQty();
        
}

        
if ($rowTotal $this->getRowTotalExcTax()) {
            $baseTotal 
$rowTotal;
            
$total $this->getStore()->convertPrice($baseTotal);
        
}
        
else {
            
//$total      = $this->getCalculationPrice()*$qty;
            //$baseTotal  = $this->getBaseCalculationPrice()*$qty;
            
$total      round($this->getCalculationPrice(),2)*$qty;
            
$baseTotal  round($this->getBaseCalculationPrice(),2)*$qty;
        
}

        $this
->setRowTotal($this->getStore()->roundPrice($total));
        
$this->setBaseRowTotal($this->getStore()->roundPrice($baseTotal));

        return 
$this;
    
}

      
public function calcTaxAmount()
    
{
        $store 
$this->getStore();

        if (!
Mage::helper('tax')->priceIncludesTax($store)) {
            
if (Mage::helper('tax')->applyTaxAfterDiscount($store)) {
                $rowTotal       
$this->getRowTotalWithDiscount();
                
$rowBaseTotal   $this->getBaseRowTotalWithDiscount();
            
else {
                $rowTotal       
$this->getRowTotal();
                
$rowBaseTotal   $this->getBaseRowTotal();
            
}

            $taxPercent 
$this->getTaxPercent()/100;
            
            
//ich brauche die Menge zum teilen
            
$qty $this->getQty();

            
//$this->setTaxAmount($store->roundPrice($rowTotal * $taxPercent));
            //$this->setBaseTaxAmount($store->roundPrice($rowBaseTotal * $taxPercent));
            //Rundungsfehler mitnehmen
            
$this->setTaxAmount($store->roundPrice($this->getCalculationPrice()*$taxPercent)*$qty);
            
$this->setBaseTaxAmount($store->roundPrice($this->getBaseCalculationPrice()*$taxPercent)*$qty);
            
            
            
$rowTotal       $this->getRowTotal();
            
$rowBaseTotal   $this->getBaseRowTotal();
            
//$this->setTaxBeforeDiscount($store->roundPrice($rowTotal * $taxPercent));
            //$this->setBaseTaxBeforeDiscount($store->roundPrice($rowBaseTotal * $taxPercent));
            
$this->setTaxBeforeDiscount($store->roundPrice($this->getCalculationPrice()*$taxPercent)*$qty);
            
$this->setBaseTaxBeforeDiscount($store->roundPrice($this->getBaseCalculationPrice()*$taxPercent)*$qty);
            
        
else 
 
// ... ab hier nichts mehr ändern

Im Grunde sorge ich nur dafür, dass nur einmal Netto in Brutto umgerechnet wird. Im Anschluss rechne ich mit dem Bruttowert weiter. Leider ist die Steuerberechnung nicht perfekt - den Discount habe ich glatt ignoriert, allerdings berechne ich ja meine Steuer vor dem Rabatt wink.

So - jetzt mussten wir noch alle Email-Templates, Übersetzungen und PDF-Outputs überprüfen und ggf. anpassen.

Jetzt funktoniert es einigermaßen - allerdings alles sehr unbefriedigend. Richtig rechnen sollte das System schon können. Außerdem graut es mir schon vor dem nächsten Update ....

Also - in diesem Sinne - unsere Lösung als Denkansatz für Euch.

Viele Grüße,

Christian von wein-momente

 
Magento Community Magento Community
Magento Community
Magento Community
 
wein-momente
Jr. Member
 
Total Posts:  7
Joined:  2008-12-22
 

Sorry,

Kommando zurück - jetzt sind bei uns zwar die Zwischensummen stimmig - allerdings ist der Mehrwertsteuerbetrag jetzt nicht immer 19% :( - mist. Wäre ja zu schön gewesen…

 
Magento Community Magento Community
Magento Community
Magento Community
 
wein-momente
Jr. Member
 
Total Posts:  7
Joined:  2008-12-22
 

Komisch, dass niemand sonst hiermit Probleme hat.

Nach langer Suche sind wir auf eine andere Lösung gekommen. Ein Weg auf Netto Basis richtige Brutto Werte anzugeben, ist die Angabe von 4stelligen Nettopreisen.

Das funktioniert auch, wenn man die interne Rundung auf 4 Stellen abändert, und bei den Ausgaberoutinen wieder 2-stellig ausgibt.

app/code/core/Mage/Core/Model/store.php

...
    public function 
roundPrice($price)
    
{
        
//4 Stellige Preise
        
return round($price4);
        
//return round($price, 2);
    
}
...
    public function 
formatPrice($price$includeContainer true)
    
{
        
if ($this->getCurrentCurrency()) {
            
return $this->getCurrentCurrency()->format(round($price,2), array(), $includeContainer);
        
}
        
return round($price,2);
    
}
...

Ich habe aber jetzt das Problem, das bei der Preispflege im Backend die Ausgabe trotzdem nur 2 stellig ist. D.h. ich kann einen 4stelligen Preis angeben, der wird auch so in der DB gespeichert. Wenn ich das Produkt aber wieder aufrufe und z.B. die Beschreibung ändere, wird der 2 stellige Preis im Formular angezeigt. Wird jetzt gespeichert, so wird mein 4stelliger Wert wieder überschrieben.

Kennt jemand die Stelle an der ich die Ausgabe der Preise im Backend steuern kann?

Viele Grüße,

Christian von Wein-Momente

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

Hallo,

wirklich komisch was bei eurem Shop so gerechnet wird.

Also bei mir geht es wunderbar, auch mit mehreren Artikeln?

Seit Ihr evtl. mit einem Rechenfehler an die Sache herangegangen?

Gruss

 
Magento Community Magento Community
Magento Community
Magento Community
 
wein-momente
Jr. Member
 
Total Posts:  7
Joined:  2008-12-22
 

Ich hab das mal im Magento Demo Store nachgestellt:

Mein Wein kostet 6,99 € im Verkauf. Das sind Netto 5,8739… €.

Hier die Bestellung aus dem Demo Store - 50 Flaschen Wein - á 6,99 €.

Korrekt wären: 50 x 6,99 € = 349,50 € enthält 19 % MwSt: 55,80 €

Hier der Store (siehe Anhang)

Hier bekomme ich als Resultat:

Subtotal $293.50
Tax $55.77
Grand Total $349.27

Geht halt gar nicht, weil der Kunde ja die 6,99 € im Shop sieht.
Leider kann ich im Demo Store nicht auf Brutto umstellen - aber das ist auch genauso falsch!

Image Attachments
Bild 1.pngBild 2.png
 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

Also ich habe das mal auf einer aktuellen Beispielinstallation nachgespielt und es wird so gerechnet wie du es möchtest.

?

Grüße

Image Attachments
wein.gif
 
Magento Community Magento Community
Magento Community
Magento Community
 
wein-momente
Jr. Member
 
Total Posts:  7
Joined:  2008-12-22
 

Moin,

hast Du die ganz neue Version 1.2.0.1? Und Du hast bestimmt beim Artikelpreis 6,99 € eingepflegt - also brutto, oder?

Netto Preise haben halt gewisse Vorteile, wenn man in verschiedene Länder verschicken möchte.
Jedes Land hat ja andere Steuersätze.
Die Darstellung mit der Netto Zwischensumme finde ich auch ziemlich verwirren.

Ich hab mein Beispiel direkt im Magento-Demo Store auf der Magento Seite eingestellt - ich werde allerdings auch nochmal ein Testsystem aufsetzen mit der aktuellen Version. Vielleicht geht es ja jetzt…

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

?? ich verstehe nicht ganz

das einzigste Land wo ich wirklich einen Netto-verkauf benötige ist die Schweiz.

Und wenn Du für jedes Land etwas anderes definieren willst musst Du das über die Konfig machen.

Sprich Land DE ist brutto
Land CH ist netto
und so kannst Du jeden Land das zuweisen was du brauchst

Du verkaufst doch schließlich an Endverbraucher und nicht B2B

Grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
fargo87
Jr. Member
 
Total Posts:  1
Joined:  2009-01-30
 

Hallo kann mir bitte jemand helfen. Ich versuche einen Shop einzurichten, aber vor kurzem ist mir aufgefallen, dass Magento falsch den Steuer berechnet, bei mir im Shop alle Preise enthalten schon Steuer.  Z.B.: irgendwas kostet 13.9 Euro Steuer soll davon 2,64 sein. Aber Magento rechnet noch irgendwas, keine Ahnung was so, dass Magento statt 19% auf29,38% kommt und somit kommt die Summe bei Steuer 4,08 Euro

Mein Shop: www.vivasan.webhop.info

Danke.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top
Page 1 of 4