====== Schnittstelle 1017 – Bonumsatz in Umsatz übernehmen ====== Das Programm **1017** kopiert gespeicherte Bonumsätze in vorhandene Tagesumsätze. Danach berechnet es abgeleitete Gruppen und Stundenwerte. Es ruft in diesem Pfad weder Aprocon ab noch liest es eine Eingangsdatei. ''spCalcUmsatzIst'' löscht und schreibt Stundenwerte aus dem **gesamten** aktuellen ''SCHNITT_Umsatz''-Bestand. 1017 füllt diese Stagingtabelle nicht selbst. Der Stundenbereich kann deshalb vom gewählten ''DATUM'' abweichen. Prüfe den Stagingbestand vor einem Testlauf. ===== Eingang und Ablauf ===== ''DATUM'' ist die einschließlich geltende Untergrenze ohne registrierten Standardwert. PEP4 wertet absolute deutsche Daten, Tagesversätze und Datumsmuster aus; einige Quartalsmuster sind im untersuchten Code fehlerhaft. Keine Eingangs- oder Ausgangsdatei. ''dbo.TRANS_KasseBonToUmsatz'' liest ''Umsätze.IstKassenBon'' und ''IstKassenBonNetto'' und schreibt diese Werte in ''Umsätze.Ist'' und ''IstNetto''. Die Hauptkopie betrifft nur vorhandene Zeilen ab ''DATUM'' mit ''PepGruppen.SRC'' A oder R. Es werden keine Tageszeilen eingefügt. Danach ruft PEP4 ''spCalcUmsatzIst(DATUM, GETDATE())'' auf. Die Folgeprozedur liest ''UmsKstGr'' (''Kst'', ''Gr'', ''Prozent'', ''von'', ''bis2'') und ''PepGruppen.AusPepGruppenUmsatz''. Sie schreibt gewichtete Werte in ''Umsätze.Ist'' und ''Kassierdauer'' für abgeleitete Gruppen. Sie liest außerdem ''SCHNITT_Umsatz.Datum'', ''Kostenstelle'' und ''PreisBrutto''; ''UmsätzeIstStunde''-Zeilen werden ab dem Minimum dieses Stagings gelöscht und anschließend nach Datum, Gruppe und Stunde eingefügt. Für Stunden wird kein Zuordnungs-Prozentfaktor angewendet. ===== Einstellungen ===== ^ Einstellung ^ Code-Default ^ Wirkung ^ | ''SCHNITT_KR_UmsatzFixedBeachten'' | ''True'' | Schützt bei ''True'' die Hauptkopie auf ''IstFixed=0''. Bei ''False'' kann sie auch fixierte Zeilen treffen. 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. Vergleiche Tages- und Stundenwerte getrennt. ===== Technische Referenz ===== ^ Merkmal ^ Wert ^ | Programmkennung | ''1017'' / ''TransUmsatzBonToUmsatz'' | | Einstieg | ''cSchnittKRApc.Trans_KasseBonToUmsatz'' | | Fachliche SQL-Kette | ''dbo.TRANS_KasseBonToUmsatz'' → ''spCalcUmsatzIst'' | | Fachliche Ausgänge | UPDATE ''Umsätze.Ist'', ''IstNetto'', ''Kassierdauer''; DELETE/INSERT ''UmsätzeIstStunde'' | | Fachliche Quellen | ''Umsätze.IstKassenBon'', ''IstKassenBonNetto''; ''PepGruppen''; ''UmsKstGr''; ''SCHNITT_Umsatz'' | ===== Siehe auch ===== * [[schnittstellen:1016|Kassenbericht übernehmen (1016)]] * [[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.