Inhaltsverzeichnis

Schnittstelle 1068: KaDeWe-CAR-Umsätze im Intervall berechnen

Du berechnest vorhandene CAR-Transaktionen für ein Datumsintervall. Verkäuferumsätze, Tageswerte und Stundenwerte werden dabei neu aufgebaut.

Stand: 02.10.2026, statische Analyse von PEP4 Desktop, Commit f1d82a003b62f2658f06eaa943dc685ab219bdf3. Statisch dokumentiert; Nutzerprüfung offen. Kein Schnittstellenlauf, Live-Schema- oder API-Test. Lokale PEP-Änderungen außerhalb dieser Schnittstellen wurden nicht einbezogen.

Zweck, Parameter und Datenvertrag

Art Programm, Gruppe Umsatz. Keine Eingangsdatei, kein Importarchiv. DATVON und DATBIS: Datum-Parameter, SetDatum mit Datumsmusterauswertung; beide müssen gültig sein. Keine Prüfung Von≤Bis. Datumshelfer siehe Datumsmuster (interne Referenz), Quellenverzeichnis BASE.

Öffnet Anmeldung-DB bereits vor Datumsprüfung und startet ausschließlich Calc_Umsatz_KaDeWeCar(@DatVon,@DatBis), SQL-Timeout0. Kein Import und kein Temp-Transfer Teil dieser Kennung. Shared-Einstieg reicht Instanz-Fehlerfrei() als Boolean durch; innere Verarbeiten ist untypisiert, aber hat Return.

SQL-Kette, Ausgänge und Betrieb

Die gemeinsame CAR-Berechnung ist nachfolgend mit ihren Feldern beschrieben.

Dieses Profil beschreibt vollständig die hier aufgerufene Fach-SP und ihre kanonischen Leser-/Schreiberbeziehungen: Import.dbo.Umsatz_KaDeWe_Car, ITZeitausweis, UmsKstGr, PepGruppen, Zusatzleistung → UmsatzVK, Umsätze und UmsätzeIstStunde. Globale Intervall-DELETEs von Verkäufer-/Stundenwerten, neun Tagesfelder zuerst0 für alle Gruppen, dann selektiv neu befüllt. Kein IstFixed-/SRC-Schutz. Zusatzleistung als Brutto, Netto/1.19.

Befunde und Tests

CAR-Tagesrückstellung ist breiter als Wiederbefüllung: Summengruppen werden auf0 gesetzt und anschließend nicht neu befüllt. IstKasseMenge/IstKasseKLSMenge hingegen bleiben ohne Treffer alt. Keine Transaktion zwischen DELETEs, Updates, Inserts und Rückmeldung. Vor Nutzerprüfung Intervall/Fremdgruppen, Retouren-Differenzrichtung, Mehrfachmapping und Zusatzleistungs-Schlüsselkollisionen isolieren. Keine automatische Folgekette 1069→1068 erforderlich: 1069 ruft diese SP selbst auf.

Systemeinstellungen und gemeinsame Nebenwirkungen

Gemeinsamer Rückmeldepfad: cSchnitt_Basis mit bedingtem Logging, Mail-/Outbox- und Meldungs-API-Aufruf. MANUELL/SILENT und Rückmeldeschalter beeinflussen diesen Pfad; serverseitige API-Wirkungen bleiben offen.

Keine zusätzliche fachliche ZW-Einstellung im lokalen Importpfad gelesen. Timeoutwerte stehen im Betriebsabschnitt, nicht automatisch SQL_TIMEOUT zuordnen.

Nur belegte Profilzuordnung; Fachdaten und Rückmeldung sind nicht atomar. Defaults sind keine Livewerte.

Feldbeziehungen

Unqualifizierte Fachobjekte in der Anmeldedatenbank; Import.dbo ausdrücklich Importdatenbank. Dateifelder stehen separat im Dateivertrag.

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg

SQL-Vertrag und Ablauf

Calc_Umsatz_KaDeWeCar(@DatumVon datetime,@DatumBis datetime) (SQL) verarbeitet das geschlossene Intervall ohne Prüfung Von≤Bis und ohne Transaktion. Kein ZW-Einstellungsschlüssel innerhalb dieser SP. BASE-Rückmeldungen stehen separat in den Einzelbeschreibungen.

