Inhaltsverzeichnis
Schnittstelle 1069: KaDeWe-CAR-Transaktionsdateien importieren und berechnen
Du importierst CAR-Transaktionsdateien und startest anschließend automatisch dieselbe Umsatzberechnung wie Kennung 1068.
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 Dateivertrag
PFAD: Folder, vorhandener Ordner via SetPfad, IMP wird angelegt. Muster Transaktionsdaten*.*, lexikalisch sortiert (kein CSV-Endungsfilter). BULK INSERT benötigt Dateizugriff vom SQL-Server; FIRSTROW=2, Semikolon, LF0x0A, kein Quotehandling/Codepage/Formatfile festgelegt. DDL0797 legt 19 varchar-Felder in physischer Reihenfolge fest; nachfolgende Zielkonvertierung kann fehlschlagen.
| Position ab1 | Feld / varchar-Länge |
|---|
| 1–5 | Personalteilbereich10, Kasse10, Bonnummer25, Umsatz_Datum10, Umsatz_Uhrzeit8 |
| 6–10 | Artikel20, Menge10, VK_Preis_Netto10, Verkaeufernummer10, EAN20 |
| 11–15 | VK_Preis_Brutto10, Positionsrabatt10, Rechnungsrabatt10, Mitarbeiter_Rabatt10, Retoure10 |
| 16–19 | Originalverkaeufernummer10, Umsatzoriginaldatum10, Warengruppe10, Konsignationssteuerkennzeichen1 |
Feldzuordnung im Rückindex ist vollständig. Datum und Zahlen werden in SQL implizit/sessionabhängig konvertiert; kein Dezimal-Komma-Ersatz, keine standardisierte NULL-/Leerfeldregel festgelegt.
SQL-Kette und Fachausgänge
Je Datei: globales TRUNCATE Import.dbo.Umsatz_KaDeWe_Car_Tmp → BULK INSERT → Umsatz_KaDeWe_Car_Tmp_Transfer (T) → Min/Max(convert(date,Umsatz_Datum)) aus Temp → Calc_Umsatz_KaDeWeCar im so ermittelten Intervall. Timeout0 für alle Commands. Leere Temp liefert NULL-Grenzen, die VB nicht abfängt; Fehler erst nach eventuell erfolgtem Transfer.
Die gemeinsame CAR-Berechnung ist nachfolgend mit ihren Feldern beschrieben.
CAR-Profil dokumentiert den anschließenden kompletten Datenfluss in UmsatzVK/Umsätze/UmsätzeIstStunde. Transfer löscht nur eine Filiale/Datum-Kombination, die durch SELECT-Variablenzuweisung über die ungesortierte Temp übrig bleibt; dann fügt er alle numerischen Artikelzeilen hinzu. Mehrere Tage/Filialen können daher bei Wiederholung Duplikate erzeugen. Permanentes Schema0792 ohne expliziten PK; Datum/FilialWarengruppe u.a. berechnet.
Befunde, Archiv und Tests
T setzt Sekunden aus Umsatz_Uhrzeit mit DATEADD(MINUTE) statt SECOND. Bonnummer wird auf die letzten vier Zeichen gekürzt. OwnBuy nur bei Steuerkennzeichen '0'. Delete-Schlüsselmenge ist kleiner als Insert-Schlüsselmenge. Retouren-Verkäuferdatum kann außerhalb des vom Verkaufsdatum abgeleiteten Berechnungsfensters liegen.
MoveFile erst nach erfolgreicher SQL-Kette, ersetzt gleichnamiges IMP-Archiv. BULKERROR wird vorher gelöscht. SQL-Catch markiert FehlerUndStopp, Dateischleife stoppt nicht ausdrücklich. Kein Transaktionsverbund, globale Temp und breite CAR-Resets. Vor Test besonders hh:mm:ss mit Sekunden, Mehrtag/Mehrfilial-Datei, Wiederholung, Zahlen/Datum/NULL und Archivfehler prüfen.
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 |
|---|
| 1069-D001 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.— gesamte Tabelle | TRUNCATE | Global vor BULK je Datei | SQL ausführbar; keine Transaktion | B |
| 1069-D002 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Personalteilbereich | BULK INSERT/SELECT | Dateiposition1; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D003 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Kasse | BULK INSERT/SELECT | Dateiposition2; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D004 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Bonnummer | BULK INSERT/SELECT | Dateiposition3; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D005 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Umsatz_Datum | BULK INSERT/SELECT | Dateiposition4; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D006 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Umsatz_Uhrzeit | BULK INSERT/SELECT | Dateiposition5; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D007 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Artikel | BULK INSERT/SELECT | Dateiposition6; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D008 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Menge | BULK INSERT/SELECT | Dateiposition7; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D009 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.VK_Preis_Netto | BULK INSERT/SELECT | Dateiposition8; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D010 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Verkaeufernummer | BULK INSERT/SELECT | Dateiposition9; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D011 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.EAN | BULK INSERT/SELECT | Dateiposition10; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D012 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.VK_Preis_Brutto | BULK INSERT/SELECT | Dateiposition11; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D013 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Positionsrabatt | BULK INSERT/SELECT | Dateiposition12; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D014 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Rechnungsrabatt | BULK INSERT/SELECT | Dateiposition13; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D015 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Mitarbeiter_Rabatt | BULK INSERT/SELECT | Dateiposition14; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D016 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Retoure | BULK INSERT/SELECT | Dateiposition15; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D017 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Originalverkaeufernummer | BULK INSERT/SELECT | Dateiposition16; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D018 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Umsatzoriginaldatum | BULK INSERT/SELECT | Dateiposition17; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D019 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Warengruppe | BULK INSERT/SELECT | Dateiposition18; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D020 | Import.dbo.Umsatz_KaDeWe_Car_Tmp.Konsignationssteuerkennzeichen | BULK INSERT/SELECT | Dateiposition19; varchar laut DDL0797 | FIRSTROW=2, kein Quotehandling | B,T,DDL2 |
| 1069-D021 | Import.dbo.Umsatz_KaDeWe_Car.— Zeilen | DELETE | Eine aus Temp zuletzt zugewiesene Filiale/Datum-Kombination | Nicht gesamte Dateischlüsselmenge | T |
| 1069-D022 | Import.dbo.Umsatz_KaDeWe_Car.Filiale | INSERT | Personalteilbereich | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D023 | Import.dbo.Umsatz_KaDeWe_Car.Kasse | INSERT | Kasse | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D024 | Import.dbo.Umsatz_KaDeWe_Car.Bonnummer | INSERT | right(Bonnummer,4) | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D025 | Import.dbo.Umsatz_KaDeWe_Car.DatumZeit | INSERT | Umsatz_Datum + Stunden + Minuten + Sekunden als weitere MINUTEN | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D026 | Import.dbo.Umsatz_KaDeWe_Car.Artikel | INSERT | Artikel (nur ISNUMERIC=1) | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D027 | Import.dbo.Umsatz_KaDeWe_Car.Menge | INSERT | Menge | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D028 | Import.dbo.Umsatz_KaDeWe_Car.VK_Preis_Netto | INSERT | VK_Preis_Netto | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D029 | Import.dbo.Umsatz_KaDeWe_Car.Verkaeufernummer | INSERT | Verkaeufernummer | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D030 | Import.dbo.Umsatz_KaDeWe_Car.EAN | INSERT | EAN | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D031 | Import.dbo.Umsatz_KaDeWe_Car.VK_Preis_Brutto | INSERT | VK_Preis_Brutto | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D032 | Import.dbo.Umsatz_KaDeWe_Car.Positionsrabatt | INSERT | Positionsrabatt | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D033 | Import.dbo.Umsatz_KaDeWe_Car.Rechnungsrabatt | INSERT | Rechnungsrabatt | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D034 | Import.dbo.Umsatz_KaDeWe_Car.Mitarbeiter_Rabatt | INSERT | Mitarbeiter_Rabatt | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D035 | Import.dbo.Umsatz_KaDeWe_Car.Retoure | INSERT | Retoure | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D036 | Import.dbo.Umsatz_KaDeWe_Car.OriginalVerkaeufernummer | INSERT | Originalverkaeufernummer | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D037 | Import.dbo.Umsatz_KaDeWe_Car.Originaldatum | INSERT | convert(date,Umsatzoriginaldatum) | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D038 | Import.dbo.Umsatz_KaDeWe_Car.Warengruppe | INSERT | Warengruppe | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D039 | Import.dbo.Umsatz_KaDeWe_Car.OwnBuy | INSERT | Konsignationssteuerkennzeichen='0' →1, sonst0 | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D040 | Import.dbo.Umsatz_KaDeWe_Car.ts | INSERT | getdate() | ISNUMERIC(Artikel)=1; implizite Zieltyp-Konvertierung | T,DDL |
| 1069-D041 | Import.dbo.Umsatz_KaDeWe_Car.Datum | berechnet | convert(date,DatumZeit) | Schema0792 | DDL |
| 1069-D042 | Import.dbo.Umsatz_KaDeWe_Car.Werten | berechnet | OriginalDatum NULL oder datediff(day,Datum,OriginalDatum)<15 | Schema0792 | DDL |
| 1069-D043 | Import.dbo.Umsatz_KaDeWe_Car.DatumBuchung | berechnet | isnull(OriginalDatum,Datum) | Schema0792 | DDL |
| 1069-D044 | Import.dbo.Umsatz_KaDeWe_Car.PersonBuchung | berechnet | isnull(OriginalVerkaeufernummer,Verkaeufernummer) | Schema0792 | DDL |
| 1069-D045 | Import.dbo.Umsatz_KaDeWe_Car.FilialWarengruppe | berechnet | Filiale*1000000000000 + Warengruppe | Schema0792 | DDL |
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.