From 67a58ed1bc879d23c071c9ee315cce9f8e3b5cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=A4fliger?= Date: Wed, 5 Nov 2025 09:56:11 +0100 Subject: [PATCH] no message --- Abrechnung/module.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Abrechnung/module.php b/Abrechnung/module.php index 858e616..0496c51 100644 --- a/Abrechnung/module.php +++ b/Abrechnung/module.php @@ -307,10 +307,25 @@ private function AddMeterToPDFRow($meter, $tariffs, $from, $to, $type) } // 2️⃣ Zeitstempel konvertieren und sortieren - foreach ($filteredTariffs as &$t) { + foreach ($filteredTariffs as &$t) {// --- Fix: falls Start/End als verschachteltes JSON vorliegen --- + if (is_string($t['start']) && str_starts_with(trim($t['start']), '{')) { + $startObj = json_decode($t['start'], true); + if (is_array($startObj)) { + $t['start'] = sprintf('%04d-%02d-%02d 00:00:00', $startObj['year'], $startObj['month'], $startObj['day']); + } + } + if (is_string($t['end']) && str_starts_with(trim($t['end']), '{')) { + $endObj = json_decode($t['end'], true); + if (is_array($endObj)) { + $t['end'] = sprintf('%04d-%02d-%02d 23:59:59', $endObj['year'], $endObj['month'], $endObj['day']); + } + } + + // --- danach wie bisher --- $t['start_ts'] = is_numeric($t['start']) ? intval($t['start']) : strtotime($t['start']); $t['end_ts'] = is_numeric($t['end']) ? intval($t['end']) : strtotime($t['end']); + if (!$t['start_ts'] || !$t['end_ts']) { IPS_LogMessage('Abrechnung', "⚠ Ungültiger Tarifzeitraum in Tarifdefinition: " . json_encode($t)); } else {