no message
This commit is contained in:
@@ -115,45 +115,18 @@ public function GenerateInvoices()
|
|||||||
$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);
|
||||||
|
|
||||||
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')) {
|
if (!class_exists('TCPDF')) {
|
||||||
IPS_LogMessage('Abrechnung', '❌ TCPDF fehlt – prüfe libs/vendor/autoload.php');
|
IPS_LogMessage('Abrechnung', '❌ TCPDF fehlt – prüfe libs/vendor/autoload.php');
|
||||||
return false;
|
return false;
|
||||||
} else {
|
|
||||||
IPS_LogMessage('Abrechnung', '✅ TCPDF-Klasse gefunden');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Jetzt starten wir den PDF-Teil ---
|
|
||||||
try {
|
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->SetTitle('Zählerabrechnung');
|
|
||||||
$pdf->SetMargins(15, 15, 15);
|
$pdf->SetMargins(15, 15, 15);
|
||||||
$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>");
|
||||||
@@ -173,13 +146,11 @@ public function GenerateInvoices()
|
|||||||
|
|
||||||
$total = 0.0;
|
$total = 0.0;
|
||||||
|
|
||||||
// Stromzähler
|
|
||||||
foreach ($power as $m) {
|
foreach ($power as $m) {
|
||||||
if ($m['user_id'] != $user['id']) continue;
|
if ($m['user_id'] != $user['id']) continue;
|
||||||
$total += $this->AddMeterToPDF($pdf, $m, $tariffs, $from, $to, 'Strombezug');
|
$total += $this->AddMeterToPDF($pdf, $m, $tariffs, $from, $to, 'Strombezug');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wasserzähler
|
|
||||||
foreach ($water as $m) {
|
foreach ($water as $m) {
|
||||||
if ($m['user_id'] != $user['id']) continue;
|
if ($m['user_id'] != $user['id']) continue;
|
||||||
$type = $m['meter_type'] ?? 'Warmwasser';
|
$type = $m['meter_type'] ?? 'Warmwasser';
|
||||||
@@ -191,9 +162,15 @@ public function GenerateInvoices()
|
|||||||
$pdf->writeHTML("<h3>Gesamtsumme: " . number_format($total, 2) . " CHF</h3>");
|
$pdf->writeHTML("<h3>Gesamtsumme: " . number_format($total, 2) . " CHF</h3>");
|
||||||
}
|
}
|
||||||
|
|
||||||
IPS_LogMessage('Abrechnung', 'PDF-Daten fertiggestellt');
|
IPS_LogMessage('Abrechnung', '✅ PDF-Daten fertiggestellt');
|
||||||
return $pdf->Output('Abrechnung.pdf', 'S');
|
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)
|
private function AddMeterToPDF($pdf, $meter, $tariffs, $from, $to, $type)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user