1010 (ImpUmsatzAprocon) liest PERSONALUMSAETZE.CSV, füllt SCHNITT_Umsatz und übernimmt Tages-, Verkäufer- und Stundenumsätze. Es gibt keine externe ODBC-Verbindung in diesem Pfad.
Vor dem Lesen wird die gesamte Tabelle SCHNITT_Umsatz geleert. Die Folgeprozedur ändert Umsätze.Ist und IstNetto zunächst ohne IstFixed-Filter. Später werden Stundenwerte ab dem frühesten Staging-Datum erneut gelöscht. Die folgende Neufüllung verlangt Kostenstelle, die 1010 nicht setzt. Prüfe den Bereich vor einem Lauf.
PFAD verlangt eine vorhandene Datei; Dateidialogmuster PERSONALUMSAETZE.CSV. FID ist eine Nummer mit registriertem Default 0. Bei FID ungleich 0 wird die Filiale als Filiale * 100 + FID gespeichert. Parser: Encoding.Default, Semikolon, getrimmte Leerzeichen, CSV-Anführungszeichen. Kein ausdrücklicher Header-Skip und keine Mindestfeldzahlprüfung; nur ein leeres erstes Feld wird übersprungen. Die Datei wird nicht archiviert.
| Position | Bedeutung | Verarbeitung |
|---|---|---|
| 1 | Filiale | Zahl; mit FID-Mapping nach SCHNITT_Umsatz.Filiale. |
| 2 | Verkäufer | Nach SCHNITT_Umsatz.Verkäufer. |
| 3 | Datum | NzDate; zusammen mit Position 4. |
| 4 | Halbstundenwert | Durch 2 geteilt und als Stunden addiert. |
| 5 | Netto-Cent | Durch 100 geteilt nach PreisNetto. |
| 6 | Brutto-Cent | Durch 100 geteilt nach PreisBrutto. |
| Eingang / Ziel | Wirkung |
|---|---|
Datei → SCHNITT_Umsatz | TRUNCATE, danach INSERT der fünf Zielspalten je akzeptierter Zeile. |
SCHNITT_Umsatz + UmsKstGr → Umsätze | SCHNITT_Umsatz_AproconFile setzt/füllt IstKassenBon, IstKassenBonNetto und überträgt sie nach Ist/IstNetto. Nur bestehende Umsatzzeilen. |
Personen.ApcID → UmsatzVK | Verkäuferwerte im betroffenen Datums-/Gruppenbereich löschen und mit Datum, PersonID, Gruppe, VKWert, VKWertNetto neu einfügen. |
Staging → UmsätzeIstStunde | Zuerst Stundenzeilen löschen und mit Brutto-/Netto-Summen füllen. spCalcUmsatzIst löscht sie ab Staging-Minimum noch einmal und versucht eine Neufüllung über SCHNITT_Umsatz.Kostenstelle. |
Stunden → Tageskurven | TageskurvenAusStundenUmsatz 100 schreibt TK00 bis TK23 für vorhandene Kurven. |
Umsätze + UmsKstGr | spCalcUmsatzIst berechnet Ist und Kassierdauer von Summengruppen. |
Statischer Code-/Schemawiderspruch: 1010 schreibt Filiale, aber nicht Kostenstelle. Laut versionierter SCHNITT_Umsatz-DDL bleibt Kostenstelle NULL. Ohne unbekannten Live-Trigger findet die letzte Stunden-Neufüllung daher keinen passenden Join; die zuvor gefüllten Stundenzeilen bleiben nach dem zweiten DELETE weg. Die Tageskurven wurden bereits davor berechnet. Das ist nicht produktiv getestet.
Die Kette hat keine Gesamttransaktion. Ein Fehler nach TRUNCATE oder nach einzelnen Zeilen kann Teilstände lassen. spCalcUmsatzIst wird mit Untergrenze aus dem Staging und Obergrenze GETDATE() aufgerufen; nicht alle vorherigen Updates besitzen dieselbe Obergrenze. Keine neue Tagesumsatzzeile wird angelegt.
Keine individuelle fachliche ZW-Einstellung in der Routine. Die gemeinsame Schnittstellenbasis verwendet bedingt Logging, Mail und Meldungsversand; MANUELL, SILENT und MAILTO sind Laufparameter. SQL_TIMEOUT wird im Fachcommand nicht ausdrücklich gesetzt.
Technische Feldbeziehungen: Git-Nexus pep4desktop/interfaces/by-id/1010.md. Quellcommit f1d82a003b62f2658f06eaa943dc685ab219bdf3, statisch geprüft am 25.09.2026. Kein Importlauf, Live-Schema- oder HTTP-Abrufnachweis.