Neu Verkauf (F6) - Fehlbestände aus allen auftragen auf einen Blick + Zulauf

  • 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!

Zef

Aktives Mitglied
15. April 2020
32
8
Hallo Zusammen,

vielleicht kann uns einer hier helfen, leider kriegen wir das selbst nicht hin.

Wir bräuchten eine Eigene Übersicht die uns unter VERKAUF - Aufträge ohne Rechnung - Alle Fehlpositionen (nicht verfügbare Positionen) aus den markierten und bezahlten Aufträgen auf ein mal anzeigt, inklusive Zulauf und idealerweise mit LS und Lieferant damit man weißt ob der Artikel heute vielleicht kommt oder erst morgen. ( Man kann zwar über Artikel nach Verfügbarkeit schauen, aber da werden auch nicht bezahlte Auftrage mit berücksichtigt was oft für Verwirrung sorgt, da wir uns mit Artikeln beschäftigen die in auftragen sind die noch nicht bezahlt sind und somit aktuell gar nicht relevant sind.)

Artikel-Nr. / Artikelname / Fehlpositionen (aus den markierten Aufträgen) / Lagerbestand Gesamt / Im Zulauf / Lieferant / Lieferscheine-Lieferant /

Eine solche Übersicht würde uns im Lager die Arbeit echt erleichtern. Vielen Dank im Voraus :)
 
  • Gefällt mir
Reaktionen: 414orgkom

merres

Mitglied
28. März 2024
32
6
SQL:
WITH PaidOrders AS (
    SELECT DISTINCT kAuftrag
    FROM [eazybusiness].[Verkauf].[tAuftragEckdaten]
    WHERE nZahlungStatus = 2
),
OrderPositionsWithoutInvoice AS (
    SELECT
        ap.kAuftrag,
        ap.kArtikel,
        a.cAuftragsNr AS Auftragsnummer,
        ap.cArtNr,
        ap.cName AS ArtikelName,
        ap.fAnzahl,
        ap.fVerfuegbar,
        ap.fOffeneAuftragsmenge,
        ap.fFehlbestand
    FROM [eazybusiness].[Verkauf].[lvAuftragsposition] ap
    INNER JOIN PaidOrders po ON ap.kAuftrag = po.kAuftrag
    INNER JOIN [eazybusiness].[Verkauf].[tAuftrag] a ON ap.kAuftrag = a.kAuftrag
    LEFT JOIN [eazybusiness].[Verkauf].[lvRechnungsposition] rp ON ap.kAuftrag = rp.kAuftrag AND ap.kArtikel = rp.kArtikel
    WHERE ap.fFehlbestand > 0
      AND rp.kRechnungPosition IS NULL
),
IncomingStock AS (
    SELECT
        bp.kArtikel,
        SUM(bp.fMenge - bp.fMengeGeliefert) AS fZulauf,
        MIN(b.dLieferdatum) AS dNextDelivery,
        STRING_AGG(CONVERT(NVARCHAR(20), b.cBestellnummer), ', ') AS cBestellnummern,
        STRING_AGG(b.cLieferantName, ', ') AS cLieferanten
    FROM [eazybusiness].[Beschaffung].[lvBestellung] b
    INNER JOIN [eazybusiness].[Beschaffung].[lvBestellPositionen] bp ON b.kBestellung = bp.kBestellung
    WHERE b.nStatus < 500
      AND b.dLieferdatum >= GETDATE()
      AND bp.fMenge > bp.fMengeGeliefert
    GROUP BY bp.kArtikel
)
SELECT
    op.kAuftrag AS AuftragNr,
    op.Auftragsnummer,
    op.kArtikel AS ArtikelID,
    op.cArtNr AS Artikelnummer,
    op.ArtikelName,
    op.fAnzahl AS BestellteMenge,
    op.fVerfuegbar AS VerfuegbareMenge,
    op.fOffeneAuftragsmenge AS OffeneMenge,
    op.fFehlbestand AS Fehlbestand,
    COALESCE(ins.fZulauf, 0) AS Zulauf,
    COALESCE(CONVERT(NVARCHAR, ins.dNextDelivery, 104), 'Kein Zulauf') AS NaechsteLieferung,
    COALESCE(ins.cBestellnummern, 'Keine Bestellung') AS Bestellnummern,
    COALESCE(ins.cLieferanten, 'Kein Lieferant') AS Lieferanten,
    CASE
        WHEN ins.dNextDelivery IS NULL THEN 'Nicht im Zulauf'
        WHEN ins.dNextDelivery = CAST(GETDATE() AS DATE) THEN 'Heute erwartet'
        WHEN ins.dNextDelivery = DATEADD(DAY, 1, CAST(GETDATE() AS DATE)) THEN 'Morgen erwartet'
        ELSE 'Später erwartet'
    END AS LieferStatus
