Bei Gott ist mein Heil, meine Ehre, der Fels meiner Stärke; meine Zuversicht ist auf Gott.
Psalm 62:7
autor | |
13-09-12 12:06:52 | MwSt.-Berechnung bei Staffel(Mengen-)Preisen |
Oliver S |
Hallo, wie es scheint, gibt es einen Fehler in der MwSt.-Berechnung oder aber es ist etwas falsch konfiguriert. Es wurden diverse Produkte angelegt, denen ein Preis vergeben wurde. Zusätzlich dazu wurden Mengenstaffelpreise für jedes Produkt im TypoScript vergeben. Bsp: - Einzelpreis im Produkt angegeben: 5,50 - Einzelpreis ab 500 bestellten Einheiten: 5,40 Soweit klappt alles, allerdings scheinen die Marker für TAX_ONLY die Mengenstaffeleinzelpreise nicht zu beachten. Im Warenkorb steht also z.B. Einzelpreis 5,40€ (korrekt), aber die MwSt. davon wird immer noch aus den 5,50 berechnet (die direkt im Produkt hinterlegt sind), also nicht aus dem Einzelpreis ab der Menge 500, obwohl über 500 Einheiten im Warenkorb liegen. Das zieht sich so durch den kompletten Warenkorb, sodass am Ende eine falsche Gesamtsumme herauskommt. Gibt es eine TypoScript-Option, die ich für MwSt. bei Mengenstaffeln aktivieren muss? Vielen Dank! |
13-09-12 12:16:48 | Specs |
Oliver S |
TYPO3 4.3.14 tt_products 2.8.1 |
13-09-12 18:42:21 | genauer |
Franz Holzinger |
Welcher genaue Marker an welcher Stelle ist wie falsch aufaddiert? Ich benötige genaue Angaben. Ist das Setup für die Staffelpreise richtig verwendet worden? |
14-09-12 10:47:23 | B2B-Shop |
Oliver S |
Es geht um einen Geschäftskunden-Shop, also alle Preise netto ohne MwSt. Folgende Marker werden verwendet: - Einzelpreis Produkt: ###PRICE_NO_TAX###, zzgl. MwSt. ###PRICE_ONLY_TAX### - Gesamtpreis Produkt: ###PRICE_TOTAL_NO_TAX###, zzgl. MwSt. ###PRICE_TOTAL_ONLY_TAX### Die normalen Preise exkl. MwSt. werden korrekt berechnet, da diese ja in TYPO3 eingepflegt wurden, auch mit Mengenstaffeln. Nur die MwSt.-Preise nimmt es nicht aus den Staffeln, sondern immer nur vom im Produkt vergebenen Preis. Folgendes TS ist für die Mengenstaffeln gesetzt: plugin.tt_products.getDiscountPrice = 1 plugin.tt_products.discountprice > plugin.tt_products.discountprice { [...] 50 { type = count field = price additive = 0 sql.where = uid = 5 prod.1 = 5.86 prod.240 = 5.86 prod.480 = 5.71 prod.720 = 5.64 } [...] } Am oberen Produkt das konkrete Problem: Im Produkt mit der uid = 5 ist als Preis 5.86€ eingetragen. Bestelle ich 720 Einheiten davon, steht korrekt als Einzelpreis 5.64€, aber die MwSt. berechnet sich nachwievor aus den im Produkt angegebenen 5.86€ und ist dementsprechend zu hoch. Die MwSt. scheint also gar nicht die Mengenstaffeln zu beachten. Test-Shop: http://bit.ly/SK67Yi Wenn Sie dort 720 Einheiten in den Warenkorb legen, sehen Sie das Problem. Einzelpreis korrekt 5.64€, aber 19% von 5,64€ sind nicht 1,11€, sondern 1,07. Die 1,11€ sind die MwSt. von den im Produkt hinterlegten 5.86€. |
15-09-12 14:35:23 | kein Fehler feststellbar |
Franz Holzinger |
Ich habe es mit der aktuellsten tt_products 2.8.1.32 nachgestestet und kann keinen Fehler feststellen. file.templateFile = EXT:addons_tt_products/template/example_template_bill_de.tmpl Das Produkt wird so im Warenkorb aufgelistet: 5,64 (Steuer: 0,90) EUR Anzahl: 720 inkl. MwSt. 4060,80 (exkl. MwSt.: EUR 3412,44) Erweitert mit "Steuer: EUR ###PRICE_TOTAL_ONLY_TAX###" ergibt: Steuer: EUR 648,36 |
17-09-12 13:08:05 | Netto - Brutto |
Oliver S |
Die Preise sind netto, da B2B-Shop, also ist der MwSt.-Satz von 5,64€ 1,07€, der drauf geschlagen werden sollte. Bei mir steht aber nachwievor 1,11€ von den 5,86€. Und auch wenn ich im Warenkorb die Menge ändere, ändert sich zwar gemäß der Mengenstaffeln der Einzelpreis, aber die MwSt. bleibt gleich. Im Grunde ist die Berechnung der MwSt. ja korrekt, nur nimmt es die Werte nicht aus der discountPrice-TS-Konfiguration, sondern immer nur vom im Produkt eingegebenen Preis. Keine Ahnung, woran das liegen könnte. Der Einzelpreis selbst ändert sich, wenn ich die Menge ändere, nur irgendwie nicht die MwSt. |
19-09-12 12:06:48 | Konstanten |
Oliver S |
In den Konstanten ist übrigens folgendes gesetzt: # cat=plugin.products//; type=small; label=TAX percentage: Type= Double (means, "use . as decimal point") TAXpercentage = 19.00 # cat=plugin.products//; type=boolean; label=TAX included in database prices? TAXincluded = 0 # cat=plugin.products//; type=int+; label=TAX mode. 1 ... add taxes to the end net sum - 2 ... add taxes on each single product first TAXmode = 1 # cat=plugin.products//; type=eint+; label=TAX rates. Comma separated list of tax rates. The first will be taken as tax A, the second as tax B aso. TAXrates = 19 Ist das so korrekt? |
20-09-12 16:51:34 | Korrektur zu tt_products 2.8.1 |
Franz Holzinger |
Ich habe jetzt gesehen, dass der Fehler bei TAXincluded=0 auftritt. Ich habe es in der neuesten tt_products 2.8.1.33 nun behoben. Die rabattierte Steuer ist nach der Ermittlung der Discount Rabatte nicht mehr berechnet worden. Anzeige: 6,71 (ohne Steuer: 5,64 Steuer: 1,07) EUR Anzahl 720 inkl. MwSt. 4832,35 (exkl. MwSt.: EUR 4060,80) Steuer: EUR 771,55 |
21-09-12 12:47:49 | Noch ein Bug? |
Oliver S |
Hallo, es scheint da leider noch einen Bug zu geben. Die Mengenrabatte scheint es nun immer aus dem Discount-Typoscript-Objekt mit der größten Ordnungsnummer zu nehmen. Sie haben im Moment vermutlich nur ein Produkt im discountprice-Objekt, sodass es bei Ihnen funktioniert: 50 { type = count field = price additive = 0 sql.where = uid = 5 prod.1 = 5.86 prod.240 = 5.86 prod.480 = 5.71 prod.720 = 5.64 } Wenn Sie nun mehrere Objekte hinzufügen, z.B. das Objekt 90, sollte es auch bei Ihnen nicht mehr funktionieren: plugin.tt_products.getDiscountPrice = 1 plugin.tt_products.discountprice > plugin.tt_products.discountprice { [...] 50 { type = count field = price additive = 0 sql.where = uid = 5 prod.1 = 5.86 prod.240 = 5.86 prod.480 = 5.71 prod.720 = 5.64 } 90 { type = count field = price additive = 0 sql.where = uid = 9 prod.1 = 1224.00 prod.2 = 1188.00 prod.3 = 1173.60 prod.4 = 1144.80 prod.5 = 1130.40 prod.6 = 1116.00 prod.7 = 1101.60 prod.8 = 1087.20 prod.9 = 1072.80 } [...] } Ich habe da mal zum TS-Objekt 50 ein Objekt hinzugefügt mit 90, was aber ein anderes Produkt ist. Nun scheint es im Warenkorb nur die Mengenstaffel des jeweils "höchsten" Objektes zu nehmen (in diesem Fall 90) und das für alle Produkte im Warenkorb, unabhängig davon, welche Produkte im Warenkorb liegen. Es scheint irgendwie die sql.where = uid = 9 Angabe komplett zu ignorieren. Habe ich z.B. ein Produkt mit der uid 5 UND uid 9 im Warenkorb, zeigt es als Einzelpreis für ALLE Produkte den Einzelpreis des discountprice-Objektes 90 an. Also jeweils immer das höchste discountprice-Objekt. Ich habe im TS-Setup nichts geändert, und es ändert die Werte sofort, wenn ich die neue Version aktiviere, da scheint es also bei der Berechnung einen Fehler zu geben. Hier ein Screenshot: http://i.imgur.com/vTDfA.png Dort wird als Einzelpreis 1072.80 genommen, also den Mengenstaffel-Wert für das Produkt mit uid 9, obwohl das im Warenkorb liegende Produkt die uid 5 hat. Würde ich nun ein plugin.tt_products.discountprice.200 hinzufügen, würde es die Mengenstaffeln nur daraus nehmen, da es das "höchste" Objekt dann ist. Können Sie das reproduzieren? |
1-10-12 22:27:33 | kein Fehler feststellbar |
Franz Holzinger |
Ich kann mit dem oben angegebenen Setup keinen Fehler reproduzieren. Derselbe Rabatt aus Zeile 50 wird auch bei Vorhandensein einer Zeile 90 unverändert für das Produkt mit uid=5 im Warenkorb berechnet. |
< Zurück zum Forum |