Gutschrift: Beleg-Upload auch fuer Sachwerte + kein Unterschriftsblock bei Geld

- Beleg-Upload jetzt fuer beide Arten: bei Geld die Ueberweisungs-
  bestaetigung, bei Sachwert das unterschriebene Dokument. ReceiptControls
  in der Liste fuer Geld UND Sachwert (Label je nach Typ). Endpoint war
  schon typ-agnostisch.
- PDF-Unterschriftsblock nur noch bei Sachwert - eine Ueberweisung wird
  nicht unterschrieben (Beleg = hochgeladene Ueberweisungsbestaetigung).
  Bei Geld entfaellt der Unterschrift/Ort-Block; im Formular sind Ort +
  'Unterschrift am' bei Geld ausgeblendet.

Verifiziert: beide PDFs erzeugen sauber (je 1 Seite).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 09:26:35 +02:00
co-authored by Claude Opus 4.8
parent 5e606df49e
commit 0078654465
3 changed files with 60 additions and 38 deletions
+15 -10
View File
@@ -158,16 +158,21 @@ export async function generateCreditNotePdf(creditNoteId: number): Promise<{ buf
}
// ---- Unterschriftsblock ----
doc.moveDown(3);
const y = doc.y;
const place = cn.place || company.city || '';
doc.fontSize(10).fillColor('#000');
doc.text('_______________________________', 50, y);
doc.text('_______________________________', 320, y);
doc.fontSize(8).fillColor('#666');
doc.text(`Ort/Datum${place ? ` (${place})` : ''}`, 50, y + 14);
doc.text('Unterschrift', 320, y + 14);
doc.fillColor('#000');
// Nur bei Sachwert: das Dokument wird vom Kunden unterschrieben. Bei einer
// Geld-Überweisung ist keine Unterschrift nötig als Beleg dient die
// hochgeladene Überweisungsbestätigung.
if (cn.type === 'SACHWERT') {
doc.moveDown(3);
const y = doc.y;
const place = cn.place || company.city || '';
doc.fontSize(10).fillColor('#000');
doc.text('_______________________________', 50, y);
doc.text('_______________________________', 320, y);
doc.fontSize(8).fillColor('#666');
doc.text(`Ort/Datum${place ? ` (${place})` : ''}`, 50, y + 14);
doc.text('Unterschrift', 320, y + 14);
doc.fillColor('#000');
}
// ---- Fußzeile (Firmendaten) ----
// Position aus der Seitengeometrie berechnen, damit die Fußzeile am