Neu Diskussionsthread Stückliste mitsamt Komponenten in den neuen Vorlagen ausgeben

Philipp Laumen

Gesperrter Benutzer
16. Juli 2018
260
84
Hallo,

aufgrund der großen Nachfrage habe ich mich mal hingesetzt und das alte Verhalten wieder in die Vorlage gebastelt.
Das ganze wird mit SQL Abfragen gelöst und unterliegt deshalb Einschränkungen.

Versionen unter 1.5.33.0 könnten einen Importfehler erhalten! Dieser ist in der 1.5.33.0 behoben!!!

Fragen und Anregungen können hier geposted werden. Tutoriallink:
https://forum.jtl-software.de/threa...nenten-in-den-neuen-vorlagen-ausgeben.141239/
 

Thomas

Sehr aktives Mitglied
15. Juli 2010
213
38
Hallo Philipp,

in der 15.33.0

Der angegebene Schlüßel war nicht im Wörterbuch angegeben.

Ex- und importiere ich ein Formular , tritt der Fehler nicht auf.
Liegt es an Deinem Formular?
Praktisch das gleiche Problem wie gestern per TV mit der 1.5.32.1

Grüsse
Thomas
 

Philipp Laumen

Gesperrter Benutzer
16. Juli 2018
260
84
Hallo,
ich habe gerade eine neue Version angehangen, bitte einmal prüfen ob du die jetzt importieren kannst.
Habe auch noch einen nervigen Fehler behoben, wenn nicht Stücklistenartikel auf dem Lieferschein sind (Hatte mal eben alle Artikel der Wawi ausgegeben)
 

Philipp Laumen

Gesperrter Benutzer
16. Juli 2018
260
84
So ich habe jetzt mit @Thomas die Vorlage auf einen Stand gebracht, den man durchaus benutzen kann.
Es sind aktuell Lagerplatzkommentare enthalten, die können bei Bedarf entfernt werden.
 

MichaelH

Sehr aktives Mitglied
17. November 2008
13.810
1.540
Hallo Philipp !

Leider hat JTL versäumt die Stücklisten zu klassifizieren mit der Neuprogrammierung des Artikelstamms und diverser Ansichten.
Es gab eine Diskussion darüber, diese wurde aber ignoriert.

Es gibt mind. 2 Arten von Stücklisten:

1) Bündelartikel
In diesem Artikel sind mehrere Artikel enthalten, wie z.B. Becher, Rührlöffel, Untersetzer.
Hier macht es ggf. Sinn diese Artikel aufzulisten.

2) Stücklisten mit Lagerartikel in kleiner Einheit.
Beispiel loser Tee - dieser wird am Lager mit 1g geführt, daraus werden Packungen mit 100g und 250g befüllt und über Stückliste gebucht.
Hier wäre es falsch die Stückliste aufzulisten die dann heißen würde "250 x 1g - Loser Tee, Lagerartikel" und darüber der Artikel "1 Stück Loser Tee, 250g"

Da keine Unterscheidung getroffen werden kann über den Artikelstamm zieht sich dieses Problem genaugenommen durch die ganze WAWI in der die Auflistung lt. 2) nur hinderlich statt sinnvoll ist.

Wäre diese Klassifizierung im Artikelstamm vorhanden kann man selbst steuern ob ja oder nein.

SG, Michael
 
  • Gefällt mir
Reaktionen: trennscheibenwelt

Philipp Laumen

Gesperrter Benutzer
16. Juli 2018
260
84
Hallo Michael,

das könnte ich höchstens über ein eigenes Feld an der Stückliste steuern. Dafür müsste das aber an jeder Stückliste gepflegt sein.
Kann ich als Anleitung mit ins Tutorial packen wenn du magst.
 

MichaelH

Sehr aktives Mitglied
17. November 2008
13.810
1.540
Verstehe ich nicht wirklich ...

