Powalowski
Sehr aktives Mitglied
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
LS1 + LS2:
Teurescloudabo (Stücklistenartikel)
2x Komponente 1
1x Komponente 2
Im Stücklistenartikel der Untertabelle
Man muss sich die auf dem Lieferscherschein tatsächlich geplante Menge über die Datenbank fischen:
Wenn man sich auf Stücklisten mit teilbaren Mengen vorbereitet hilft dieser fantastische Schnippsel wo man den Query gleich mehrfach abfeuert abfeuert abfeuert:
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
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.
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
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.