From 6650164acc500a78317f5fca7619b66ffbf41e83 Mon Sep 17 00:00:00 2001 From: DanielHaefliger Date: Fri, 12 Dec 2025 08:54:06 +0100 Subject: [PATCH] no message --- Abrechnung/module.php | 150 +++++++++++++++++++++++++----------------- 1 file changed, 90 insertions(+), 60 deletions(-) diff --git a/Abrechnung/module.php b/Abrechnung/module.php index 1bdb371..39c29f8 100644 --- a/Abrechnung/module.php +++ b/Abrechnung/module.php @@ -398,69 +398,99 @@ class Abrechnung extends IPSModule } - private function GetCalculatedPowerCosts($userId) - { - $html = " - - - - - - - - - - - - - - -"; +private function GetCalculatedPowerCosts($userId) +{ + $html = " + - if (empty($this->powerCostCache) || !isset($this->powerCostCache[$userId])) { - $html .= "
IDImportExportZEV-HausNetz-HausSolar-NetzSolar-ZEVKauf-SolarKauf-NetzVerkauf-NetzVerkauf-ZEVTotal CHF
Keine Stromzähler für diesen Benutzer

"; - return ['html' => $html, 'sum' => 0.0]; + + + + + + + + + + + + + + + "; + + if (empty($this->powerCostCache) || !isset($this->powerCostCache[$userId])) { + $html .= "
IDImport (kWh)Export (kWh)ZEV-Haus (kWh)Netz-Haus (kWh)Solar-Netz (kWh)Solar-ZEV (kWh)Kauf Solar (CHF)Kauf Netz (CHF)Verkauf Netz (CHF)Verkauf ZEV (CHF)Total CHF
Keine Stromzähler für diesen Benutzer
"; + return ['html' => $html, 'sum' => 0.0]; + } + + $sum = 0.0; + $rowIndex = 0; + + foreach ($this->powerCostCache[$userId] as $name => $a) { + + $subtotal = $a['cost_grid'] + $a['cost_solar'] - ($a['rev_feedin'] + $a['rev_zev']); + $sum += $subtotal; + + $rowClass = ($rowIndex % 2 === 0) ? "row-even" : "row-odd"; + $rowIndex++; + + // Datenzeile + $html .= " + {$a['name']} + " . number_format($a['imp'], 3) . " + " . number_format($a['exp'], 3) . " + " . number_format($a['solar_bezug'], 3) . " + " . number_format($a['netz_bezug'], 3) . " + " . number_format($a['solareinspeisung'], 3) . " + " . number_format($a['solarverkauf'], 3) . " + " . number_format($a['cost_solar'], 2) . " + " . number_format($a['cost_grid'], 2) . " + " . number_format($a['rev_feedin'], 2) . " + " . number_format($a['rev_zev'], 2) . " + " . number_format($subtotal, 2) . " + "; + + // Leerzeile zwischen Zählern + $html .= ""; + } + + // Totalzeile + $html .= " + + Total + " . number_format($sum, 2) . " + + "; + + return ['html' => $html, 'sum' => $sum]; } - $sum = 0.0; - - foreach ($this->powerCostCache[$userId] as $name => $a) { - $subtotal = $a['cost_grid'] + $a['cost_solar'] - ($a['rev_feedin']+$a['rev_zev']); - $sum += $subtotal; - - $html .= " - {$a['name']} - " . number_format($a['imp'], 3) . " kWh - " . number_format($a['exp'], 3) . " kWh - " . number_format($a['solar_bezug'], 3) . " kWh - " . number_format($a['netz_bezug'], 3) . " kWh - " . number_format($a['solareinspeisung'], 3) . " kWh - " . number_format($a['solarverkauf'], 3) . " kWh - CHF " . number_format($a['cost_solar'], 2) . ".- - CHF " . number_format($a['cost_grid'], 2) . ".- - CHF " . number_format($a['rev_feedin'], 2) . ".- - CHF " . number_format($a['rev_zev'], 2) . ".- - CHF " . number_format($subtotal, 2) . ".- - "; - } - $html .= " - Total - - - - - - - - - - - CHF " . number_format($sum, 2) . ".- - "; - - return ['html' => $html, 'sum' => $sum]; - } - // ====================== Nebenkosten Wasser/Wärme ====================== private function CalculateAdditionalCosts($waterMeters, $tariffs, $userId, $from, $to)