FROM OrderPositionsWithoutInvoice op
LEFT JOIN IncomingStock ins ON op.kArtikel = ins.kArtikel
ORDER BY op.kAuftrag, op.kArtikel;

Thema ist zwar schon etwas älter, aber probiert es mal hiermit und gebt mir Rückmeldung :)
 
  • Gefällt mir
Reaktionen: Micmac und frankell

frankell

Sehr aktives Mitglied
9. September 2019
978
339
Flensburg
Da ich selbst grad nen eigenen Anwendungsfall habe, hätte ich einen etwas anderen Approach:

SQL:
WITH BezahltOhneRechnung AS (
    SELECT DISTINCT kAuftrag, cAuftragsnummer
    FROM Verkauf.lvAuftragsverwaltung
    WHERE nZahlungStatus = 2 AND nRechnungStatus < 2 AND kAuftrag IN(@Keys)
),
LieferantenBestellungen AS (
    SELECT
        A.kArtikel,
        CASE WHEN EXISTS (SELECT 1 FROM tLieferantenBestellungPos WHERE fAnzahlOffen > 0 AND tLieferantenBestellungPos.kArtikel = A.kArtikel)
        THEN (SELECT STRING_AGG(
                    CAST(CAST(LBP.dLieferdatum AS DATE) AS NVARCHAR(40)) + ' - ' +
                    CAST(CAST(LBP.fAnzahlOffen AS INT) AS NVARCHAR(40)) + ' St. - ' +
                    LB.cLieferantName
                    , ' | ')
            FROM tLieferantenBestellungPos LBP
            JOIN Beschaffung.lvBestellung LB ON LBP.kLieferantenBestellung = LB.kBestellung
            WHERE LBP.fAnzahlOffen > 0 AND LBP.kArtikel = A.kArtikel)
        ELSE 'Keine Lieferantenbestellung'
        END  AS 'Lieferdaten'
    FROM tArtikel AS A
)
SELECT
    ART.cArtNr AS 'ArtNr.',
    ART.cName AS 'ArtName',
    STRING_AGG(A.cAuftragsnummer, ' | ') AS 'Aufträge',
    CAST(SUM(AP.fAnzahl) AS INT) AS 'Auftragsmenge',
    CAST(MAX(AP.fFehlbestand) AS INT) AS 'Fehlbestand',
    CAST(MAX(L.fLagerbestand) AS INT) AS 'Bestand',
    CAST(MAX(L.fVerfuegbar) AS INT) AS 'Verfügbar',
    CAST(MAX(L.fZulauf) AS INT) AS 'Zulauf',
    CAST(CAST(MAX(L.dLieferdatum) AS DATE) AS NVARCHAR(40)) AS 'früh. Lieferdatum',
    ISNULL(MAX(LB.Lieferdaten), 'Keine Lieferantenbestellung') AS 'Lieferungen'