1. UmsatzVK im Intervall vollständig löschen. #UmsatzTmp summiert CAR-Beträge/Mengen auf Buchungsperson (Originalverkäufer, sonst Verkäufer), Buchungstag (Originaldatum, sonst Datum), FilialWarengruppe. Filter: Originaldatum NULL oder datediff(day,Datum,Originaldatum)<15, Buchungstag im Intervall, Verkäufer nicht NULL, OwnBuy=1, Menge>0 oder OriginalVerkaeufernummer>0. Die Differenzrichtung kann ältere Retouren einschließen; kein absoluter 14-Tage-Abstand. ITZeitausweis zeitgültig und numerisch >0; UmsKstGr zeitgültig. Gewichtete INSERTs. Zusatzleistung zusätzlich als Verkäuferumsatz: Artikel=PEP-Gruppe, Menge ist Brutto, Netto gerundet /1.19, Stückmenge0. 2. Neun Tagesfelder von Umsätze für sämtliche Gruppen im Intervall auf0 setzen. Kein IstFixed-/Quellsystemfilter. #UmsatzTmp2 aggregiert nach Verkaufstag und FilialWarengruppe, #UmsatzTmp3 gewichtet nach gültiger Gruppenzuordnung. OwnBuy- und Gesamtbeträge getrennt, geklebt = Ersatzverkäufer>0; fremdgeklebt = tatsächlicher Verkäufer>0 ohne passenden Personjoin. UPDATE nur vorhandener Gruppen mit AusPepGruppenUmsatz=0. Zusatzleistungsbeträge werden auf diese Gruppen addiert. 3. UmsätzeIstStunde im ganzen Intervall löschen, #UmsatzTmp5 summiert OwnBuy nach Verkaufstag/Stunde/Warengruppe, gewichtete INSERTs nach UmsKstGr. Keine Zusatzleistungs-Stundenwerte. Temp-Tabellen werden wieder entfernt; ihre Felder sind die im Text benannten Aggregationsaliase, keine persistenten Schnittstellenausgänge.

Wichtige Asymmetrie: IstKasseMenge und IstKasseKLSMenge werden nur bei Treffern überschrieben, nicht bei der globalen Tagesrückstellung auf0 gesetzt. Summengruppen werden zurückgestellt, dann vom CAR-Tagesupdate ausgeschlossen. Keine Tageszeilen-Neuanlage. UmsatzVK-Zusatzzeilen können mit CAR-Schlüsseln kollidieren; vorhandene PKs sind beim Test zu berücksichtigen.

Feldbeziehungen