Die Stückliste muss ja so oder so immer angelegt werden, die legt sich auch nicht von selbst an.
Dabei legt man fest um welchen Typ es sich handelt.
Keine Angabe ist auch eine Angabe, wenn es nicht Ja ist dann ist es nein, wenn es nicht 1 ist dann ist es 0, wenn es nicht Nichts ist dann ist es NULL.

Und Sinn macht es vor Allem dann, wenn JTL das auch überall berücksichtigen würde wo eine Detaillierung wie 2) keinen Sinn macht, z.B. in deiner neuen Vorlage. ;)

Es ist also eher eine Grundsatzentscheidung von JTL deren Ablehnung man mal überdenken sollte ...
 

MichaelH

Sehr aktives Mitglied
17. November 2008
13.810
1.540
Jein - du sprichst von Vorlagen - also Mehrzahl.
Das bedeutet du änderst das Verhalten von allen Vorlagen die Artikel mit Stücklisten ausgeben und glaube mir, damit erfreust du mind. 50% der Kunden die Stücklisten verwenden nicht.
Nur ein Bruchteil der Kunden bewegen sich im Forum und davon wiederum nur ein Bruchteil werden deine Änderungen hier lesen.
;)

Doch es ist für JTL-Kunden sicherlich einfacher deine Änderungen rauszulöschen als diese einzubauen.

Optionalität wäre für eine moderne Software allerdings SEHR wünschenswert.
Die Begründung für "warum" findest du oben erklärt.
 

A-Z Autoteile

Aktives Mitglied
30. September 2020
58
12
So ich habe jetzt mit @Thomas die Vorlage auf einen Stand gebracht, den man durchaus benutzen kann.
Es sind aktuell Lagerplatzkommentare enthalten, die können bei Bedarf entfernt werden.

Hallo @philipp,

deine Umsetzung sieht gut aus. Für unseren speziellen Fall habe ich aber eine Frage.

Wir exportieren jeden neu erstellten Auftrag mit einer speziell angepassten XML und übergeben diese dann an eine andere Wawi (Stationäres Geschäft). Diese sieht folgendermaßen aus und funktioniert auch tadellos:

XML:
<?xml version="1.0"?>
<order>
    <head>
        <ordernr>{{ Report.SalesOrderNumber }}</ordernr>
        <orderdate>{{ Report.CreationDate }}</orderdate>
        <orderamount>{{ Report.TotalGrossPrice }}</orderamount>
        <paymentmethod>{{ Report.PaymentMethodName }}</paymentmethod>
        <channel>Shop2</channel>
        <trans_id>{{ Report.SalesOrderNumber }}</trans_id>
        <shipping>{{ Report.ShippingMethod.Price }}</shipping>
        <billingadress>
            <email><![CDATA[{{ Report.SalesOrderBillToAddress.EmailAddress }}]]></email>
            <companyname><![CDATA[{{ Report.SalesOrderBillToAddress.Company }}]]></companyname>
            <firstname><![CDATA[{{ Report.SalesOrderBillToAddress.FirstName }}]]></firstname>
            <surname><![CDATA[{{ Report.SalesOrderBillToAddress.LastName }}]]></surname>
            <street><![CDATA[{{ Report.SalesOrderBillToAddress.Address }}]]></street>
            <zip><![CDATA[{{ Report.SalesOrderBillToAddress.PostalCode }}]]></zip>
            <city><![CDATA[{{ Report.SalesOrderBillToAddress.City }}]]></city>
            <country><![CDATA[{{ Report.SalesOrderBillToAddress.Country }}]]></country>
            <phone><![CDATA[{{ Report.SalesOrderBillToAddress.Phone }}]]></phone>
        </billingadress>
        <shippingadress>
            <companyname><![CDATA[{{ Report.SalesOrderShipToAddress.Company }}]]></companyname>
            <firstname><![CDATA[{{ Report.SalesOrderShipToAddress.FirstName }}]]></firstname>
            <surname><![CDATA[{{ Report.SalesOrderShipToAddress.LastName }} {{ Report.SalesOrderShipToAddress.AddressSupplement }}]]></surname>
            <street><![CDATA[{{ Report.SalesOrderShipToAddress.Address }}]]></street>
            <zip><![CDATA[{{ Report.SalesOrderShipToAddress.PostalCode }}]]></zip>
            <city><![CDATA[{{ Report.SalesOrderShipToAddress.City }}]]></city>
            <country><![CDATA[{{ Report.SalesOrderShipToAddress.Country }}]]></country>
            <phone><![CDATA[{{ Report.SalesOrderShipToAddress.Phone }}]]></phone>
            <email><![CDATA[{{ Report.SalesOrderShipToAddress.EmailAddress }}]]></email>
        </shippingadress>
        <kunden_id>{{ Report.Customer.CustomerNumber }}</kunden_id>
    </head>
    {% for SalesOrderPosition in Report.SalesOrderPosition -%}
    <item>
        <sku>{{ SalesOrderPosition.SKU }}</sku>
        <manufacturer/>
        <description><![CDATA[{{ SalesOrderPosition.Name }}]]></description>
        <price>{{ SalesOrderPosition.NetPricePerUnit }}</price>
        <amount>{{ SalesOrderPosition.Quantity }}</amount>
    </item>
    {% endfor -%}
