Das Programm 1016 kopiert vorhandene Kassenberichtswerte in Tagesumsätze. Es berechnet vorher Mischsteuersätze und danach abgeleitete Tages- und Stundenwerte. Es importiert weder eine Datei noch ruft es in diesem Pfad Aprocon ab.
Der Lauf hat mehrere Schreibphasen ohne gemeinsame Transaktion. Er kann KRMischSteuerSatz ab dem Startdatum systemübergreifend neu bilden und UmsätzeIstStunde anhand des gesamten aktuellen SCHNITT_Umsatz-Bestands löschen und neu schreiben. Dieses Programm füllt SCHNITT_Umsatz selbst nicht. Prüfe diese Tabelle vor einem Testlauf.
DATUM ist die einschließlich geltende Untergrenze ohne registrierten Standardwert. PEP4 wertet deutsche Datumsangaben, Tagesversätze und Datumsmuster aus; einige Quartalsmuster sind im untersuchten Code fehlerhaft. Es gibt keine Eingangsdatei.
Der Ablauf lautet: CalcKrMischSteuerSatz → dbo.TRANS_KasseKBToUmsatz → spCalcUmsatzIst. Die Mischsteuerberechnung liest KRBons (SystemKennung, Filiale, Datum, BetragBrutto, BetragNetto), löscht KRMischSteuerSatz ab DATUM und fügt je System/Filiale/Tag einen Brutto-/Nettofaktor ein. Für System A schreibt sie außerdem Umsätze.IstKassenBerichtNetto aus IstKassenBericht geteilt durch den Faktor; dafür gibt es keinen Fixierungsschutz.
Die Hauptprozedur liest Umsätze.IstKassenBericht und IstKassenBerichtNetto und aktualisiert Umsätze.Ist und IstNetto. Sie trifft bestehende Zeilen ab DATUM nur für PEP-Gruppen mit SRC A oder R. Sie fügt keine fehlenden Tageszeilen an.
spCalcUmsatzIst aktualisiert abgeleitete Gruppen mit PepGruppen.AusPepGruppenUmsatz=1: Sie liest gültige UmsKstGr-Zuordnungen und schreibt gewichtete Summen in Umsätze.Ist und Kassierdauer. Danach werden Stundenzeilen in UmsätzeIstStunde ab dem Minimum von SCHNITT_Umsatz.Datum gelöscht und aus SCHNITT_Umsatz (Datum, Kostenstelle, PreisBrutto) neu eingefügt. Der Stundenwert verwendet hier keinen Zuordnungs-Prozentfaktor.
| Einstellung | Code-Default | Wirkung |
|---|---|---|
SCHNITT_KR_UmsatzFixedBeachten | True | Schützt bei True die Hauptkopie auf IstFixed=0; bei False kann die Hauptkopie auch fixierte Zeilen treffen. Die nachgelagerte Berechnung prüft unabhängig davon IstFixed=0. |
SQL_TIMEOUT | 60 | Timeout des äußeren SQL-Aufrufs einschließlich der aufgerufenen SQL-Kette. |
GLOBAL_LOGLEVEL, GLOBAL_LOGLEVELEVLOG | 50, 0 | Protokollierung, nicht die Umsatzberechnung. |
Die cSchnitt_Basis kann zusätzlich Mail-/API-Rückmeldungen nach MAIL_SCHNITTSTELLEONSUCCESS, MAIL_SCHNITTSTELLEONERROR, SCHNITT_MELDUNG_SchnittstelleOnSuccess und SCHNITT_MELDUNG_SchnittstelleOnError auslösen. Ziel und SMTP-Verhalten hängen von MAIL_SCHNITTSTELLETO, MAIL_SMTP_SERVER, MAIL_USER, MAIL_PASS, MAIL_USEDEFAULTCREDENTIALS, MAIL_SSL, MAIL_TESTADRESSE, MAIL_FROM und MAIL_FROM_NAME ab. Diese Einstellungen verändern keine Fachdaten. MANUELL und SILENT begrenzen Rückmeldungen.
Die Hauptkopie hat keine obere Datumsgrenze. Die Summengruppen-Neuberechnung endet dagegen bei GETDATE(). Die Stundenlöschung richtet sich nicht nach DATUM, sondern nach dem Minimum des globalen Stagingbestands. Mehrere Zeitstempel derselben Stunde können beim Neuaufbau einen Schlüsselfehler auslösen. Ein Fehler nach einer früheren Phase rollt deren Änderungen nicht automatisch zurück. Prüfe KRMischSteuerSatz, Umsätze und UmsätzeIstStunde getrennt.
| Merkmal | Wert |
|---|---|
| Programmkennung | 1016 / TransUmsatzKBToUmsatz |
| Einstieg | cSchnittKRApc.Trans_KasseKBToUmsatz |
| Fachliche SQL-Kette | CalcKrMischSteuerSatz → dbo.TRANS_KasseKBToUmsatz → spCalcUmsatzIst |
| Fachliche Ausgänge | KRMischSteuerSatz DELETE/INSERT; Umsätze.IstKassenBerichtNetto, Ist, IstNetto, Kassierdauer UPDATE; UmsätzeIstStunde DELETE/INSERT |
| Kein direkter Dateieingang | SCHNITT_Umsatz wird gelesen, hier nicht befüllt. |
Am 25.09.2026 aus der statischen Analyse des Quellcommits f1d82a003b62f2658f06eaa943dc685ab219bdf3 übernommen. Die Analyse wurde am 18.09.2026 erstellt; kein Lauf oder produktiver Datenbankstand bestätigt.