Neu Voraussichtliches Lieferdatum auch am Wochenende?

uwmarcus

Aktives Mitglied
30. Juli 2010
82
10
Hallo,
ich versuche gerade herauszufinden wie ich die Variable "VoraussichtlichesLieferdatum" vom System so setze, das die voraussichtliche Lieferung nicht am Wochenende stattfindet.. Es ist etwas unschön wenn auf dem eMail Lieferschein und auf der Rechnung "Voraussichtliches Lieferdatum: 23.09.18" steht, da der Tag nunmal ein Sonntag ist.. Habt ihr eine Idee? Ich habe dazu nicht wirklich viel gefunden, kann mir aber im Gegenzug nicht vorstellen das das Problem von allgemeiner Natur ist. Wahrscheinlich sehe ich gerade den Wald vor lauter Bäumen nicht...

Lg,
M
 

knackig

Sehr aktives Mitglied
17. November 2011
950
155
Nordhessen
Hallo, ich habe mir einen WF gebastelt, mit dem ich das Voraussichtliche Datum setze. Und zwar von heute an gerechnet unter Berücksichtigung der Lieferzeit für nicht lagernde Artikel. Das errechnete Datum wird auf einen Freitag in der jeweiligen Woche gesetzt (da ich da meistens die Lieferungen von den Produzenten erhalte). Der Code sieht so aus:
Code:
{% assign Lieferzeit = 0 -%}
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% assign Bestand-Menge = Artikelbeschreibungen.Artikel.Bestand | Minus: Artikelbeschreibungen.MengeOffen -%}
{% if Bestand-Menge < 0 -%}
{% capture itemquery -%}SELECT nLieferzeit FROM tliefartikel WHERE nStandard LIKE 1 AND tArtikel_kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% assign liefLieferzeit = itemquery | DirectQueryScalar -%}
{% if liefLieferzeit > Lieferzeit -%}{% assign Lieferzeit = liefLieferzeit -%}{% endif -%}
{% endif -%}
{% endfor -%}
{% assign Datum_ErstelldatumMitLieferzeit = Datum.Jetzt | AddDays: Lieferzeit -%}
{% assign Datum_basis = Datum_ErstelldatumMitLieferzeit | FormatDate: 'dddd', 'de-DE' -%}
{% case Datum_basis -%}
{% when 'Montag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 4 }}
{% when 'Dienstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 3 }}
{% when 'Mittwoch' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 2 }}
{% when 'Donnerstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 1 }}
{% when 'Freitag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 0 }}
{% when 'Samstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -1 }}
{% else -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -2 }}
{% endcase -%}
 
  • Gefällt mir
Reaktionen: luffi

uwmarcus

Aktives Mitglied
30. Juli 2010
82
10
Hallo Paul,
danke für Deine ausführliche Antwort. Da wir jeden Werktag als potentiellen Liefertermin haben, gestaltet sich das bei uns etwas anders.
Ich möchte gerne die fertige Variable "Vorgang.Auftrag.VoraussichtlichesLieferdatum" nutzen, da diese bereits vom Shop gefüllt wird und der Wert ansich auch ok ist, wenn denn nicht gerade Samstag oder Sonntag ausgewiesen wird. Dann müsste da eben der kommende Montag als Wert hinein. Und es wäre natürlich auch gut, nicht nur die Ausgabe "umzubiegen", sondern "VoraussichtlichesLieferdatum" in der Wawi DB mit dem neuen Wert zu überschreiben um in allen Ausgaben gleichzeitig den richtigen Wert zu erhalten.

Ich kann immer noch kaum glauben das noch nicht aufgefallen ist, das als Liefertermin auch Samstag/Sonntag/Feiertag ausgegeben wird? Oder bin ich der einzige der diese Variable nutzen möchte? ;)

Hat jemand eine Idee?

Vg,
Marcus
 

knackig

Sehr aktives Mitglied
17. November 2011
950
155
Nordhessen
In meinem Beitrag ist eine Anpassung des Datums abhängig vom Wochentag. Genau das kannst du nutzen um aus einem Samstag einen Montag zu berechnen. Anders geht es meines Wissens nach nicht.

Gesendet von meinem STF-L09 mit Tapatalk
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
232
Aber ganz ehrlich, dann müsstest du ja auch Feiertage berechnen ... sei es regionale oder überregionale ... sei es Feiertage, an denen du nicht versendets oder Feiertage an denen beim Kunden nicht zugestellt wird.

Es heißt ja nicht umsonst "vorraussichtlich"
 
  • Gefällt mir
Reaktionen: knackig

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.243
1.508
Das einfachste wäre wahrscheinlich den Text ein wenig anzupassen in "Vorraussichtliches Lieferdatum XX.XX.XXXX - alternativ der darauffolgende Werktag."
 

uwmarcus

Aktives Mitglied
30. Juli 2010
82
10
Hallo,
das Wochenendproblem habe ich mittels DB Trigger gelöst... Wenn Samstag dann plus 2, wenn Sonntag dann plus 1..
Die Feiertage bereiten mir noch gerade etwas Kopfschmerzen aber das wird auch noch gelöst.

Einfach den Text anzupassen ist zwar fix, aber nicht wirklich schön - oder? ;)

Wenn ich das Thema fertig habe, poste ich gerne die Info.

Ich wollte nur sichergehen das ich nicht etwas übersehen habe, da ich das genau genommen nicht ganz glauben konnte (und kann) das ein Lieferdatum am Wochenende einfach als Standard ausgeliefert wird.

Vg,
Marcus
 

spoltmann

Aktives Mitglied
13. September 2016
72
3
Stadtlohn
Würden das Problem ebenfalls gerne beseitigen.
Gibts da schon eine Lösung oder Lösungsansatz? Was muss man machen damit es mit dem DB Trigger funktioniert?
Gibts es eine Zahlungspflichtige Lösung?
VG
Guido
 

webmaster1119

Aktives Mitglied
9. Dezember 2020
13
3
Hallo, ich habe mir einen WF gebastelt, mit dem ich das Voraussichtliche Datum setze. Und zwar von heute an gerechnet unter Berücksichtigung der Lieferzeit für nicht lagernde Artikel. Das errechnete Datum wird auf einen Freitag in der jeweiligen Woche gesetzt (da ich da meistens die Lieferungen von den Produzenten erhalte). Der Code sieht so aus:
Code:
{% assign Lieferzeit = 0 -%}
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% assign Bestand-Menge = Artikelbeschreibungen.Artikel.Bestand | Minus: Artikelbeschreibungen.MengeOffen -%}
{% if Bestand-Menge < 0 -%}
{% capture itemquery -%}SELECT nLieferzeit FROM tliefartikel WHERE nStandard LIKE 1 AND tArtikel_kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% assign liefLieferzeit = itemquery | DirectQueryScalar -%}
{% if liefLieferzeit > Lieferzeit -%}{% assign Lieferzeit = liefLieferzeit -%}{% endif -%}
{% endif -%}
{% endfor -%}
{% assign Datum_ErstelldatumMitLieferzeit = Datum.Jetzt | AddDays: Lieferzeit -%}
{% assign Datum_basis = Datum_ErstelldatumMitLieferzeit | FormatDate: 'dddd', 'de-DE' -%}
{% case Datum_basis -%}
{% when 'Montag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 4 }}
{% when 'Dienstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 3 }}
{% when 'Mittwoch' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 2 }}
{% when 'Donnerstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 1 }}
{% when 'Freitag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 0 }}
{% when 'Samstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -1 }}
{% else -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -2 }}
{% endcase -%}

Hallo,

habe versucht mit deinem Code zu arbeiten. Leider kommt er bei mir auf 14 Tage statt auf 20. Kann mir nicht ganz erklären wieso dass so ist. Hat sich der Datenbankabfrage vielleicht etwas geändert?

Beste Grüße und ein schönes Wochenende
 

webmaster1119

Aktives Mitglied
9. Dezember 2020
13
3
Hi,

danke für die Rückmeldung. Da ist tatsächlich 14 Tage hinterlegt.
Ich war davon ausgegangen, dass dieser Wert übernommen wird (siehe Screenshot):
mstsc_o2HoqVw938.png

Gibt es ne Möglichkeit da dran zu kommen oder muss ich das einfach bei allen Artikel für den Lieferanten pflegen?
 

knackig

Sehr aktives Mitglied
17. November 2011
950
155
Nordhessen
Hi, das dürfte den gewünschten Effekt bringen, teste es mal :) Hier wird nun die Lieferzeit abgefragt und dazu noch die Bearbeitungszeit addiert.

Code:
{% assign Lieferzeit = 0 -%}
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% assign Bestand-Menge = Artikelbeschreibungen.Artikel.Bestand | Minus: Artikelbeschreibungen.MengeOffen -%}
{% if Bestand-Menge < 0 -%}
{% capture itemquery -%}SELECT nLiefertageWennAusverkauft FROM tArtikel WHERE kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% assign nLiefertageWennAusverkauft = itemquery | DirectQueryScalar -%}
{% capture itemquery2 -%}SELECT nBearbeitungszeit FROM tArtikel WHERE kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% assign nBearbeitungszeit = itemquery2 | DirectQueryScalar -%}
{% assign gesamtLieferzeit = nLiefertageWennAusverkauft | Plus: nBearbeitungszeit  -%}
{% if gesamtLieferzeit > Lieferzeit -%}{% assign Lieferzeit = gesamtLieferzeit -%}{% endif -%}
{% endif -%}
{% endfor -%}
{% assign Datum_ErstelldatumMitLieferzeit = Datum.Jetzt | AddDays: Lieferzeit -%}
{% assign Datum_basis = Datum_ErstelldatumMitLieferzeit | FormatDate: 'dddd', 'de-DE' -%}
{% case Datum_basis -%}
{% when 'Montag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 4 }}
{% when 'Dienstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 3 }}
{% when 'Mittwoch' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 2 }}
{% when 'Donnerstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 1 }}
{% when 'Freitag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 0 }}
{% when 'Samstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -1 }}
{% else -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -2 }}
{% endcase -%}
 

webmaster1119

Aktives Mitglied
9. Dezember 2020
13
3
Oh wow, was ein Timing.
Habe mich heute morgen mal drangesetzt und mir das auch bisschen zurecht geschrieben und bin vor ner halben Stunde fast auf den identischen Code gekommen.

Mit der einzigen Ausnahme, dass ich die if-Bedingung nur rund um das "nLiefertageWennAusverkauft" setze, da die Bearbeitungszeit für alle Produkte gilt, egal ob auf ausverkauft oder nicht. Die Query läuft auf jeden Fall so.

Meine Ende habe ich auch noch bisschen angepasst, da ich teilweise Lieferzeiten von mehrere Wochen habe, prüfe ich nur nur ob der Liefertermin auf ein Samstag oder Sonntag fällt und addiere entsprechend einen Tag:

Code:
{% comment %}Prüfen ob Lieferdatum auf Wochenende fällt{% endcomment %}
{% assign LieferdatumFuerWochenendePruefung = Datum_ErstelldatumMitLieferzeit | FormatDate: 'dddd', 'de-DE' -%}
{% case LieferdatumFuerWochenendePruefung -%}
{% when 'Samstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 2 }}
{% when 'Sonntag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 1 }}
{% else -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 0 }}
{% endcase -%}

Vielen Dank für deine Mühe!
 

knackig

Sehr aktives Mitglied
17. November 2011
950
155
Nordhessen
Ich habe auch noch weiter getüftelt... In dem neuen Skript wurde nur berücksichtigt, wenn der Artikel die Lieferzeit im Artikel selbst, nicht aber im Lieferantenartikel. Jetzt wird gecheckt, ob die Lieferzeit manuell gesetzt wird und dann wird das entsprechende Feld genommen.

Code:
{% assign Lieferzeit = 0 -%}
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% assign Bestand-Menge = Artikelbeschreibungen.Artikel.Bestand | Minus: Artikelbeschreibungen.MengeOffen -%}
{% if Bestand-Menge < 0 -%}
{% capture queryLiefZeitAutomatisch -%}SELECT nAutomatischeLiefertageberechnung FROM tArtikel WHERE kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% assign nAutomatischeLiefertageberechnung = queryLiefZeitAutomatisch | DirectQueryScalar -%}
{% if nAutomatischeLiefertageberechnung == 1 -%}
{% capture itemquery -%}SELECT nLieferzeit FROM tliefartikel WHERE nStandard LIKE 1 AND tArtikel_kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% else -%}
{% capture itemquery -%}SELECT nLiefertageWennAusverkauft FROM tArtikel WHERE kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% endif -%}
{% assign nLiefertageWennAusverkauft = itemquery | DirectQueryScalar -%}
{% capture itemquery2 -%}SELECT nBearbeitungszeit FROM tArtikel WHERE kArtikel LIKE {{ Artikelbeschreibungen.InterneArtikelnummer }}{% endcapture -%}
{% assign nBearbeitungszeit = itemquery2 | DirectQueryScalar -%}
{% assign gesamtLieferzeit = nLiefertageWennAusverkauft | Plus: nBearbeitungszeit  -%}
{% if gesamtLieferzeit > Lieferzeit -%}{% assign Lieferzeit = gesamtLieferzeit -%}{% endif -%}
{% endif -%}
{% endfor -%}
{% assign Datum_ErstelldatumMitLieferzeit = Datum.Jetzt | AddDays: Lieferzeit -%}
{% assign Datum_basis = Datum_ErstelldatumMitLieferzeit | FormatDate: 'dddd', 'de-DE' -%}
{% case Datum_basis -%}
{% when 'Montag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 4 }}
{% when 'Dienstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 3 }}
{% when 'Mittwoch' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 2 }}
{% when 'Donnerstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 1 }}
{% when 'Freitag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: 0 }}
{% when 'Samstag' -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -1 }}
{% else -%}
{{ Datum_ErstelldatumMitLieferzeit | AddDays: -2 }}
{% endcase -%}
 

coolumbo

Sehr aktives Mitglied
29. November 2011
136
39
Hallo,
das Wochenendproblem habe ich mittels DB Trigger gelöst... Wenn Samstag dann plus 2, wenn Sonntag dann plus 1..
Die Feiertage bereiten mir noch gerade etwas Kopfschmerzen aber das wird auch noch gelöst.

Einfach den Text anzupassen ist zwar fix, aber nicht wirklich schön - oder? ;)

Wenn ich das Thema fertig habe, poste ich gerne die Info.

Ich wollte nur sichergehen das ich nicht etwas übersehen habe, da ich das genau genommen nicht ganz glauben konnte (und kann) das ein Lieferdatum am Wochenende einfach als Standard ausgeliefert wird.

Vg,
Marcus
Hi,
hast Du dazu shon Neuigkeiten oder kannst Du den trigger mal posten? Ich würde ggf., wenn Samstags kein Versandtag ist, für Freitags noch eine Uhrzeit je nach Versandart berücksichtigen.
 

coolumbo

Sehr aktives Mitglied
29. November 2011
136
39
Hi,
@uwmarcus
Ist zwar schon etwas her, aber ich finde die Lösung sehr gut und würde gerne auf Dein Angebot: "Wenn ich das Thema fertig habe, poste ich gerne die Info." zurückkommen ;)

