no message

This commit is contained in:
2025-12-05 11:59:01 +01:00
parent 1d4914dbf1
commit 353b8afb3d
2 changed files with 35 additions and 1 deletions

View File

@@ -4,6 +4,17 @@
"type": "Label", "type": "Label",
"caption": "🧾 Abrechnungseinstellungen" "caption": "🧾 Abrechnungseinstellungen"
}, },
{
"type": "Image",
"name": "Logo",
"caption": "Firmenlogo"
},
{
"type": "ValidationTextBox",
"name": "FooterText",
"caption": "Fusszeile"
},
{ {

View File

@@ -3,6 +3,19 @@ declare(strict_types=1);
include_once __DIR__ . '/libs/vendor/autoload.php'; // TCPDF via Composer include_once __DIR__ . '/libs/vendor/autoload.php'; // TCPDF via Composer
class PDFWithFooter extends TCPDF {
public $footerText = '';
public function Footer() {
$this->SetY(-15);
$this->SetFont('dejavusans', '', 8);
$this->Cell(0, 10, $this->footerText, 0, 0, 'C');
}
}
class Abrechnung extends IPSModule class Abrechnung extends IPSModule
{ {
public function Create() public function Create()
@@ -13,6 +26,8 @@ class Abrechnung extends IPSModule
$this->RegisterPropertyString('PowerMeters', '[]'); $this->RegisterPropertyString('PowerMeters', '[]');
$this->RegisterPropertyString('WaterMeters', '[]'); $this->RegisterPropertyString('WaterMeters', '[]');
$this->RegisterPropertyString('Tariffs', '[]'); $this->RegisterPropertyString('Tariffs', '[]');
$this->RegisterPropertyString('Logo', '');
$this->RegisterPropertyString('FooterText', 'Belevo AG • 6122 Menznau • www.belevo.ch');
$this->RegisterVariableInteger('FromDate', 'Startdatum', '~UnixTimestamp', 1); $this->RegisterVariableInteger('FromDate', 'Startdatum', '~UnixTimestamp', 1);
$this->RegisterVariableInteger('ToDate', 'Enddatum', '~UnixTimestamp', 2); $this->RegisterVariableInteger('ToDate', 'Enddatum', '~UnixTimestamp', 2);
@@ -92,7 +107,8 @@ class Abrechnung extends IPSModule
// Stromkosten einmal für alle User berechnen (15-Minuten-Logik) // Stromkosten einmal für alle User berechnen (15-Minuten-Logik)
$this->CalculateAllPowerCosts($power, $tariffs, $from, $to); $this->CalculateAllPowerCosts($power, $tariffs, $from, $to);
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); $pdf = new PDFWithFooter('P', 'mm', 'A4', true, 'UTF-8', false);
$pdf->footerText = $this->ReadPropertyString('FooterText');
$pdf->SetCreator('IPSymcon Abrechnung'); $pdf->SetCreator('IPSymcon Abrechnung');
$pdf->SetMargins(15, 15, 15); $pdf->SetMargins(15, 15, 15);
$pdf->SetAutoPageBreak(true, 20); $pdf->SetAutoPageBreak(true, 20);
@@ -107,6 +123,13 @@ class Abrechnung extends IPSModule
private function BuildUserInvoice($pdf, $user, $power, $water, $tariffs, $from, $to) private function BuildUserInvoice($pdf, $user, $power, $water, $tariffs, $from, $to)
{ {
$logoData = $this->ReadPropertyString('Logo');
if ($logoData !== '') {
$img = base64_decode($logoData);
$pdf->Image('@' . $img, 15, 10, 40);
$pdf->Ln(25);
}
$pdf->AddPage(); $pdf->AddPage();
// Kopfbereich // Kopfbereich