FROM Verkauf.lvAuftragsposition AS AP
JOIN BezahltOhneRechnung AS A ON AP.kAuftrag = A.kAuftrag
JOIN vStandardArtikel AS ART ON AP.kArtikel = ART.kArtikel
JOIN tlagerbestand AS L ON ART.kArtikel = L.kArtikel
JOIN LieferantenBestellungen AS LB ON AP.kArtikel = LB.kArtikel
WHERE AP.fFehlbestand > 0
GROUP BY ART.cArtNr, ART.cName;

Ist etwas kompakter und fasst sowohl die Artikelzeilen als auch alle Infos zukünftiger Lieferungen zusammen, so dass zu jedem Artikel nur eine Zeile existiert.

Außerdem ist die Abfrage so angepasst, dass sie mit einer individuellen Auswahl an Aufträgen funktioniert. Soll sie pauschal immer alle Fehlbestände aller Aufträge anzeigen, die bezahlt sind und keine Rechnung besitzen (also ohne Auswahl), dann muss in der vierten Zeile "AND kAuftrag IN(@Keys)" entfernt werden. Oder aber man lässt die Query so und aktiviert einfach mit STRG+A alle Aufträge.
 
Zuletzt bearbeitet:

frankell

Sehr aktives Mitglied
9. September 2019
978
339
Flensburg
Für wen die Herangehensweise von @merres lieber ist: Auch dieser Code kann über die Ergänzung
AND kAuftrag IN(@Keys)
am Ende der vierten Codezeile fit für eine "Eigene Übersicht" in der Wawi mit Auswahlfunktionalität gemacht werden.
 

Micmac

Sehr aktives Mitglied
12. Februar 2016
302
51
Das ist für uns auch sehr hilfreich - Vielen Dank

Wie wäre der Code, wenn wir die Fehlbestände der Aufträge ohne Rechnung, unabhängig vom Zahlungsstatus, also bezahlte und unbezahlte Aufträge, anzeigen lassen wollen?

Alle Fehlbestände der markierten Aufträge gelistet nach Artikelnummer so wie oben, und als Bonus noch das Anmerkungsfeld des Artikels dazu 😬 (wenn möglich)

