Inhaltsverzeichnis

Schnittstelle 1010 – Aprocon-Personalumsätze aus CSV importieren

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.

Parameter und Eingabedatei

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.

Datenfluss und SQL

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.

Einstellungen und Prüfstand

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.

Zur Schnittstellenübersicht