Beziehung Tabelle.Feld Operation Datenfluss / Verwendung Bedingung Beleg
CAR-D001 Import.dbo.Umsatz_KaDeWe_Car.Datum SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D002 Import.dbo.Umsatz_KaDeWe_Car.OriginalDatum SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D003 Import.dbo.Umsatz_KaDeWe_Car.OriginalVerkaeufernummer SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D004 Import.dbo.Umsatz_KaDeWe_Car.Verkaeufernummer SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D005 Import.dbo.Umsatz_KaDeWe_Car.FilialWarengruppe SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D006 Import.dbo.Umsatz_KaDeWe_Car.OwnBuy SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D007 Import.dbo.Umsatz_KaDeWe_Car.Menge SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D008 Import.dbo.Umsatz_KaDeWe_Car.VK_Preis_Netto SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D009 Import.dbo.Umsatz_KaDeWe_Car.VK_Preis_Brutto SELECT Personen-/Tages-/Stundenaggregation; Detailfilter im Text Zeitraum DATVON–DATBIS SQL
CAR-D010 Import.dbo.Umsatz_KaDeWe_Car.DatumZeit SELECT DATEPART(hour) für Stundenumsatz Zeitraum DATVON–DATBIS SQL
CAR-D011 Import.dbo.Umsatz_KaDeWe_Car.Filiale SELECT (berechnet) FilialWarengruppe = Filiale * 1000000000000 + Warengruppe Schema 0792 DDL
CAR-D012 Import.dbo.Umsatz_KaDeWe_Car.Warengruppe SELECT (berechnet) FilialWarengruppe = Filiale * 1000000000000 + Warengruppe Schema 0792 DDL
CAR-D013 ITZeitausweis.PersonID SELECT Gültige Personzuordnung; Fremdverkauf über fehlenden Personjoin Zeitraum DATVON–DATBIS SQL
CAR-D014 ITZeitausweis.Zeitausweis SELECT Gültige Personzuordnung; Fremdverkauf über fehlenden Personjoin Zeitraum DATVON–DATBIS SQL
CAR-D015 ITZeitausweis.von SELECT Gültige Personzuordnung; Fremdverkauf über fehlenden Personjoin Zeitraum DATVON–DATBIS SQL
CAR-D016 ITZeitausweis.bis2 SELECT Gültige Personzuordnung; Fremdverkauf über fehlenden Personjoin Zeitraum DATVON–DATBIS SQL
CAR-D017 UmsKstGr.Kst SELECT Warengruppe auf PEP-Gruppe abbilden und Beträge/Mengen gewichten Zeitraum DATVON–DATBIS SQL
CAR-D018 UmsKstGr.Gr SELECT Warengruppe auf PEP-Gruppe abbilden und Beträge/Mengen gewichten Zeitraum DATVON–DATBIS SQL
CAR-D019 UmsKstGr.Prozent SELECT Warengruppe auf PEP-Gruppe abbilden und Beträge/Mengen gewichten Zeitraum DATVON–DATBIS SQL
CAR-D020 UmsKstGr.von SELECT Warengruppe auf PEP-Gruppe abbilden und Beträge/Mengen gewichten Zeitraum DATVON–DATBIS SQL
CAR-D021 UmsKstGr.bis2 SELECT Warengruppe auf PEP-Gruppe abbilden und Beträge/Mengen gewichten Zeitraum DATVON–DATBIS SQL
CAR-D022 PepGruppen.PEPGruppenID SELECT Existenzjoin für Zusatzleistung; Gruppenfilter für Tagesupdate Zeitraum DATVON–DATBIS SQL
CAR-D023 PepGruppen.AusPepGruppenUmsatz SELECT Existenzjoin für Zusatzleistung; Gruppenfilter für Tagesupdate Zeitraum DATVON–DATBIS SQL
CAR-D024 Zusatzleistung.Datum SELECT Artikel ist PEP-GruppenID; Menge als Bruttobetrag, Netto = Brutto/1.19 Zeitraum DATVON–DATBIS SQL
CAR-D025 Zusatzleistung.PersonID SELECT Artikel ist PEP-GruppenID; Menge als Bruttobetrag, Netto = Brutto/1.19 Zeitraum DATVON–DATBIS SQL
CAR-D026 Zusatzleistung.Artikel SELECT Artikel ist PEP-GruppenID; Menge als Bruttobetrag, Netto = Brutto/1.19 Zeitraum DATVON–DATBIS SQL
CAR-D027 Zusatzleistung.Menge SELECT Artikel ist PEP-GruppenID; Menge als Bruttobetrag, Netto = Brutto/1.19 Zeitraum DATVON–DATBIS SQL
CAR-D028 UmsatzVK.— Zeilen DELETE Alle Personen/Gruppen im Intervall, kein Quellsystemfilter Zeitraum DATVON–DATBIS SQL
CAR-D029 UmsatzVK.Datum INSERT Buchungsdatum; Zusatzleistungsdatum Zeitraum DATVON–DATBIS SQL
CAR-D030 UmsatzVK.PersonID INSERT ITZeitausweis.PersonID oder Zusatzleistung.PersonID Zeitraum DATVON–DATBIS SQL
CAR-D031 UmsatzVK.Gruppe INSERT UmsKstGr.Gr oder Zusatzleistung.Artikel Zeitraum DATVON–DATBIS SQL
CAR-D032 UmsatzVK.Menge INSERT gewichtete Stückmenge; Zusatzleistung 0 Zeitraum DATVON–DATBIS SQL
CAR-D033 UmsatzVK.VKWert INSERT gewichtete Bruttosumme; Zusatzleistung.Menge Zeitraum DATVON–DATBIS SQL
CAR-D034 UmsatzVK.VKWertNetto INSERT gewichtete Nettosumme; Zusatzleistung round(Menge/1.19,2) Zeitraum DATVON–DATBIS SQL
CAR-D035 Umsätze.Datum SELECT Datumsbereich und Gruppenjoin für vorhandene Tageszeilen Zeitraum DATVON–DATBIS SQL
CAR-D036 Umsätze.GruppenID SELECT Datumsbereich und Gruppenjoin für vorhandene Tageszeilen Zeitraum DATVON–DATBIS SQL
CAR-D037 Umsätze.Ist UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D038 Umsätze.IstKassenBon UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D039 Umsätze.IstKassenBonNetto UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D040 Umsätze.IstNetto UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D041 Umsätze.IstKasse UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D042 Umsätze.TeileIst UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D043 Umsätze.IstKassenBericht UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D044 Umsätze.IstKassenBerichtNetto UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D045 Umsätze.IstNettoIntern UPDATE Zuerst 0 für ALLE vorhandenen Gruppen im Intervall; kein IstFixed/SRC-Filter Zeitraum DATVON–DATBIS SQL
CAR-D046 Umsätze.Ist UPDATE OwnBuy-Netto + Zusatz-Netto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D047 Umsätze.IstKassenBon UPDATE OwnBuy-Brutto + Zusatz-Brutto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D048 Umsätze.IstKassenBonNetto UPDATE OwnBuy-Netto + Zusatz-Netto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D049 Umsätze.IstNetto UPDATE OwnBuy-Netto + Zusatz-Netto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D050 Umsätze.IstKasse UPDATE geklebtes OwnBuy-Netto + Zusatz-Netto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D051 Umsätze.TeileIst UPDATE OwnBuy-Menge Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D052 Umsätze.IstKasseMenge UPDATE geklebte OwnBuy-Menge (nicht vorgängig zurückgesetzt) Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D053 Umsätze.IstKasseKLSMenge UPDATE fremdgeklebte OwnBuy-Menge (nicht vorgängig zurückgesetzt) Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D054 Umsätze.IstKassenBericht UPDATE Gesamtbrutto + Zusatz-Brutto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D055 Umsätze.IstKassenBerichtNetto UPDATE Gesamtnetto + Zusatz-Netto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D056 Umsätze.IstNettoIntern UPDATE geklebtes Netto minus fremdgeklebtes Netto + Zusatz-Netto Nur passende vorhandene Tageszeilen, AusPepGruppenUmsatz=0 SQL
CAR-D057 UmsätzeIstStunde.— Zeilen DELETE Alle Stunden/Gruppen im Intervall; kein Systemfilter Zeitraum DATVON–DATBIS SQL
CAR-D058 UmsätzeIstStunde.Datum INSERT Verkaufstag, nicht OriginalDatum Zeitraum DATVON–DATBIS SQL
CAR-D059 UmsätzeIstStunde.GruppenID INSERT UmsKstGr.Gr Zeitraum DATVON–DATBIS SQL
CAR-D060 UmsätzeIstStunde.Stunde INSERT DATEPART(hour, DatumZeit) Zeitraum DATVON–DATBIS SQL
CAR-D061 UmsätzeIstStunde.Umsatz INSERT SUM OwnBuy-Brutto * Prozent Zeitraum DATVON–DATBIS SQL
CAR-D062 UmsätzeIstStunde.UmsatzNetto INSERT SUM OwnBuy-Netto * Prozent Zeitraum DATVON–DATBIS SQL

Quellen und weitere Schritte

Enum, aktive Registrierung, Projekteinschluss und die in der internen Einzelbeschreibung genannten VB-/SQL-Dateien wurden am Quellencommit geprüft. Konkrete fehlende Quellen und fachliche Fragen stehen oben; bei Tests benötigst du eine isolierte Umgebung und synthetische Dateien.

Übersicht der Schnittstellen