Franz Holzinger

Verse of the day

Bei Gott ist mein Heil, meine Ehre, der Fels meiner Stärke; meine Zuversicht ist auf Gott.
Psalm 62:7

© Bible Gateway's Verse of the Day


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