Rabatt einer Bestellung in der DB

Hallo allerseits,

für einen Export der Rechnungsdaten brauche ich die Bruttosummen der Artikel getrennt nach den einzelnen Umsatzsteuersätzen.
Also summiere ich die Werte aus der oxorderarticles.
Ein Problem bekomme ich dann, wenn auf die Bestellung ein Rabatt angewendet wurde. Den Rabatt-Betrag finde ich in der oxorder, aber leider keinen Hinweis darauf wie er zustande gekommen ist. Und das macht es dann schwierig die nach Umsatzsteuersätzen getrennten Summen zu korrigieren. Kann ich irgendwo anders nachvollziehen, welcher Rabatt angewendet wurde?

Gruß
Ansgar

d.h. du brauchst den Preis vor dem Rabatt?
Bei Rabatten gibt es eigentlich keine zuverlässige Möglichkeit, da Rabatte sowohl für einzelne Positionen als auch für die gesamte Bestellung gelten können. Und gemischt geht auch noch. Der Aufwand das alles auseinanderzufummeln wäre enorm groß, da man praktisch die Bestellung nochmal simulieren müsste und einzelne Positionen berechnen und schauen, welche Rabatte aktiv wären.

Aber wozu brauchst du den unrabattierten Preis? Er ist weder für BI noch für die Umsatzsteuer relevant

Nein, im Gegenteil: Ich brauche den rabattierten Preis. In der DB habe ich die unrabattierten Einzelpreise. Ich habe auch ein paar Summen und den Gesamt-Rabatt. Bei den Umsatzsteuer-Anteilen ist der Rabatt auch berücksichtigt. Ich benötige aber nicht die Umsatzsteuer-Anteile, sondern die Summen Brutto-Warenwerte getrennt nach Umsatzsteuer-Sätzen. Wie Du schon sagst, kann der Rabatt für alles mögliche gelten, sodass ich das nicht einfach zurückrechnen kann.

Gruß
Ansgar

jetzt hast du mich verunsichert … wir nutzen nur Gutscheine im Shop, daher konnte ich das nicht wirklich prüfen.
hier der Code aus unseren ERP Exporter:

Preis:

round($oArticle->oxorderarticles__oxnetprice->value, 2)

MwSt

round($oArticle->oxorderarticles__oxvatprice->value, 2)

Rabatt %:

($oArticle->oxorderarticles__oxprice->value != 0 ? round((1 - $oArticle->oxorderarticles__oxbprice->value / $oArticle->oxorderarticles__oxprice->value) * 100, 2) : 0)

Rabatt:

$oArticle->oxorderarticles__oxamount->value * ($oArticle->oxorderarticles__oxprice->value - $oArticle->oxorderarticles__oxbprice->value

ist schon par Jahre her, dass das Ding gebaut und getestet wurde, aber ich glaube, dass:

  1. Rabatte für bestimmte Positionen werden bei Positionen gespeichert.
  2. Rabatte für den gesamten Warenkorb im Bestellkopf
  3. Gutscheine sind in $oOrder->oxorder__oxvoucherdiscount->value

Da wir überwiegend auf Rechnung verkaufen und unsere Rechnungen vom ERP erstellt werden, hätte jemand sich schon beschwert, wenn die Zahlen nicht hingehauen hätten.

Du müsstest am besten mal eine Bestellung mit 2 Produkten für je 100€ machen,
wobei du ein WK-Rabatt hättest und einen Positionsrabatt für einen der beiden Produkte
Und dann könnte man am besten sehen, wie viel % von welchem Preis abgezogen wurden

Wenn ich ein bisschen Zeit habe, werde ich das auch mal testen

[QUOTE=vanilla thunder;181186]jetzt hast du mich verunsichert [/QUOTE]
Gleichfalls!
Ich lese die Datensätze im Moment direkt aus der DB und gehe nicht über die oArticle-Objekte. Jetzt frage ich mich gerade, ob ich damit irgendeine Magie verpasse, die den rabattierten Wert in die Objekte gibt.
Muss ich mir auch noch einmal anschauen.

Danke schon einmal für Deine Anstöße.

Gruß
Ansgar

[QUOTE=vanilla thunder;181186]
Du müsstest am besten mal eine Bestellung mit 2 Produkten für je 100€ machen,
wobei du ein WK-Rabatt hättest und einen Positionsrabatt für einen der beiden Produkte
Und dann könnte man am besten sehen, wie viel % von welchem Preis abgezogen wurden
[/QUOTE]

Achso und dazu: Berechnet wird alles korrekt. Ich habe auch am Ende die richtigen Umsatzsteuer-Anteile der rabattierten Preise. Das einzige was mir fehlt ist die Summe der rabattierten Preise nach Umsatzsteuer-Sätzen getrennt. Und da komme ich im Moment noch nicht so richtig heran.

Gruß
Ansgar

ich würde einfach die Preise der Positionen summieren (getrennt nach MwstSatz natrlich) und den Rabatt anteilig aufteilen.