Neu Dot Liquid Abfrage für einen Positionsgewinn

Bostler

Gut bekanntes Mitglied
31. Mai 2021
100
4
Hi zusammen. Ich verzweifel manchmal an mir selbst.

ich möchte bei Auftrag erstellt einen Workflow auslösen wenn wir Artikel verkaufen die eine Mindestmarge unterschritten haben.

Die möchte ich nur auf Artikel anwenden und nicht auf Versandpositionen.

Dazu gehe ich wie folgt vor :

{% assign isCorrupt = 0.0 -%}\
{% for pos in Vorgang.AuftragsPositionen.Positionen -%}\
{% if pos.PosTyp == 'standard' pos.IstVersandkostenPosition == false and pos.NettopreisEinzel < (pos.Artikel.Einkaufspreis * 10) -%}
{% assign isCorrupt = isCorrupt | Plus: 1.0 -%}{% endif -%}\
{% endfor -%}
{{ isCorrupt }}

Das Ergebnis ist 0. Zur Veranschaulichung noch einmal die werte ohne irgendwelche Berechnungen:

PosTyp: standard
NettopreisEinzel: 12,558333
Positionstyp: Artikel
Einkaufspreis: 7,8
Einkaufspreis*10: 78,0
-----------------

PosTyp: versandposition
NettopreisEinzel: 9,158333
Positionstyp: Versandposition
Einkaufspreis: 0
Einkaufspreis*10: 0
-----------------

Und hier nochmal Bilder zur Veranschaulichung.

1639759897503.png


1639759920363.png



Jemand ein Idee was ich falsch mache =?
 

John

Sehr aktives Mitglied
3. März 2012
3.885
942
Berlin
In Zeile 3 fehlt nach "'standard'" eine logische verknüpfung. Vermutlich and.

und

(pos.Artikel.Einkaufspreis * 10) als Teil einer Abfrage kann schief gehen. dotLiquid mag keine komplexen Anfragen. Lass Dir das mal lieber vorher in eine Variable berechnen...
 

Bostler

Gut bekanntes Mitglied
31. Mai 2021
100
4
In Zeile 3 fehlt nach "'standard'" eine logische verknüpfung. Vermutlich and.

und

(pos.Artikel.Einkaufspreis * 10) als Teil einer Abfrage kann schief gehen. dotLiquid mag keine komplexen Anfragen. Lass Dir das mal lieber vorher in eine Variable berechnen...
Hi,

ja das and ist passiert da ich soviel rumgespielt habe.

Aber es klappt jetzt in dem ich erst den EK capture

{% assign isCorrupt = 0.0 -%}\
{% for pos in Vorgang.AuftragsPositionen.Positionen -%}\
{% capture ekpreis -%} {{ pos.Artikel.Einkaufspreis | Times: 1.62 }}
{% endcapture -%}
{% if pos.PosTyp == 'standard' and pos.IstVersandkostenPosition == false and pos.NettopreisEinzel < ekpreis -%}
{% assign isCorrupt = 1 -%}{% endif -%}\
{% endfor -%}
{{ isCorrupt }}

So werden auf den EK 62% aufgeschlagen . Der also der VK Netto unter 62% Marge bekommen wir eine Mail ;)

Danke für die Hilfe
 
  • Gefällt mir
Reaktionen: BinIch