Hast Du dazu schon Neuigkeiten oder kannst Du den Trigger mal posten? Ich würde ggf., wenn Samstags kein Versandtag ist, für Freitags noch eine Uhrzeit je nach Versandart berücksichtigen.

Ehrlich gesagt verstehe ich auch nicht, dass JTL Shop das bis heute noch nicht kann. Das sollte ein smartes Shopsystem schon können. Ich würde mir sogar vorstellen, das Feiertage (je nach Bundesland) auch berücksichtigt werden.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Rechnungsdatum ist gleich Lieferdatum wird nicht erkannt User helfen Usern - Fragen zu JTL-Wawi 1
Neu Angebotsmail Lieferdatum nicht drucken wenn nicht vorhanden Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Ausgabe Lieferdatum auf Lieferantenbestellung JTL-Wawi 1.8 0
Neu Lieferdatum auf Auftragspositionsebene Arbeitsabläufe in JTL-Wawi 0
Neu Wunschzettel Funktion auch bei Vaterartikeln möglich? Templates für JTL-Shop 0
Neu JTL Connector zu SW6 auch als Testumgebung möglich ? Onlineshop-Anbindung 3
Neu Suchen Mitarbeiter für 40h Festanstellung gern auch 100% Homeoffice für Produkt und Kategorie Pflege mit der Wawi Dienstleistung, Jobs und Ähnliches 0
Frage zu Verkauf Kaufland Tschechien und Slowakei - Anbindung notwendig oder auch durch Kaufland realisierbar ? kaufland.de - Anbindung (SCX) 0
Neu Bilder unter "Mehr dieser Waregruppe" und "Kunden, die diesen Artikel gekauft haben, kauften auch" fehlen eBay-Designvorlagen - Fehler und Bugs 0
Neu Versandarten Spedition Stückgut (gestaffelt nach Gewicht und PLZ) - Geht das auch anders? User helfen Usern - Fragen zu JTL-Wawi 0
Verwiesen an Support TSE Modul wird nicht mehr erkannt, kann auch nicht wieder aktiviert werden, diverse Fehlermeldungen JTL-POS - Fehler und Bugs 1
Neu Teillieferung von Artikeln aus Versandbox, auch wenn andere bereits in der Versandbox sind Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0

Ähnliche Themen