Ist das möglich?
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Kauf Ihres Lagerbestands durch Amazon für den weltweiten Verkauf - Wie Abbildung in JTL? Betrieb / Pflege von JTL-Shop 0
Neu Warenkorb im Merkliste umbenennen, kein Verkauf über Shop , nur Angebote anfragen Allgemeine Fragen zu JTL-Shop 0
Einkauf einzelner Artikel - Verkauf als Set JTL-Wawi 1.9 1
In Bearbeitung Gutschein-Verkauf, Gutschein Details aus Positionsliste löschen Allgemeine Fragen zu JTL-POS 1
bereits ausgelieferte Aufträge tauchen nichtmehr bei Verkauf=> Aufträge => zurückgehalten auf JTL-Wawi 1.9 3
Neu Auswertungen über Verkauf minus Retouren Arbeitsabläufe in JTL-Wawi 3
Neu Packtisch+ erster Scan gibt keinen Erfolgston aus JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Beantwortet Packtisch liefert nicht nach FIFO aus Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 3
Neu Teillieferung aus Vorkommissionierung Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 6
Neu Newsletter Abonnenten export aus dem JTL Shop? Allgemeine Fragen zu JTL-Shop 0
In Diskussion Syntax für For-Schleife? For-Schleife im Workflow gibt Syntaxfehler aus ... JTL-Workflows - Fehler und Bugs 13
In Diskussion Gesamtgewicht aus mehreren Paketen je Auftrag JTL-Workflows - Ideen, Lob und Kritik 1
Neu Gratisartikel werden plötzlich aus Warenkorb entfernt Allgemeine Fragen zu JTL-Shop 5
Neu Artikelettikett drucken mit Eigenen Feldern aus dem Reiter Allgemein User helfen Usern - Fragen zu JTL-Wawi 2
Neu Inhalt / Menge aus der Wawi im JTL Shop anzeigen / ohne Funktion ? Allgemeine Fragen zu JTL-Shop 2
Gelöst Kann man aus einem Kassenbon nachträglich einen DIN A4-Beleg ausdrucken? Allgemeine Fragen zu JTL-POS 2
Neu Was passiert wenn ich Amazon Aufträge, Lieferscheine und Rechnungen per SQL aus der WAWI-Datenbank lösche? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Emails senden aus der Wawi an Bestellungen via Gastkonto (JTL Wawi 1.5.55.5 / JTL Shop 4.05) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu OSS-Zahlungsaufforderung aus Spanien erhalten Smalltalk 5
Neu Kauf aus Österreich wird im Warenkorb mit 19% angezeigt Betrieb / Pflege von JTL-Shop 0
Neu Kennt / nutzt jemand die MagicBOX (Fotobox) aus Holland ? User helfen Usern 0
Neu GPSR Daten aus dem Bereich "Hersteller" werden unvollständig übertragen JTL-Shop - Fehler und Bugs 5
Neu Pickliste für Aufträge mit mehr als einem Artikel aus verschiedenen Lagerbereichen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Anmerkung "Klarna Pay Later." aus Auftrags Anmerkungen entfernen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Automatisches Ausliefern von Vouchers aus WMS User helfen Usern - Fragen zu JTL-Wawi 0
Gelöst POS aus anderem Lager verkaufen Allgemeine Fragen zu JTL-POS 2
Neu WF - Rabatt aus Artikelposition löschen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Neuen ähnlichen Artikel direkt aus Auftrag - wie erstellen? User helfen Usern - Fragen zu JTL-Wawi 3
JTL Shipping: Artikelgewicht und Zusatzgewicht aus der Versandeinstellung wird nicht addiert JTL-ShippingLabels - Ideen, Lob und Kritik 2
Neu Bericht / Status E-Mails aus dem JTL Shop Allgemeine Fragen zu JTL-Shop 1
Neu Dropshipping Einstellungen in Wawi mit Händler, aber Versand geht von uns aus???? User helfen Usern - Fragen zu JTL-Wawi 4
Neu JTL Worker führt den Workflow nicht aus User helfen Usern - Fragen zu JTL-Wawi 0
Bankverbindung aus Kunde in neuen Shop-Auftrag übernehmen JTL-Wawi 1.9 0
In Diskussion Wert aus lokaler TextDatei auslesen und Eigenes Feld damit beschreiben evtl. Webrequest JTL-Workflows - Ideen, Lob und Kritik 3
Wie Zahlungsarten aus Shop in der Wawi einrichten / Übersetzung? JTL-Wawi 1.9 3
Neu Aus Angebot direkt Auftrag an Kunden mailen JTL-Wawi - Ideen, Lob und Kritik 1
Neu Lieferadressen aus der Wawi-DB löschen User helfen Usern - Fragen zu JTL-Wawi 5
Neu Artikelbild wird nicht aus Shop gelöscht JTL-Shop - Fehler und Bugs 0
Neu Amazon Angebote aus Sortiment entfernen Amazon-Anbindung - Fehler und Bugs 0
Neu Neue Artikel mit Ameise und EAN aus JTL JTL-Workflows - Ideen, Lob und Kritik 1
Neu Gsuite Emailversand aus JTL Shop nicht mehr möglich JTL-Shop - Fehler und Bugs 20
Neu Frage zu Tickets aus dem öffentlichen Ticketsystem JTL-Wawi - Ideen, Lob und Kritik 5
Neu FFN - Welche Komponente löst die Einzelnachweiserfassung (Lagerplatz) um 23:59:59 Uhr aus? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Eigenes Feld aus Artikelstamm im Angebot andrucken Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu AdCell Export aus JTL Shop 5 funktioniert nicht User helfen Usern 0
Neu Sonderzeichen aus Kundenname entfernen - Datei speichern - ErrorLog User helfen Usern - Fragen zu JTL-Wawi 6

Ähnliche Themen