Gutschriften Phase 3b/1: Gutschrift-PDF (pdfkit)
PDF-Erzeugung fuer Gutschriften mit Firmenstammdaten als Absender, Empfaenger (Kunde+Adresse), Netto/USt/Brutto (bzw. ohne USt-Ausweis), Sachwert/'Ware erhalten' bzw. Ueberweisungs-Bankverbindung, Unterschriftsblock, Firmen-Fusszeile. Endpoint POST /credit-notes/:id/pdf; 'PDF'-Button in CreditNotesSection (erzeugen + im Tab oeffnen bzw. vorhandenes ansehen). PDF-Pfad wird bei inhaltlicher Aenderung geleert -> Neu-Erzeugung. Download ueber fileDownload (credit-notes subDir, Vertrags-Ownership). Lokal verifiziert (valides %PDF, korrekte Betraege). ZUGFeRD-XML-Embedding (PDF/A-3, EN 16931) folgt als Teil 2 mit Validator-Pruefung. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -183,8 +183,10 @@ export async function updateCreditNote(id: number, input: CreateCreditNoteInput)
|
||||
throw new ApiError(404, 'Gutschrift nicht gefunden');
|
||||
}
|
||||
const normalized = validateAndNormalize(input);
|
||||
// Nummer bleibt unverändert (einmal vergeben = fix).
|
||||
return prisma.creditNote.update({ where: { id }, data: normalized });
|
||||
// Nummer bleibt unverändert (einmal vergeben = fix). Ein evtl. schon
|
||||
// erzeugtes PDF ist nach inhaltlicher Änderung veraltet → Pfad leeren
|
||||
// (der User erzeugt es bei Bedarf neu).
|
||||
return prisma.creditNote.update({ where: { id }, data: { ...normalized, pdfPath: null } });
|
||||
}
|
||||
|
||||
export async function deleteCreditNote(id: number) {
|
||||
|
||||
Reference in New Issue
Block a user