# Verbrauchskostenreport > Status: Implementiert. Die fachliche Kosten- und Verbrauchsauswertung aus > Enelix 1 wurde ohne EMS-Abhängigkeit mit einer neutralen öffentlichen API > adaptiert. Der Modulpräfix lautet `VKR`. Der Report wird über die Aktion `CreateReport` erstellt und im Medium `ReportPDF` bereitgestellt. ## Lizenzierung Die Freigabe besteht aus einer Grundlizenz und getrennten Kontingenten fuer Stromzaehler und Nebenzaehler. Der konfigurierte Umfang darf die vom Lizenzdienst bestaetigten Mengen nicht ueberschreiten. ## Variablen | Technischer Ident / Anzeige | Typ / Zugriff | Beschreibung | | --- | --- | --- | | `FromDate` / Startdatum | Integer / bedienbar | Unixzeit. | | `ToDate` / Enddatum | Integer / bedienbar | Unixzeit; nach Startdatum. | | `LastResult` / Letzter Report | String / Anzeige | Ergebnisstatus. | | `VisuTariffOverview` / Tarife bearbeiten | String / Anzeige | Bestehende Tarifdarstellung. | | `VisuTariffType` / Tarifart | Integer / bedienbar | Vorhandene Tarifarten. | | `VisuTariffStart` / Tarif Startdatum | Integer / bedienbar | Unixzeit. | | `VisuTariffEnd` / Tarif Enddatum | Integer / bedienbar | Unixzeit. | | `VisuTariffPrice` / Tarifpreis | Float / bedienbar | Rp/Einheit gemäss bestehender Logik. | | `VisuTariffStatus` / Tarifstatus | String / Anzeige | Bearbeitungsergebnis. | | `VisuTariffPayload` / Tarifdaten | String / bedienbar | Interner JSON-Eingang. | | `VisuUserOverview` / Benutzer bearbeiten | String / Anzeige | Benutzerdarstellung. | | `VisuUserStatus` / Benutzerstatus | String / Anzeige | Bearbeitungsergebnis. | ## Properties | Technischer Ident / Anzeige | Typ | Standard / Beschreibung | | --- | --- | --- | | `Lizenzcode` / Lizenzcode | String | leer; wird zur Laufzeit am Lizenzdienst geprueft. | | `Users` / Benutzer | String/JSON | `[]`; Benutzerstruktur. | | `PowerMeters` / Stromzähler | String/JSON | `[]`; Zuordnungen. | | `WaterMeters` / Wasserzähler | String/JSON | `[]`; Zuordnungen. | | `Tariffs` / Tarife | String/JSON | `[]`; Tarifstruktur und Einheiten. | | `LogoMediaID` / Logo | Integer | `0`; Medienobjekt. | | `PropertyText` / Liegenschaft | String | `Liegenschaft`. | | `FooterText` / Fusstext | String | Bestehender editierbarer Text. | | `EnableVAT` / MWST aktiv | Boolean | `false`. | | `VATPercentage` / MWST-Satz | Float | Code-Default `8.1`; kein automatisch gültiger Steuersatz. | | `CreditorName` / Zahlungsempfänger | String | leer; Pflichtfeld bei aktivem QR-Zahlteil. | | `CreditorStreet` / Strasse | String | leer; strukturierter Adressbestandteil. | | `CreditorBuildingNumber` / Hausnummer | String | leer; strukturierter Adressbestandteil. | | `CreditorPostalCode` / PLZ | String | leer; Pflichtfeld bei aktivem QR-Zahlteil. | | `CreditorTown` / Ort | String | leer; Pflichtfeld bei aktivem QR-Zahlteil. | | `CreditorCountry` / Land | String | ISO-2-Code; Standard `CH`. | | `BankIBAN` / IBAN | String | normale CH/LI-IBAN; leer deaktiviert den QR-Zahlteil. | ## Migration der QR-Adressen Bestehende kombinierte Adresswerte werden nicht automatisch aufgeteilt. Vor dem nächsten QR-Report müssen Strasse, Hausnummer, PLZ, Ort und Land kontrolliert und strukturiert gespeichert werden. Bei aktiver IBAN verhindern fehlende Pflichtfelder die Reporterzeugung mit einer verständlichen Fehlermeldung. ## Offene Punkte - Die Kosten- und Verbrauchsauswertung mit anonymisierten Referenzdaten vollständig regressionsprüfen. - Rechtliche und kaufmännische Vorgaben wie MWST-Satz bleiben Projektkonfiguration.