====== 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. [[schnittstellen:schnittstellen|Übersicht der Schnittstellen]]