Neu DotLiquit Hilfe benötigt

Chris_94

Aktives Mitglied
16. Dezember 2015
20
0
Hallo Zusammen,

ich bin gerade dabei für unsere Firma eine neue Vorlage zu in Versanddatenexport zu erstellen und scheitere gerade an einer Sache.

Wir haben für Briefsendungen 2 Abholungen:
um 13 Uhr Nationale Sendungen
um 16 Uhr Nationale und International

Für diese Sendungen in einer Versandsoftware 3 Mandanten.
Die nationalen Sendungen für 13 Uhr sollen über Mandant 1 laufen, die Internationalen für 16 Uhr über Mandant 2, die Nationalen für 16 Uhr über Mandant 3.

Dafür habe ich folgendes in die Vorlage geschrieben:

PHP:
{{ ContentForCsv  | Csv }}{% capture Hilfsfeld -%}
{% if Vorgang.Lieferschein.Auftrag.Lieferadresse.Landname == Vorgang.Lieferschein.Auftrag.Firma.Landname -%}
{% if Datum.Gestartet | FormatDate: 'HH:mm' < '12:45' -%}
1\
{% else %}
3\
{% endif %}\
{% endif %}\
{% if Vorgang.Lieferschein.Auftrag.Lieferadresse.Landname != Vorgang.Lieferschein.Auftrag.Firma.Landname -%}
2\
{% endif -%}
{% endcapture -%}
{% capture ContentForCsv %}{% if Hilfsfeld != empty %}{{ Hilfsfeld}}{% else %}{% endif %}{% endcapture -%}

Das Problem ist bei diesem Code, die Wenn Funktion mit der Uhrzeit scheint nicht zu funktionieren, es wird bei den Nationalen Sendungen immer nur die 1 hinterlegt.

Danke schonmal.
 

dixeno-bhesse

Aktives Mitglied
30. August 2014
92
4
Mit DotLiquid kenne ich mich nicht wirklich aus, sowas hier könnte klappen:
Code:
{% assign uhrzeitStr = Datum.Gestartet | FormatDate: 'HHmm' -%}
{% assign uhrzeitInt = uhrzeitStr | ToInt -%}
Aktuelle Uhrzeit: {{uhrzeitInt}}

{% if uhrzeitInt < 1245 -%}
Es ist VOR 12:45
{% else -%}
Ist NACH 12:45 (oder genau 12:45)
{% endif -%}

...also praktisch z.B 20:32 als Zeichenkette '2032' nach uhrzeitStr schreiben und dann in eine Zahl konvertieren (ToInt).
Mit Vergleich von 2032 < 1245 als Zahlen statt als Text scheint DotLiquid dann auch was anfangen zu können
 

Xantiva

Sehr aktives Mitglied
28. August 2016
1.795
316
Düsseldorf
Auch wenn Du schon eine Lösung hast - Du könntest mal versuchen, eine Klammer zu setzen:
Code:
{% if (Datum.Gestartet | FormatDate: 'HH:mm') < '12:45' -%}

Ich kenne die Operatorreihenfolge nicht von dotliquid, aber es könnte auch folgendes passieren, wenn das "<" Vorrang vor dem "|" hat:
Code:
{% if Datum.Gestartet | FormatDate: ('HH:mm' < '12:45') -%}