Mit einem zyklischen SQL-Job setzen Sie den Bestellfortschritt automatisch auf abgeschlossen (7), sobald die zugehörige Eingangsrechnung geprüft ist – so bleiben keine offenen Bestellungen liegen.
Tipp: Seit EinkaufsMonitor 1.18.24 können Sie eine einzelne Bestellung auch direkt in der Rechnungsprüfung per Rechtsklick auf „Erledigt“ setzen. Der SQL-Job eignet sich für die automatische Bereinigung im Hintergrund.
Hinweis: Die Abfragen ändern Daten direkt in der KWP-Datenbank. Bitte vorher eine Datensicherung anlegen und zunächst die SELECT-Abfragen prüfen. Nur für erfahrene Administratoren.
Variante 1: Nach sachlicher und fachlicher Prüfung
Der Bestellfortschritt wird auf „abgeschlossen“ gesetzt, wenn die sachliche und fachliche Prüfung der Eingangsrechnung erfolgt ist und die Bestellung den Status geliefert (4) oder überliefert (5) hat.
Prüfen
SELECT pkBuchung, fkER, BuchungZeilenNr, fkBestellNr, er.ID, er.TechPruefungAm, er.TechPruefungDurch,
er.WeiterberechnungDebitor, er.WeiterberechnungDebitorAm, er.WeiterberechnungDebitorDurch,
b.BestellNr, b.BestellFortschritt
FROM dbo.rebBuchung eb
LEFT JOIN rebEinRechnung er ON eb.fkER = er.pker
LEFT JOIN Bestellung b ON eb.fkBestellNr = b.BestellNr
WHERE eb.fkBestellNr IS NOT NULL
AND (TechPruefungDurch IS NOT NULL AND WeiterberechnungDebitorDurch IS NOT NULL);
Aktualisieren
UPDATE Bestellung
SET BestellFortschritt = 7 -- 7 = abgeschlossen
FROM dbo.rebBuchung eb
LEFT JOIN rebEinRechnung er ON eb.fkER = er.pker
LEFT JOIN Bestellung b ON eb.fkBestellNr = b.BestellNr
WHERE (b.BestellFortschritt = 4 OR b.BestellFortschritt = 5) -- geliefert / überliefert
AND eb.fkBestellNr IS NOT NULL
AND (TechPruefungDurch IS NOT NULL AND WeiterberechnungDebitorDurch IS NOT NULL);
Variante 2: Nach Verbuchung im Eingangsrechnungsbuch
Alternativ wird die Bestellung abgeschlossen, sobald die Eingangsrechnung im Eingangsrechnungsbuch den Buchungsstatus verbucht (2) hat.
Prüfen
SELECT id, renr, redatum, re.Buchungsstatus, fkBestellNr, BestellFortschritt
FROM rebeinrechnung re
LEFT JOIN rebBuchung rb ON pker = fker
LEFT JOIN Bestellung be ON rb.fkBestellNr = be.BestellNr
WHERE Buchungsstatus = '2' AND fkBestellNr IS NOT NULL;
Aktualisieren
UPDATE Bestellung
SET BestellFortschritt = '7' -- 7 = abgeschlossen
FROM rebeinrechnung re
LEFT JOIN rebBuchung rb ON pker = fker
LEFT JOIN Bestellung be ON rb.fkBestellNr = be.BestellNr
WHERE Buchungsstatus = '2' -- 2 = verbucht
AND fkBestellNr IS NOT NULL;
Den Job richten Sie z. B. als zyklischen SQL-Server-Agent-Auftrag ein. Bei Fragen helfen wir gern – Kontakt aufnehmen.