====== Schnittstelle 1016 – Kassenbericht in Umsatz übernehmen ====== 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. ===== Eingang und Ablauf ===== ''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. ===== Einstellungen ===== ^ 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. ===== Ergebnis und Grenzen ===== 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. ===== Technische Referenz ===== ^ 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. | ===== Siehe auch ===== * [[schnittstellen:1017|Bonumsatz übernehmen (1017)]] * [[schnittstellen:1018|Kassenumsatz übernehmen (1018)]] * [[schnittstellen:schnittstellen|Übersicht der dokumentierten Schnittstellen]] ===== Prüfstand ===== 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.