[BUG]🪲 Stücklisten Komponenten im Lieferschen (List & Label) ausgeben | Komponenten-Menge falsch + [Workaround]

  • Hinweis: Am 25.02.2025 zwischen 21:30 u. 22:30 Uhr - Einschränkungen beim Login und Erreichen folgender Dienste: FFN, Kundencenter, Admin, JTL-Shop, JTL-Wawi, Lizenzserver, ISI Gateway, Vouchers, Kassensysteme, Plan&Produce, Versand. Grund dafür ist ein Major Upgrade des OAuth-Dienstes. Vielen Dank für euer Verständnis!

Powalowski

Sehr aktives Mitglied
20. Januar 2019
177
195
Eigentlich habe ich keine Lust mehr etwas zu unserem tollen neuen Abo-Programm zu schreiben aber hier mal für alle:

Nachdem die defekten Stücklisten unseren Bestellprozess zwei Wochen aufgehalten haben und JTL meint den Fix erst für 1.10 zu veröffentlichen -DAS WIR AUF KEINEN FALL SOFORT INSTALLIEREN WERDEN- musste ich die Lieferscheine auf Ausgabe 2.0 migrieren und mich mit den top englischen Supervariablen 🇬🇧 herumschlagen.

Thema: Wenn man einen Teil einer Stückliste auf einem Lieferschein ausgibt, dann sollte auch nur dieser Teil angezeigt werden und nicht eine generelle Menge der Komponenten im Stücklistenartikel.

Beispiel
Stücklistenartikel:
Teurescloudabo (Stücklistenartikel)
2x Komponente 1
1x Komponente 2

LS1:
0,00x Teurescloudabo (BUG 🪲)
2x Komponente 1
(nicht Komponente 2)

LS2:
1.00x Teurescloudabo (BUG 🪲)
(nicht Komponente 1)
1x Komponente 2

Man erwartet wie im Beispiel oben in der Tabelle DeliveryNotePositionBillOfMaterials die tatsächlich im Lieferschein vorhandenen Komponentenmengen. Der Mengenwert stimmt jedoch nicht, da in beiden Lieferscheinen dann folgendes kommt:
LS1 + LS2:
Teurescloudabo (Stücklistenartikel)
2x Komponente 1
1x Komponente 2

Screenshot 2024-08-01 225742.png

Im Stücklistenartikel der Untertabelle DeliveryNotePositionBillOfMaterials steht im Feld Quantity entweder die SalesOrder Menge oder die Menge der Komponente in der Stückliste, jedenfalls nicht die erwartete DeliveryNotePosition Menge.

Man muss sich die auf dem Lieferscherschein tatsächlich geplante Menge über die Datenbank fischen:

SQL:
JTL_DirectQuery ("SELECT fAnzahl
FROM dbo.tLieferscheinPos
WHERE kLieferschein = "+ToString$(Report.InternalId)
+"AND kLieferscheinPos = "+ToString$(DeliveryNotePositionBillOfMaterials.InternalId)

Wenn man sich auf Stücklisten mit teilbaren Mengen vorbereitet hilft dieser fantastische Schnippsel wo man den Query gleich mehrfach abfeuert abfeuert abfeuert:
SQL:
Cond(Frac(ToNumber(JTL_DirectQuery ("SELECT fAnzahl
FROM dbo.tLieferscheinPos
WHERE kLieferschein = "+ToString$(Report.InternalId)
+"AND kLieferscheinPos = "+ToString$(DeliveryNotePositionBillOfMaterials.InternalId))))>0
,str$(ToNumber(JTL_DirectQuery ("SELECT fAnzahl
FROM dbo.tLieferscheinPos
WHERE kLieferschein = "+ToString$(Report.InternalId)
+"AND kLieferscheinPos = "+ToString$(DeliveryNotePositionBillOfMaterials.InternalId))),0,2),str$(ToNumber(JTL_DirectQuery ("SELECT fAnzahl
FROM dbo.tLieferscheinPos
WHERE kLieferschein = "+ToString$(Report.InternalId)
+"AND kLieferscheinPos = "+ToString$(DeliveryNotePositionBillOfMaterials.InternalId))),0,0))

Bonus: Als Datenfilter nimmt man dann den gleichen Query erneut erneut erneut um zu prüfen ob die Menge >0 ist, damit die nicht im Lieferschein enthaltenen Stücklistenkomponenten sich auch ausblenden
SQL:
ToNumber(JTL_DirectQuery ("SELECT fAnzahl
FROM dbo.tLieferscheinPos
WHERE kLieferschein = "+ToString$(Report.InternalId)
+"AND kLieferscheinPos = "+ToString$(DeliveryNotePositionBillOfMaterials.InternalId)))>0

Voila, der Frickelschein äh Lieferschein geht wieder.

Ist ein Bug, ging früher in Ausgabe 1.0 richtig, da man auf die Auftragsstücklistenartikel ebenso wie auf die Lieferscheinstücklistenartikel zugreifen konnte, wo dann jeweils die richtigen Mengen hinterlegt waren.
 
  • Gefällt mir
Reaktionen: 1PV und GBK

GBK

Sehr aktives Mitglied
21. Oktober 2019
176
38
Lüdinghausen
Dasselbe Problem stört mich auch schon eine ganze Weile und hat hier für eine Menge Chaos gesorgt.. und Lieferungen an Kunden, die nun zu viel Ware bekommen haben, weil ja bei einer zweiten Lieferung wieder gesamte Stückliste enthalten war. Leider suche ich auch schon eine Weile nach einer Lösung, komme aber nicht vorwärts damit. Hatte auch schon externe Dienstleister angesprochen, auch hier mit wenig bis keinem Erfolg. Und als ich dann gelesen habe, dass es in 1.9 einen Berichtscontainer dafür gibt, dachte ich, die Probleme sind endlich vorbei. Leider ist dem nicht so.

Auch mit deinem Code bin ich leider erfolglos. Wenn ich diesen in unserem eigenen Bereich nutze, dann wird mir weiterhin alles angezeigt. Wenn ich ihn im Container von JTL benutze, wird mir nichts angezeigt. Habe dafür eine Bestellung angelegt, wo ich zwei Teillieferungen gemacht habe, um das kontrollieren zu können. Keine Ahnung, was ich da falsch gemacht habe. Dafür kenne ich mich in dem Bereich und mit SQL einfach nicht genug aus.

Ich denke, ich werde einfach auf die 1.10 warten und, wie immer, das Beste hoffen.

Auf jeden Fall Danke für deinen Beitrag und deinen Lösungsansatz, der hoffentlich anderen mit dem selben Problem hilft!

Marco
 
  • Gefällt mir
Reaktionen: Powalowski