Neu Lieferdatum/Lieferzeit in Angebot/AB/Lieferschein/Rechnung für einzelne Positionen darstellen

10. Dezember 2022
8
2
Hallo,

ich habe leider nichts passendes zu dem Thema gefunden, bzw. nichts was mir weiterhilft.

Ich würde gerne in den Angeboten/ABs/Lieferscheinen/Rechnungen für jede einzelnen Position das Lieferdatum darstellen können.

Leider sind meine SQL Datenbank Kenntnisse nicht vorhanden, weshalb ich auf eure Hilfe hoffe und eine Variable für den aktuellen Bestand des/der Artikel kann ich leider nicht finden, damit ich das irgendwie anders lösen könnte.

Mein Lösungsansatz für die Darstellung des Lieferdatums wäre wie folgt:

Lieferdatum/Verfügbarkeitsdatum = Falls Artikel in der angebotenen Menge auf Lager ist soll das Datum gleich dem Datum für Angebotserstellung sein; falls Artikel nicht auf Lager, dann Angebotsdatum/Erstelldatum + Lieferzeit von Lieferanten (welche im Artikel hinterlegt ist, oder noch besser wäre es, dass die Lieferzeit von der Anfrage an den Lieferanten auf das Angebot für den Kunden übernommen wird)

Falls das ganze nicht funktioniert wäre ich auch gerne bereit das Lieferdatum manuell einzutragen, aber da sehe ich auch keine Möglichkeit.

Vielen Dank für eure Hilfe.
 

frankell

Sehr aktives Mitglied
9. September 2019
334
180
Flensburg
Hallo Martin Dankesreiter,

ich gehe jetzt mal davon aus, dass Du vom Formulareditor (List&Label) sprichst. Je nachdem auf welcher Vorlage (alt mit deutschen Feldbegriffen oder neu mit englischen Feldbegriffen) unterwegs bist, könntest Du eine neue Spalte einbinden mit folgender Formel im Datenbereich:

Alte Vorlage:
Code:
If(Auftragspositionen.Artikel.BestandVerfügbar>=Auftragspositionen.Menge,Vorgang.Erstelldatum,
If(Auftragspositionen.Artikel.LieferzeitWennAusverkauft>0,AddDays(Vorgang.Erstelldatum, Auftragspositionen.Artikel.LieferzeitWennAusverkauft),AddDays(Vorgang.Erstelldatum, JTL_DirectQuery(
"SELECT TOP 1 nLieferzeit
FROM tliefartikel
WHERE tArtikel_kArtikel = "+Fstr$(Auftragspositionen.Artikel.InterneArtikelnummer,"?")+"
ORDER BY nLieferzeit ASC"
))))

Neue Vorlage:
Code:
If(InvoicePosition.Product.AvailableStock>=InvoicePosition.Quantity,Report.CreationDate,
If(InvoicePosition.Product.DeliveryTimeIfSoldOut>0,AddDays(Report.CreationDate, InvoicePosition.Product.DeliveryTimeIfSoldOut),AddDays(Report.CreationDate, JTL_DirectQuery(
"SELECT TOP 1 nLieferzeit
FROM tliefartikel
WHERE tArtikel_kArtikel = "+Fstr$(InvoicePosition.Product.InternalId,"?")+"
ORDER BY nLieferzeit ASC"
))))

Nach der Prüfung, ob der Artikel in der gewünschten Mengen verfügbar ist, wird zunächst geprüft, ob beim Artikel eine Angabe zu "Lieferzeit, wenn ausverkauft" existiert. Wenn nicht, wird die kürzeste Lieferzeit beim Lieferantenartikel genommen (kann ja theoretisch mehrere Lieferanten geben).

Ich habe das hier jetzt nur für die Rechnungsvorlagen angegeben und geprüft. Aber die anderen Vorlagen funktionieren ja prinzipiell identisch. Du musst nur die Feldentsprechungen finden. Da man nach denen auch suchen kann, sollte das relativ schnell gehen. In der Regel ist nur der Anfang der Bezeichnung anders, das Ende aber identisch.

Was die Idealvorstellung "dass die Lieferzeit von der Anfrage an den Lieferanten auf das Angebot für den Kunden" angeht, müsste ich mich erst einarbeiten, da ich bei uns so etwas wie "Anfrage an den Lieferanten auf das Angebot für den Kunden" noch nicht hatte. Wir arbeiten generell nicht mit Angeboten. :) Aber wenn das in der Wawi abgebildet ist, wird es auch eine entsprechende Tabelle in der Datenbank dazu geben.
 
Zuletzt bearbeitet:
10. Dezember 2022
8
2
Vielen Dank für die schnelle Antwort und den Lösungsansatz.

Leider kommt da eine Fehlermeldung im Formulareditior im Rechnungsformular: "Syntaxfehler: 'InvoicePosition.Product.AvailableStock' kann nicht interpretiert werden."

Ich vermute mal, weil ich die Feldvariable "InvoicePosition.Product.AvailableStock" nicht finden kann, wie kommst du auf diese Variable, ich finde diese nicht?

Die Deutsche Version funktioniert auch nicht.
 

frankell

Sehr aktives Mitglied
9. September 2019
334
180
Flensburg
Vielen Dank für die schnelle Antwort und den Lösungsansatz.

Leider kommt da eine Fehlermeldung im Formulareditior im Rechnungsformular: "Syntaxfehler: 'InvoicePosition.Product.AvailableStock' kann nicht interpretiert werden."

Ich vermute mal, weil ich die Feldvariable "InvoicePosition.Product.AvailableStock" nicht finden kann, wie kommst du auf diese Variable, ich finde diese nicht?

Die Deutsche Version funktioniert auch nicht.
Bei mir funktioniert es problemlos.

Den Weg zum Feld siehst Du im Screenshot:

IMG_7242.jpeg

Bist Du vielleicht in einer anderen Wawi-Version unterwegs?

Und im Code habe ich noch etwas entfernt, was ich nur zum Test benötigt hatte (Simulation einer größeren Stückzahl im Auftrag). Das kann aber den Fehler bei Dir nicht verursacht haben.
 
Zuletzt bearbeitet:

Ähnliche Themen