====== Schnittstelle 1018 – Kassenumsatz in Umsatz übernehmen ====== Das Programm **1018** kopiert gespeicherte Kassenumsätze in vorhandene Tagesumsätze. Danach werden abgeleitete Gruppen und Stundenwerte berechnet. Es ruft in diesem Pfad weder Aprocon ab noch liest es eine Datei. Die Stundenneubildung liest den **gesamten** aktuellen ''SCHNITT_Umsatz''-Bestand und kann ''UmsätzeIstStunde'' ab dessen frühestem Datum löschen. 1018 befüllt ''SCHNITT_Umsatz'' selbst nicht. Teste diesen Datenstand und die Auswirkungen in einer isolierten Datenbankkopie. ===== 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. Keine Eingangs- oder Ausgangsdatei. ''dbo.TRANS_KasseToUmsatz'' liest ''Umsätze.IstKasse'' und ''IstKasseNetto'' und aktualisiert damit ''Umsätze.Ist'' und ''IstNetto''. Die Hauptkopie trifft bestehende Zeilen ab ''DATUM'' für ''PepGruppen.SRC'' A oder R; sie fügt keine Tageszeilen an. Danach ruft PEP4 ''spCalcUmsatzIst(DATUM, GETDATE())'' auf. Die Folgeprozedur liest ''PepGruppen.AusPepGruppenUmsatz'' und gültige ''UmsKstGr''-Zuordnungen (''Kst'', ''Gr'', ''Prozent'', ''von'', ''bis2''). Sie schreibt gewichtete Summen in ''Umsätze.Ist'' und ''Kassierdauer''. Aus ''SCHNITT_Umsatz.Datum'', ''Kostenstelle'' und ''PreisBrutto'' werden Stundenwerte neu gebildet: ''UmsätzeIstStunde'' wird ab dem Minimum des Stagings gelöscht und danach mit ''Datum'', ''GruppenID'', ''Stunde'' und ''Umsatz'' befüllt. Der Stundenwert verwendet keinen Zuordnungs-Prozentfaktor. ===== Einstellungen ===== ^ Einstellung ^ Code-Default ^ Wirkung ^ | ''SCHNITT_KR_UmsatzFixedBeachten'' | ''True'' | Bei ''True'' schützt ''IstFixed=0'' die Hauptkopie; bei ''False'' können fixierte Zeilen betroffen sein. Die Folgeprozedur schützt ihre Zielzeilen unabhängig davon mit ''IstFixed=0''. | | ''SQL_TIMEOUT'' | 60 | Timeout des äußeren SQL-Aufrufs. | | ''GLOBAL_LOGLEVEL'', ''GLOBAL_LOGLEVELEVLOG'' | 50, 0 | Protokollierung. | Über ''cSchnitt_Basis'' können Rückmeldungen von ''MAIL_SCHNITTSTELLEONSUCCESS'', ''MAIL_SCHNITTSTELLEONERROR'', ''SCHNITT_MELDUNG_SchnittstelleOnSuccess'' und ''SCHNITT_MELDUNG_SchnittstelleOnError'' abhängen. Der Versand verwendet gegebenenfalls ''MAIL_SCHNITTSTELLETO'', ''MAIL_SMTP_SERVER'', ''MAIL_USER'', ''MAIL_PASS'', ''MAIL_USEDEFAULTCREDENTIALS'', ''MAIL_SSL'', ''MAIL_TESTADRESSE'', ''MAIL_FROM'' und ''MAIL_FROM_NAME''. Diese Werte ändern keine Umsatzfelder. ''MANUELL'' und ''SILENT'' begrenzen Rückmeldungen. ===== Ergebnis und Grenzen ===== Die Hauptkopie hat keine obere Datumsgrenze; die Summengruppenberechnung endet bei ''GETDATE()''. Die Stundenneubildung kann Daten außerhalb dieses Intervalls berühren. Mehrere Zeitstempel derselben Stunde können einen Schlüsselkonflikt auslösen. Es gibt keine gemeinsame Transaktion; ein späterer Fehler kann einen Teilstand hinterlassen. Prüfe Tages- und Stundenwerte getrennt. ===== Technische Referenz ===== ^ Merkmal ^ Wert ^ | Programmkennung | ''1018'' / ''TransUmsatzKasseToUmsatz'' | | Einstieg | ''cSchnittKRApc.Trans_KasseToUmsatz'' | | Fachliche SQL-Kette | ''dbo.TRANS_KasseToUmsatz'' → ''spCalcUmsatzIst'' | | Fachliche Ausgänge | UPDATE ''Umsätze.Ist'', ''IstNetto'', ''Kassierdauer''; DELETE/INSERT ''UmsätzeIstStunde'' | | Fachliche Quellen | ''Umsätze.IstKasse'', ''IstKasseNetto''; ''PepGruppen''; ''UmsKstGr''; ''SCHNITT_Umsatz'' | ===== Siehe auch ===== * [[schnittstellen:1016|Kassenbericht übernehmen (1016)]] * [[schnittstellen:1017|Bonumsatz übernehmen (1017)]] * [[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.