Neu Direct Query: Löschen von Freitextpositionen im Auftrag (bei Auftragserstellung)

kiids

Aktives Mitglied
15. Februar 2016
30
1
Hallo zusammen,
kann mir einer helfen und mir die Abfrage schicken, wie ich alle Freipositionen in einem Auftrag löschen kann?
Vorraussetzung ist die Abfrage der Kundengruppe "XY".

Da ich mich mit der DB Struktur von JTL nicht auskenne (und mit SQL nur bedingt), bräuchte ich hier HIlfe.

Vielleicht stand ja schonmal einer vor dem gleichen Problem.


Leider kann man über Workflows nur Positionen hinzufügen, aber keine entfernen.
Alternative für den Workflow wäre für mich die direkte Anpassung des Lieferschein- und Rechnungdokuments.


Verwendete Wawi Version: 1.7.10.0

Grüße
Lucas
 

John

Sehr aktives Mitglied
3. März 2012
2.685
525
Berlin
Wenn ich das richtig in Erinnerung habe, lassen sich per DirecQuery nur Lesezugriffe auf die Datenbank darstellen.

Was ist denn letztendlich Ziel des ganzen? Die Freipositionen sollen nicht mehr ausgedruckt werden?
Woher kommen die Freipositionen überhaupt, wenn sie dann nicht relevat sind?
 
  • Gefällt mir
Reaktionen: kiids

kiids

Aktives Mitglied
15. Februar 2016
30
1
Hi John, vielen Dank dafür, dass du mir helfen möchtest!

Die Freipositionen kommen von einem Konifgurationsartikel in Shopware 6 (Plugin), der zusätzlich noch Variation (Position 3 im Anhang), den Set Namen (Pos 4 im Anhang) etc. mit anfügt.
Ich musste diese Paramenter direkt in Shopware erstellen, da es aktuell noch keine Möglichkeit gibt diese Felder per Attribut zuzuweisen.

Seitens Shopware (Bestellbestätigung) konnte ich das problemlos anpassen, nur JTL macht es mir hier etwas schwer.

Die Freipositionen sollen erst garnicht auf dem Auftrag erscheinen.
1. Lösungsansatz: Workflow erstellen und Freipositionen hier schon aus dem Auftrag eliminieren
2. Lösungsansatz: Templateanpassung des Lieferschein- und Rechnungsdokuments

Das mit den Dokumenten ist wahrscheinlich auch etwas einfacher zu realisieren.

Hier dachte ich an folgendes:
Eine IF Abfrage um die Positions-Schleife setzen und hier nur Positionen durchlassen, die ungleich einer Freiposition sind.
Wenn er eine Freiposition finden, soll diese in den Dokumenten "Lieferschein" und "Rechnung" nicht mit angegeben werden.

Im Anhang siehst du mein Problem etwas besser (Konfigurationsartikel-Darstellung auf der Rechnung):
Alle Positionen ohne Artikelnummer = Freipositionen (die nicht existieren).

Die Ansicht ist unfassbar verwirrend (wenn ich mich in die Lage eines Kunden versetze, der so eine Rechnung zum ersten Mal sieht. Auch wenn er weiß, dass er ein 10er Mix-Paket bestellt hat.)

-----
Zusammengefasst:
Auf den Dokumenten - Lieferschein & Rechnung - sollen keine Freipositionen erscheinen.
Lösungsversuch 1: Workflow, der schon beim Anlegen des Auftrags eingreift, damit diese erst garnicht auf den Dokumenten erscheinen.
Lösungsversuch 2: Die Dokumente anpassen

Falls das etwas umständlich war, geb mir gerne Bescheid.

Grüße
Lucas
 

Anhänge

  • beispielrechnung-ausgabe-konfigurationsartikel.png
    beispielrechnung-ausgabe-konfigurationsartikel.png
    23,4 KB · Aufrufe: 9

John

Sehr aktives Mitglied
3. März 2012
2.685
525
Berlin
Ich würde das über eine Druckevorlage machen. Hat sogar den Vorteil, daß die Druckvorlage nur für den jeweiligen Shop benutzt werden kann.

Nachteil: geht eine email an den Kunden aus der Wawi raus, so muß das auch im eMailtext der Wawi angepasst werden. Bzw. würde ich dirt die Positionsliste ganz raus nehmen und nur als PDF die geänderte Druckvorlage anfügen.
 
  • Gefällt mir
Reaktionen: kiids

kiids

Aktives Mitglied
15. Februar 2016
30
1
Kannst du mir sagen, wie ich die Positionsliste so anpassen kann, dass alles "Freipositionen" entfernt werden /ignoriert werden? (für das angehängte Dokument dann).

Ich werde dass dann so versuchen. Habe aber keinen Ansatz für die IF Abfrage, da ich nicht weiß, wie man Freitextfelder in der Wawi abfragen kann.

Kannst du hier helfen und mir Anhand der original Vorlage sagen, welchen Bereich ich wie abändern muss?

Wenn ich das weiß, kann ich die jeweiligen Vorlagen (Mail, Drucker etc) überall anpassen.
- Bei dem Lieferschein gibt es ja sowieso nur das Druck-Dokument.
- Bei der Rechnung würde ich dann (wie du schon meintest) einfach nunr den Inhalt anpassen und die geänderte Vorlage in den Anhang packen.