</order>

Leider übergibt er bei Stücklistenartikel tatsächlich nur den einen Stücklistenartikel und nicht die Einzelpositionen. Für unsere externe Wawi wäre es wichtig, dass der eigentliche Stücklistenartikel gar nicht mehr als item erscheint, sondern nur die in ihm enthaltenen Artikel mit den zugehörigen Daten.

Kannst du helfen? Ich bin mit meinem Latein am Ende.

LG, Markus
 

Philipp Laumen

Gesperrter Benutzer
16. Juli 2018
260
84
Hallo @A-Z Autoteile ,

wenn in der anderen Wawi die Stückliste ebenfalls gepflegt ist, dann sollte diese automatisch erkannt und mit den Komponenten angezeigt werden.
Der Auftragsimport kann keine Stücklistenkomponenten exportieren.
 

Karobube

Sehr aktives Mitglied
23. September 2020
153
81
Remote via AnyDesk
Firma
contact@karobube.com
Servus, falls es jemand braucht, geht auch mit Seriennummer, wenn Komponentenmenge standardmäßig 1, sprich nur eine Seriennummer pro Komponentenposition

SELECT tLagerArtikel.cSeriennr FROM dbo.tLagerArtikel
RIGHT JOIN dbo.tLieferscheinPos ON tLieferscheinPos.kLieferscheinPos = tLagerArtikel.kLieferscheinPos
JOIN dbo.tBestellpos ON tBestellpos.kBestellpos = tLieferscheinPos.kBestellPos
WHERE kBestellStueckliste =
CASE
WHEN (SELECT kBestellStueckliste FROM dbo.tLieferscheinpos
JOIN dbo.tBestellpos ON tBestellpos.kBestellpos = tLieferscheinPos.kBestellPos
WHERE kLieferscheinPos = "+str$(DeliveryNotePosition.InternalId,0,0) + ") = 0 THEN 9999999999999999
ELSE
(SELECT kBestellStueckliste FROM dbo.tLieferscheinpos
JOIN dbo.tBestellpos ON tBestellpos.kBestellpos = tLieferscheinPos.kBestellPos
WHERE kLieferscheinPos = "+str$(DeliveryNotePosition.InternalId,0,0) + " )
END
AND tBestellpos.kBestellpos != (SELECT kBestellStueckliste FROM dbo.tLieferscheinpos
JOIN dbo.tBestellpos ON tBestellpos.kBestellpos = tLieferscheinPos.kBestellPos
WHERE kLieferscheinPos = "+str$(DeliveryNotePosition.InternalId,0,0) + ")
ORDER BY tBestellpos.kBestellPos ASC"
 
Zuletzt bearbeitet: