Fix: Beleg referenziert Rechnung via invoice_id, serveFile leitet auf Rechnungs-PDF weiter
This commit is contained in:
parent
994eb95f70
commit
e62fbe9efe
4 changed files with 18 additions and 2 deletions
6
migrations/043_belege_invoice_id.sql
Normal file
6
migrations/043_belege_invoice_id.sql
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
ALTER TABLE belege
|
||||
ADD COLUMN invoice_id INT UNSIGNED NULL DEFAULT NULL
|
||||
COMMENT 'FK zur zugehörigen Ausgangsrechnung (wenn kein physischer Beleg)'
|
||||
AFTER id,
|
||||
ADD CONSTRAINT fk_belege_invoice
|
||||
FOREIGN KEY (invoice_id) REFERENCES invoices(id) ON DELETE SET NULL;
|
||||
|
|
@ -230,6 +230,12 @@ 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
|
||||
if (empty($beleg['storage_path']) && !empty($beleg['invoice_id'])) {
|
||||
header('Location: /invoices/' . (int)$beleg['invoice_id'] . '/pdf');
|
||||
exit;
|
||||
}
|
||||
|
||||
$absPath = dirname(__DIR__, 2) . '/public/' . $beleg['storage_path'];
|
||||
if (!file_exists($absPath)) { http_response_code(404); return; }
|
||||
|
||||
|
|
|
|||
|
|
@ -438,6 +438,7 @@ class InvoiceController
|
|||
|
||||
$belegNr = Beleg::generateBelegNr();
|
||||
$belegId = Beleg::create([
|
||||
'invoice_id' => $id,
|
||||
'beleg_nr' => $belegNr,
|
||||
'filename' => $invoice['rechnungs_nr'] . '.pdf',
|
||||
'storage_path' => '',
|
||||
|
|
|
|||
|
|
@ -100,11 +100,14 @@ class Beleg
|
|||
$fyId = $fy['id'];
|
||||
}
|
||||
|
||||
$invoiceId = isset($data['invoice_id']) && $data['invoice_id'] ? (int)$data['invoice_id'] : null;
|
||||
|
||||
Database::execute(
|
||||
'INSERT INTO belege (beleg_nr, filename, storage_path, mime_type, file_hash,
|
||||
'INSERT INTO belege (invoice_id, beleg_nr, filename, storage_path, mime_type, file_hash,
|
||||
beleg_datum, rechnungs_nr, betrag_brutto, belegtyp, notes, fiscal_year_id)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
|
||||
[
|
||||
$invoiceId,
|
||||
$data['beleg_nr'],
|
||||
$data['filename'],
|
||||
$data['storage_path'],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue