From 475214050d79e48cac7cbfb7ede27aeff39a83e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=A4fliger?= Date: Tue, 4 Nov 2025 14:16:25 +0100 Subject: [PATCH] no message --- Abrechnung/module.php | 37 +++++++------------------------------ 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/Abrechnung/module.php b/Abrechnung/module.php index 92fe751..9b72b9d 100644 --- a/Abrechnung/module.php +++ b/Abrechnung/module.php @@ -115,45 +115,18 @@ public function GenerateInvoices() $water = json_decode($this->ReadPropertyString('WaterMeters'), true); $tariffs = json_decode($this->ReadPropertyString('Tariffs'), true); - IPS_LogMessage('Abrechnung', 'Benutzer gefunden: ' . count($users)); - IPS_LogMessage('Abrechnung', 'Stromzähler: ' . count($power) . ', Wasserzähler: ' . count($water) . ', Tarife: ' . count($tariffs)); - - // --- TEST TCPDF VERFÜGBAR? --- if (!class_exists('TCPDF')) { IPS_LogMessage('Abrechnung', '❌ TCPDF fehlt – prüfe libs/vendor/autoload.php'); return false; - } else { - IPS_LogMessage('Abrechnung', '✅ TCPDF-Klasse gefunden'); } - // --- Jetzt starten wir den PDF-Teil --- try { $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); - IPS_LogMessage('Abrechnung', '📄 TCPDF-Objekt erstellt'); - $pdf->SetCreator('IPSymcon Abrechnung'); - $pdf->SetAuthor('Abrechnung Modul'); - $pdf->SetTitle('Zählerabrechnung'); $pdf->SetMargins(15, 15, 15); $pdf->SetAutoPageBreak(true, 20); $pdf->SetFont('dejavusans', '', 10); - foreach ($users as $user) { - IPS_LogMessage('Abrechnung', '→ Erstelle Seite für Benutzer: ' . $user['name']); - $pdf->AddPage(); - $pdf->writeHTML("

Rechnung für {$user['name']}

"); - $pdf->writeHTML("

{$user['address']}
{$user['city']}

"); - } - - $content = $pdf->Output('Abrechnung.pdf', 'S'); - IPS_LogMessage('Abrechnung', '✅ PDF erstellt (' . strlen($content) . ' Bytes)'); - return $content; - - } catch (Throwable $e) { - IPS_LogMessage('Abrechnung', '💥 Exception in TCPDF: ' . $e->getMessage()); - return false; - } -} foreach ($users as $user) { $pdf->AddPage(); $pdf->writeHTML("

Rechnung für {$user['name']}

"); @@ -173,13 +146,11 @@ public function GenerateInvoices() $total = 0.0; - // Stromzähler foreach ($power as $m) { if ($m['user_id'] != $user['id']) continue; $total += $this->AddMeterToPDF($pdf, $m, $tariffs, $from, $to, 'Strombezug'); } - // Wasserzähler foreach ($water as $m) { if ($m['user_id'] != $user['id']) continue; $type = $m['meter_type'] ?? 'Warmwasser'; @@ -191,9 +162,15 @@ public function GenerateInvoices() $pdf->writeHTML("

Gesamtsumme: " . number_format($total, 2) . " CHF

"); } - IPS_LogMessage('Abrechnung', 'PDF-Daten fertiggestellt'); + IPS_LogMessage('Abrechnung', '✅ PDF-Daten fertiggestellt'); return $pdf->Output('Abrechnung.pdf', 'S'); + + } catch (Throwable $e) { + IPS_LogMessage('Abrechnung', '💥 Exception in TCPDF: ' . $e->getMessage()); + return false; } +} + private function AddMeterToPDF($pdf, $meter, $tariffs, $from, $to, $type) {