diff --git a/Abrechnung/module.php b/Abrechnung/module.php index 36c46af..13cd516 100644 --- a/Abrechnung/module.php +++ b/Abrechnung/module.php @@ -102,25 +102,36 @@ public function RequestAction($Ident, $Value) // ====================== PDF-Logik ====================== - public function GenerateInvoices() - { - $from = GetValue($this->GetIDForIdent('FromDate')); - $to = GetValue($this->GetIDForIdent('ToDate')); +public function GenerateInvoices() +{ + $from = GetValue($this->GetIDForIdent('FromDate')); + $to = GetValue($this->GetIDForIdent('ToDate')); - if ($from >= $to) { - IPS_LogMessage('Abrechnung', '❌ Ungültiger Zeitraum'); - return false; - } + 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)); - $users = json_decode($this->ReadPropertyString('Users'), true); - $power = json_decode($this->ReadPropertyString('PowerMeters'), true); - $water = json_decode($this->ReadPropertyString('WaterMeters'), true); - $tariffs = json_decode($this->ReadPropertyString('Tariffs'), true); + if ($from >= $to) { + IPS_LogMessage('Abrechnung', '❌ Ungültiger Zeitraum: Start >= Ende'); + return false; + } + + $users = json_decode($this->ReadPropertyString('Users'), true); + $power = json_decode($this->ReadPropertyString('PowerMeters'), true); + $water = json_decode($this->ReadPropertyString('WaterMeters'), true); + $tariffs = json_decode($this->ReadPropertyString('Tariffs'), true); + + if ($users === null) IPS_LogMessage('Abrechnung', '⚠️ Users konnte nicht geparst werden'); + if ($power === null) IPS_LogMessage('Abrechnung', '⚠️ PowerMeters konnte nicht geparst werden'); + 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)) { + IPS_LogMessage('Abrechnung', '❌ Keine Benutzer definiert → Abbruch'); + return false; + } + + IPS_LogMessage('Abrechnung', '✅ Benutzer: ' . count($users) . ', Stromzähler: ' . count($power) . ', Wasserzähler: ' . count($water) . ', Tarife: ' . count($tariffs)); - if (empty($users)) { - IPS_LogMessage('Abrechnung', 'Keine Benutzer vorhanden'); - return false; - } $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); $pdf->SetCreator('IPSymcon Abrechnung');