Neu Liefer- bzw. Leistungsdatum bei Teillieferungen

JeanLuc

Aktives Mitglied
25. März 2010
42
2
Auf Rechnungen enthält die Variable Report.ServiceDate offenbar das Versanddatum des ersten Lieferscheins. Das ist aber falsch, wenn es sich nur um eine Teillieferung handelt. Es muss im Zweifel das Versanddatum des aktuellsten Lieferscheins sein.

Beispiel:

Bestellung kommt Ende Dezember rein. Ein Teil kann sofort versendet werden. Der Rest dann erst 2 Wochen später im Januar. Mit der letzten Teillieferung wird die Rechnung zum Auftrag erstellt. Jetzt steht da bei Lieferdatum das Datum vom ersten Versand Ende Dezember und nicht das vom letzten Versand Mitte Januar. Das ist falsch, weil die Leistung bei Warenlieferungen erst erbracht ist, wenn alles komplett wie bestellt geliefert wurde (also im Beispiel im Januar des Folgejahres).

Wawi Version 1.9.7
Ist das Problem bekannt und wird bzw. wurde das in der aktuellsten Version behoben? Bzw. können andere Nutzer den Fehler nachvollziehen?
 

aws

Mitglied
17. Februar 2024
55
10
Bei uns passt es auch nicht, Version 1.10.12.0

Lieferscheindatum verwendet auch nur das "Vorauss. Lieferdatum". Auch bei Teillieferung mit Versanddatum unten rechts bei Lieferung auf heute gesetzt wird nicht verwendet. Ich finde aber fürs Formular keine Variable mit dem richtigen Versanddatum. Hat die jemand?

Danke.
 

aws

Mitglied
17. Februar 2024
55
10
Version 1.10.13.0:
Auch hier wenn man Lieferdatum im Versand ändert, wird nur das heutige Service Datum verwenden? Jemand eine Idee wie die richtige Variable heißt? Danke!
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
674
Flensburg
Hallo @aws,

Jemand eine Idee wie die richtige Variable heißt? Danke!

Kurzum: Wenn "ServiceDate" nicht das korrekte Datum ausgibt (also nur das des ersten Lieferscheins zu dieser Rechnung), dann gibt es die "richtige" Variable nicht.

Da mal wieder Zeit für ne gute Tat ist:

Code:
Date(JTL_DirectQuery("
SELECT 
    MAX(LSE.dVersendet)
FROM
    tLieferscheinEckdaten AS LSE
    JOIN tLieferschein AS LS ON LSE.kLieferschein = LS.kLieferschein
    JOIN tLieferscheinPos AS LSP ON LS.kLieferschein = LSP.kLieferschein
    JOIN Rechnung.tRechnungLieferscheinPosition AS RGLSP ON LSP.kLieferscheinPos = RGLSP.kLieferscheinPosition
    JOIN Rechnung.tRechnungPosition AS RGP ON RGLSP.kRechnungPosition = RGP.kRechnungPosition
    JOIN Rechnung.tRechnung AS RG ON RGP.kRechnung = RG.kRechnung
WHERE
    RG.kRechnung = "+str$(Report.InternalId)+"
")),
JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO))

Ausgegeben wird das späteste Versanddatum (in der Datumsformatierung gemäß Auftragssprache) eines Lieferscheins mit Lieferscheinpositionen, die mit denen der Rechnung übereinstimmen. Damit sollten nicht nur Teillieferungen, sondern auch Teilrechnungen abgedeckt sein. Sofern ich nicht einen Denkfehler gemacht habe. Falls jemand über einen solchen stolpert, gerne korrigieren.
 

aws

Mitglied
17. Februar 2024
55
10
@frankell , Danke für deine Tat. Ich bin da so nicht ganz tief in dem Thema. Bevor ich wieder lange google... das kommt in die SQL direkt?

mfg
 

aws

Mitglied
17. Februar 2024
55
10
Hallo zusammen,

bei Rechnung funktioniert das o.g. von @frankell gut :thumbsup:. Ich bin jetzt nur wieder an Lieferscheinen dran die erst später erstellt werden können da die Seriennummern erst später bekannt werden wenn ausgepackt wurde. Wie bekommt man gelöst dass auch das angegebene Lieferdatum verwendet wird und nicht das Erstelldatum vom Lieferschein?

Mit Dropshipping wie bei "https://forum.jtl-software.de/threa...d-und-nicht-lieferschein-erstelldatum.204115/" erwähnt funktioniert aus unserem Lagerbestand nicht.

Danke.

mfg
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
674
Flensburg
Wie bekommt man gelöst dass auch das angegebene Lieferdatum verwendet wird und nicht das Erstelldatum vom Lieferschein?

Mein Code bezieht sich auf das Versanddatum, nicht auf das Erstelldatum des Lieferscheins.

Oder geht es jetzt darum, diese Info auch in einen Lieferschein einzubinden? Denn das wäre relativ simpel, weil der ursprüngliche Code einfach nur stark gekürzt und minimal geändert werden müsste:

Code:
LocDate$(Date(JTL_DirectQuery("
SELECT
    MAX(dVersendet)
FROM
    tLieferscheinEckdaten
WHERE
    kLieferschein = "+str$(Report.InternalId)+"
")), JTL_GetCulture(Report.Company.CountryISO, Report.LanguageISO, Report.CurrencyISO))
 
  • Gefällt mir
Reaktionen: firegrisus und aws

aws

Mitglied
17. Februar 2024
55
10
@frankell TOP, vielen Dank!

Genau das was wir gesucht haben. Ich hab es vorhin selbst versucht zu kürzen aber bin gescheitert. Man lernt dazu ;)
Ich verlinke deine Antwort auch im anderen Beitrag.
 
  • Gefällt mir
Reaktionen: firegrisus