====== Schnittstelle 1081 – Kassenberichte in Kassengruppen berechnen ====== Das Programm **1081** berechnet Kassengruppenumsätze aus vorhandenen System-A-Kassenberichten. Es liest ''UmsatzKBGeraet'' und ''UmsatzKBWgr'' und schreibt ''UmsatzKgr''. ''Umsätze'' und insbesondere ''Umsätze.Ist'' werden nicht direkt geändert. Vor der Neubildung löscht 1081 alle nichtmanuellen ''UmsatzKgr''-Zeilen ab ''DATUM'' **ohne System- oder Gruppenfilter**. Die anschließende Befüllung berücksichtigt nur System A. Dadurch können vorhandene Zeilen anderer Systeme verschwinden. Teste die Wirkung in einer isolierten Datenbankkopie. ===== Eingang und Berechnung ===== ''DATUM'' ist die einschließlich geltende Untergrenze ohne registrierten Standardwert. PEP4 wertet auch Datumsmuster aus; einige Quartalsmuster sind im untersuchten Code fehlerhaft. Es gibt keine Eingangsdatei. Die Prozedur ''dbo.Calc_UmsatzKGR_FuellenKB'' löscht zunächst ''UmsatzKgr'' mit ''manuell=0'' ab ''DATUM''. Sie ordnet ''UmsatzKBGeraet'' über ''KRFilialenSystemkennung'' und eine Gerätezuordnung einer PEP-Gruppe und Kassengruppe zu. Aus ''Brutto'' und ''Kunden'' entstehen neue Zeilen mit ''UmsatzBrutto'', ''UmsatzNetto'', ''Kunden'' und ''Menge=0''. ''KRMischSteuerSatz.Steuersatz'' dient als Brutto-/Nettofaktor; ein fehlender Faktor wird zu 1. Bestehende manuelle Zielzeilen bleiben und blockieren einen Insert für denselben Schlüssel. Danach liest die Prozedur ''KRKassengruppen.WGRAusnahmen'' und ''UmsatzKBWgr''. Für ausgenommene Warengruppen zieht sie nur Brutto- und Nettobeträge von nichtmanuellen Zielzeilen ab. Mengen und Kunden werden in diesem Schritt nicht abgezogen; entsprechende Updates sind auskommentiert. 1081 ist kein allgemeiner Bizerba-Folgelauf. [[schnittstellen:1082|Bizerba KASS (1082)]] schreibt ''KRKassenberichte'', nicht ''UmsatzKBGeraet''. Auch das Mapping der Fachbefüllung von 1081 verlangt System A. ===== Einstellungen und Befunde ===== ^ Einstellung ^ Code-Default ^ Wirkung ^ | ''SQL_TIMEOUT'' | 60 | Timeout des äußeren SP-Aufrufs. | | ''SCHNITT_KR_UmsatzFixedBeachten'' | ''True'' | Wird als SQL-Parameter übergeben, in der untersuchten Prozedur aber **nicht verwendet**; kein Fixierungsschutz. | | ''GLOBAL_LOGLEVEL'', ''GLOBAL_LOGLEVELEVLOG'' | 50, 0 | Protokollierung. | Die gemeinsame Basis kann abhängig von ''MAIL_SCHNITTSTELLEONSUCCESS'', ''MAIL_SCHNITTSTELLEONERROR'', ''SCHNITT_MELDUNG_SchnittstelleOnSuccess'' und ''SCHNITT_MELDUNG_SchnittstelleOnError'' Rückmeldungen senden. 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 Einstellungen ändern keine Fachwerte. Der Mischsteuer-Join enthält in diesem SQL keinen ''SystemKennung''-Vergleich; mehrfache Treffer können Beträge vervielfachen, Faktor 0 kann eine Division durch 0 auslösen. Gerätezuordnungen mit überlappender Gültigkeit können ebenfalls vervielfachen. Es gibt keine gemeinsame Transaktion über Löschung, Anlage und Korrektur; ein Fehler kann einen Teilstand hinterlassen. ===== Technische Referenz ===== ^ Merkmal ^ Wert ^ | Programmkennung | ''1081'' / ''Calc_KBToKGR'' | | Einstieg | ''cSchnittKRApc.Calc_KBToKGR'' | | Fachliche SQL-Prozedur | ''dbo.Calc_UmsatzKGR_FuellenKB'' | | Eingänge | ''UmsatzKBGeraet'', ''UmsatzKBWgr'', ''KRKassengruppen'', Gerätezuordnung, ''KRMischSteuerSatz'', Filialmapping | | Ausgang | ''UmsatzKgr'': DELETE nichtmanueller Zeilen, INSERT und UPDATE; kein ''Umsätze''-UPDATE | ===== Siehe auch ===== * [[schnittstellen:1082|Bizerba-KASS-Dateien importieren (1082)]] * [[schnittstellen:schnittstellen|Übersicht der dokumentierten Schnittstellen]] ===== Prüfstand ===== Am 25.09.2026 aus der statischen Analyse des Quellcommits ''f1d82a003b62f2658f06eaa943dc685ab219bdf3'' übernommen. Analyse vom 18.09.2026; kein Lauf oder produktiver Datenbankstand bestätigt.