From 81682841a8c800f2c84e3df4a1ec36b51b0cf455 Mon Sep 17 00:00:00 2001 From: fds2610-bot Date: Tue, 5 May 2026 15:40:42 +0200 Subject: [PATCH] Fix: Rechnungs-PDF in Belegansicht inline anzeigen statt herunterladen --- src/Controllers/BelegController.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/Controllers/BelegController.php b/src/Controllers/BelegController.php index 471cbfb..809d885 100644 --- a/src/Controllers/BelegController.php +++ b/src/Controllers/BelegController.php @@ -230,9 +230,28 @@ class BelegController $beleg = Beleg::find((int)$params['id']); if (!$beleg) { http_response_code(404); return; } - // Beleg ohne physische Datei → PDF der verknüpften Rechnung ausliefern + // Beleg ohne physische Datei → PDF der verknüpften Rechnung inline ausliefern if (empty($beleg['storage_path']) && !empty($beleg['invoice_id'])) { - header('Location: /invoices/' . (int)$beleg['invoice_id'] . '/pdf'); + $invoice = \Steuerkram\Models\Invoice::find((int)$beleg['invoice_id']); + if (!$invoice) { http_response_code(404); return; } + + if (!empty($invoice['storno_of_id'])) { + $original = \Steuerkram\Models\Invoice::find((int)$invoice['storno_of_id']); + if ($original) { + $invoice['original_rechnungs_nr'] = $original['rechnungs_nr']; + $invoice['original_rechnungs_datum'] = $original['rechnungs_datum']; + } + } + + $lines = \Steuerkram\Models\Invoice::lines((int)$invoice['id']); + $settings = \Steuerkram\Models\Setting::get(); + $svc = new \Steuerkram\Services\PdfInvoiceService(); + $pdf = $svc->renderToString($invoice, $lines, $settings); + + header('Content-Type: application/pdf'); + header('Content-Disposition: inline; filename="' . $beleg['filename'] . '"'); + header('Content-Length: ' . strlen($pdf)); + echo $pdf; exit; }