kundenkarte/ajax/export_wiring_diagram_pdf.php
data f7fe80f894 docs: ChangeLog 11.2, Version bump
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 14:35:44 +01:00

60 lines
1.9 KiB
PHP
Executable file

<?php
/* Copyright (C) 2026 Alles Watt lauft
*
* Leitungslaufplan PDF-Export (Stromlaufplan in aufgelöster Darstellung)
* Separater Endpoint - kann ohne Auswirkungen entfernt werden.
*/
$res = 0;
if (!$res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php";
if (!$res && file_exists("../../../main.inc.php")) $res = @include "../../../main.inc.php";
if (!$res && file_exists("../../../../main.inc.php")) $res = @include "../../../../main.inc.php";
if (!$res) die("Include of main fails");
require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
dol_include_once('/kundenkarte/class/anlage.class.php');
dol_include_once('/kundenkarte/lib/wiring_diagram.lib.php');
$langs->loadLangs(array('companies', 'kundenkarte@kundenkarte'));
// Parameter
$anlageId = GETPOSTINT('anlage_id');
$format = GETPOST('format', 'alpha') ?: 'A3';
$orientation = GETPOST('orientation', 'alpha') ?: 'L';
// Rechte-Check
if (!$user->hasRight('kundenkarte', 'read')) {
accessforbidden();
}
// Anlage laden
$anlage = new Anlage($db);
if ($anlage->fetch($anlageId) <= 0) {
die('Anlage nicht gefunden');
}
// Kunde laden
$societe = new Societe($db);
$societe->fetch($anlage->fk_soc);
// Analyse
$analyzer = new WiringDiagramAnalyzer($db, $anlageId);
$analyzer->loadData();
$analyzer->analyze();
// PDF erstellen
$pdf = pdf_getInstance();
$pdf->SetCreator('Dolibarr - KundenKarte Leitungslaufplan');
$pdf->SetAuthor($user->getFullName($langs));
$pdf->SetTitle('Leitungslaufplan - '.$anlage->label);
// Renderer
$renderer = new WiringDiagramRenderer($pdf, $analyzer, $anlage, $societe, $user, $format, $orientation);
$renderer->render();
$renderer->renderAbgangTabelle();
$renderer->renderLegende();
// PDF ausgeben
$filename = 'Leitungslaufplan_'.dol_sanitizeFileName($anlage->label).'_'.date('Y-m-d').'.pdf';
$pdf->Output($filename, 'D');