Gelöst V 1.3.11.0: Freiposition hinzufügen - korrekten MwSt.-Satz erteilen

Mander

Aktives Mitglied
25. Oktober 2016
42
1
Guten Tag,

mit der WaWi V 1.3.11.0 ist nun ein wichtiges Feature erschienen: ab jetzt können wir die Preise und MwSt.-Sätze für automatisch hinzugefügte Freipositionen per DotLiquid-Abfrage bestimmen. Hierfür ein dickes Lob an JTL.
Wir haben jetzt aber folgendes Problem: die per Workflow hinzugefügte Freiposition ist in unserem Fall eine Zahlungsgebühr. Der MwSt.-Satz einer solchen Gebühr muss sich immer am höchsten MwSt.-Satz, der durch die normalen Artikel in der Bestellung definiert wird, orientieren.

Beispiel: Im Auftrag kommen zwei Artikel vor. Der eine Artikel wird mit 7% besteuert, der andere mit 19%. Fügen wir nun die Freiposition hinzu, muss diese mit 19% besteuert werden. Würden beide Artikel lediglich mit 7% besteuert, müsste die Freiposition ebenfalls nur mit 7% besteuert werden.

Meines Wissens gibt es in DotLiquid keine Variable, die das kann. Prinzipiell ist die WaWi zu so etwas aber in der Lage, da Versandkosten und Zahlungsgebühren in Bestellungen, die direkt aus unserem JTL Shop übernommen werden, eben nach diesem Muster besteuert werden (MwSt. der Versandkosten und Gebühren richtet sich immer am höchsten, in der Bestellung vorkommenden MwSt.-Satz).

Hat irgendjemand eine Idee, wie man das lösen kann?

Vielen Dank und mit besten Grüßen!

Mander
 

Mander

Aktives Mitglied
25. Oktober 2016
42
1
Ok, ich bin selbst auf eine Lösung gekommen:

{% if Vorgang.AuftragsPositionen.ArtikelPositionen.AnzahlMwStSätze == 2 %}
19
{% elsif Vorgang.AuftragsPositionen.ArtikelPositionen.AnzahlMwStSätze == 1 %}
{{ Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.MwStSatz }}
{% endif %}

Da in der Regel nur 2 Steuersätze vorhanden sind (19% und 7%), setzt diese Anweisung folgerichtig die 19%, wenn sowohl 19% als auch 7% im Auftrag vorkommen. Falls nur ein Steuersatz vorkommt (entweder 19% oder 7%), setzt die Anweisung den Steuersatz des ersten Artikels im Auftrag. Damit sollten alle Eventualitäten abgedeckt sein.
 

Björn Ponsen

Moderator
Mitarbeiter
1. Juli 2016
961
84
Guten morgen,

Problem hier kann sein, das die erste Position aber 7% sind und dann würde es wenn ein anderer Artikel vorhanden ist mit 19% die MwSt. nicht stimmen.

Ich würde es besser so machen. Damit hast du dieses Problem nicht und kriegst nur den größten Wert ausgegeben

{% assign maxMwst = 0.0 -%}
{% for Pos in Vorgang.AuftragsPositionen.Positionen -%}
{% assign aktuellerMwst = Pos.MwStSatz -%}
{% if aktuellerMwst > maxMwst -%}
{% assign maxMwst = aktuellerMwst -%}
{% endif -%}
{% endfor -%}
{{ maxMwst }}
 

Mander

Aktives Mitglied
25. Oktober 2016
42
1
Guten morgen,

Problem hier kann sein, das die erste Position aber 7% sind und dann würde es wenn ein anderer Artikel vorhanden ist mit 19% die MwSt. nicht stimmen.
In diesem Fall greift ja aber die erste Anweisung, von daher kein Problem. Sobald zwei unterschiedliche Steuersätze vorhanden sind, werden die 19% genommen. Sobald nur ein einziger Steuersatz im gesamten Auftrag vorhanden ist, wird der Steuersatz der ersten Artikelposition genommen. Da es in diesem Fall sowieso nur einen einzigen Steuersatz gibt bzw. sich alle Artikel im Auftrag den gleichen Steuersatz teilen, ist der Steuersatz der ersten Artikelposition immer der richtige.

Aber vielen Dank für Deinen Lösungsweg, werde mir das später mal genauer anschauen!
 

Björn Ponsen

Moderator
Mitarbeiter
1. Juli 2016
961
84
Aber Ihr wollt ja den höchsten Steuersatz nehmen wenn nur eine Pos. Vorhanden ist, wird auch nur die genommen da hier nur einmal durch die Schleife gegangen wird ;)
 

Mander

Aktives Mitglied
25. Oktober 2016
42
1
Wir wollen nicht per se den höchsten Steuersatz haben, wenn nur eine Position vorhanden ist, sondern nur den Steuersatz von eben dieser Position.

Beispiel Auftrag 1:
Artikel X hat 7%
Artikel Y hat 19%

Es greift die erste Anweisung, die Freiposition wird mit 19% hinzugefügt.

Beispiel Auftrag 2:
Artikel X hat 19%
Artikel Y hat 7%

Es greift die erste Anweisung, die Freiposition wird mit 19% hinzugefügt.

Beispiel Aufrag 3:
Artikel X hat 7%
Artikel Y hat 7%

Es greift die zweite Anweisung, die Freiposition wird mit 7% hinzugefügt

Beispiel Auftrag 4:
Artikel X hat 19%
Artikel Y hat 19%

Es greift die zweite Anweisung, die Freiposition wird mit 19% hinzugefügt.

Beispiel Auftrag 5:
Artikel X hat 7% (bzw. 19%)

Es greift die zweite Anweisung, die Freiposition wird mit 7% (bzw. 19%) hinzugefügt.
 
Zuletzt bearbeitet:

Mander

Aktives Mitglied
25. Oktober 2016
42
1
Und genau das macht auch meine Anweisung, nur eben auf einen anderen Weg. Björn, jetzt mach mir nicht meinen Lösungsweg madig, ich bin immer noch stolz auf mich :D