no message

This commit is contained in:
2025-11-04 13:54:19 +01:00
parent 32e6c6022d
commit 6bf72b7fca

View File

@@ -106,35 +106,31 @@ public function GenerateInvoices()
{ {
$from = GetValue($this->GetIDForIdent('FromDate')); $from = GetValue($this->GetIDForIdent('FromDate'));
$to = GetValue($this->GetIDForIdent('ToDate')); $to = GetValue($this->GetIDForIdent('ToDate'));
IPS_LogMessage('Abrechnung', 'Users Raw: ' . $this->ReadPropertyString('Users'));
IPS_LogMessage('Abrechnung', '🕒 Starte GenerateInvoices()'); IPS_LogMessage('Abrechnung', '🕒 Starte GenerateInvoices()');
IPS_LogMessage('Abrechnung', 'Zeitraum von ' . date('d.m.Y H:i', $from) . ' bis ' . date('d.m.Y H:i', $to)); IPS_LogMessage('Abrechnung', 'Zeitraum von ' . date('d.m.Y H:i', $from) . ' bis ' . date('d.m.Y H:i', $to));
if ($from >= $to) {
IPS_LogMessage('Abrechnung', '❌ Ungültiger Zeitraum: Start >= Ende');
return false;
}
$users = json_decode($this->ReadPropertyString('Users'), true); $users = json_decode($this->ReadPropertyString('Users'), true);
$power = json_decode($this->ReadPropertyString('PowerMeters'), true); $power = json_decode($this->ReadPropertyString('PowerMeters'), true);
$water = json_decode($this->ReadPropertyString('WaterMeters'), true); $water = json_decode($this->ReadPropertyString('WaterMeters'), true);
$tariffs = json_decode($this->ReadPropertyString('Tariffs'), true); $tariffs = json_decode($this->ReadPropertyString('Tariffs'), true);
if ($users === null) IPS_LogMessage('Abrechnung', '⚠️ Users konnte nicht geparst werden'); IPS_LogMessage('Abrechnung', 'Benutzer gefunden: ' . count($users));
if ($power === null) IPS_LogMessage('Abrechnung', '⚠️ PowerMeters konnte nicht geparst werden'); IPS_LogMessage('Abrechnung', 'Stromzähler: ' . count($power) . ', Wasserzähler: ' . count($water) . ', Tarife: ' . count($tariffs));
if ($water === null) IPS_LogMessage('Abrechnung', '⚠️ WaterMeters konnte nicht geparst werden');
if ($tariffs === null) IPS_LogMessage('Abrechnung', '⚠️ Tariffs konnte nicht geparst werden');
if (empty($users)) { // --- TEST TCPDF VERFÜGBAR? ---
IPS_LogMessage('Abrechnung', '❌ Keine Benutzer definiert → Abbruch'); if (!class_exists('TCPDF')) {
IPS_LogMessage('Abrechnung', '❌ TCPDF fehlt prüfe libs/vendor/autoload.php');
return false; return false;
} else {
IPS_LogMessage('Abrechnung', '✅ TCPDF-Klasse gefunden');
} }
IPS_LogMessage('Abrechnung', '✅ Benutzer: ' . count($users) . ', Stromzähler: ' . count($power) . ', Wasserzähler: ' . count($water) . ', Tarife: ' . count($tariffs)); // --- Jetzt starten wir den PDF-Teil ---
try {
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
IPS_LogMessage('Abrechnung', '📄 TCPDF-Objekt erstellt');
$pdf->SetCreator('IPSymcon Abrechnung'); $pdf->SetCreator('IPSymcon Abrechnung');
$pdf->SetAuthor('Abrechnung Modul'); $pdf->SetAuthor('Abrechnung Modul');
$pdf->SetTitle('Zählerabrechnung'); $pdf->SetTitle('Zählerabrechnung');
@@ -142,6 +138,22 @@ public function GenerateInvoices()
$pdf->SetAutoPageBreak(true, 20); $pdf->SetAutoPageBreak(true, 20);
$pdf->SetFont('dejavusans', '', 10); $pdf->SetFont('dejavusans', '', 10);
foreach ($users as $user) {
IPS_LogMessage('Abrechnung', '→ Erstelle Seite für Benutzer: ' . $user['name']);
$pdf->AddPage();
$pdf->writeHTML("<h2>Rechnung für {$user['name']}</h2>");
$pdf->writeHTML("<p>{$user['address']}<br>{$user['city']}</p>");
}
$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) { foreach ($users as $user) {
$pdf->AddPage(); $pdf->AddPage();
$pdf->writeHTML("<h2>Rechnung für {$user['name']}</h2>"); $pdf->writeHTML("<h2>Rechnung für {$user['name']}</h2>");