Grüße
Lucas
 

JohnFrea

Sehr aktives Mitglied
21. September 2017
732
223
Du brauchst eine Darstellungsbedingung, die für die gesamte Datenzeile greift. Da kann deine "IF Abfrage" rein.
Nicht nur auf Artikelnummer leer prüfen, denn das ist bei der Versandposition auch gegeben...
 

kiids

Aktives Mitglied
15. Februar 2016
30
1
Wie kann ich das (Darstellungsbedingung) in JTL machen? Hast du mir hier einen Screenshot?
 

kiids

Aktives Mitglied
15. Februar 2016
30
1
habe es gefunden, das bringt mich aber leider nicht weiter, da ich nicht weiß, was ich hier eintragen muss, damit die Freipositionen entfernt werden.
In der "Bedienungsübersicht" kann ich zwar eine Abfrage machen, jedoch weiß ich nicht, wie ich zwei Werte miteinander verbinden kann.

ZB: er soll SKU != "" >und< NAME != "xyz" abfragen, wenn beides FALSE dann soll er die Position ignorieren, wenn WAHR, soll er die Position anzeigen.


Hast du hier eine Formel für mich parat?
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
569
187
Du kannst in der Vorlage die Positionstabelle auswählen und über die Einstellung "Datenfilter" eine Bedingung definieren. Hier im Beispiel habe ich gesagt, das in der Tabelle nur Einträge vom Typ "Item" (also Artikel) oder vom Typ "ShippingPosition" (Also Versandpositionen) angezeigt werden sollen. Damit werden Freipositionen ausgeblendet.
Ich konnte irgendwie nicht herausfinden welche bezeichnung Freipsitionen dort haben müsste, deshalb so umständlich. Sonst könnte man natürlich "not InvoicePosition.PositionType = 'FREIPOSITION'" dort machen. Das wäre sauberer weil es ja möglicherweise noch andere Positionstypen gibt die man braucht.
Du kannst natürlich auch andere Variablen benutzen. Wenn du Bedingungen verknüpfen willst kannst du mit "AND" arbeiten. Auch Konstrukte aus "(Bedingung1 AND Bedingung 2) OR (Bedingung2 AND Bedingung 3)" usw. sind möglich.

Datenfilter.PNG
 
  • Gefällt mir
Reaktionen: kiids

kiids

Aktives Mitglied
15. Februar 2016
30
1
Hallo jtldudel,
wow, das war genau das, was ich gesucht habe! Ich danke dir vielmals! Funktioniert genau so, wie ich es mir vorgestellt hatte.
Nun steht unserem Launch nichts mehr im Wege.

Herzlichen Dank!!


NACHTRAG:
Eine Sache noch, kennst du den PositionTyp für "Gutscheine"? Über "Voucher(s)" kann ich sie nicht filtern? Ansonsten würde ich diese über Preis < 0 abfragen - sofern ich hier keinen Denkfehler habe.
 
Zuletzt bearbeitet:

JohnFrea

Sehr aktives Mitglied
21. September 2017
732
223
einfach mal für eine Rechnung mit Freiposition als Vorschauobjekt für die Vorlage wählen und dann testweise in einer Spalte der Positionstabelle den "PositionType" ausgeben lassen. Müsste eigentlich anzeigen, was eine Freiposition definiert...
 
  • Gefällt mir
Reaktionen: kiids

kiids

Aktives Mitglied
15. Februar 2016
30
1
einfach mal für eine Rechnung mit Freiposition als Vorschauobjekt für die Vorlage wählen und dann testweise in einer Spalte der Positionstabelle den "PositionType" ausgeben lassen. Müsste eigentlich anzeigen, was eine Freiposition definiert...
Hallo JohnFrea,
kannst du hier einen Screenshot schicken? Für Leute (wie mich), die mit List&Label noch keine Berührungspunkte haben, ist dann manches doch nicht so einfach zu finden.

Edit:
Also was ein Vorschauobjekt ist etc, weiß ich und kann ich auch alles aufrufen. Ich weiß gerade nur nicht genau, wo ich den PositionsTypen auslesen kann / bzw wie.
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
569
187
einfach mal für eine Rechnung mit Freiposition als Vorschauobjekt für die Vorlage wählen und dann testweise in einer Spalte der Positionstabelle den "PositionType" ausgeben lassen. Müsste eigentlich anzeigen, was eine Freiposition definiert...
Genau das hatte ich hier versucht, aber es kam einfach kein Text raus für Freiposition. Aber da kann gerne jemand anderes nochmal genauer gucken ...
Freiposition ist an 2. Stelle.
Positionstyp.PNG
Wenn ich als Datenfilter "not InvoicePosition.PositionType = '' " eingebe, funktioniert es auch. Scheint also wirklich als leerer Text ausgegeben zu werden. Aber ich weiß halt nicht, ob das bei anderen Positionstypen vllt auch der Fall wäre.

Wenn man jetzt über Darstellungsbedingungen geht innerhalb der Tabelle, könnte man auch die Positionstyp ID aus der DB abfragen und das darüber machen. Aber schon doof das es notwendig ist...
 

Ähnliche Themen