update
This commit is contained in:
@@ -57,6 +57,30 @@ import type { BestellungStatus, BestellpositionFormData, ErinnerungFormData } fr
|
||||
|
||||
// ── Helpers ──
|
||||
|
||||
const DIENSTGRAD_KURZ: Record<string, string> = {
|
||||
'Feuerwehranwärter': 'FA', 'Jugendfeuerwehrmann': 'JFM', 'Probefeuerwehrmann': 'PFM',
|
||||
'Feuerwehrmann': 'FM', 'Feuerwehrfrau': 'FF',
|
||||
'Oberfeuerwehrmann': 'OFM', 'Oberfeuerwehrfrau': 'OFF',
|
||||
'Hauptfeuerwehrmann': 'HFM', 'Hauptfeuerwehrfrau': 'HFF',
|
||||
'Löschmeister': 'LM', 'Oberlöschmeister': 'OLM', 'Hauptlöschmeister': 'HLM',
|
||||
'Brandmeister': 'BM', 'Oberbrandmeister': 'OBM', 'Hauptbrandmeister': 'HBM',
|
||||
'Brandinspektor': 'BI', 'Oberbrandinspektor': 'OBI', 'Brandoberinspektor': 'BOI',
|
||||
'Brandamtmann': 'BAM',
|
||||
'Verwaltungsmeister': 'VM', 'Oberverwaltungsmeister': 'OVM',
|
||||
'Hauptverwaltungsmeister': 'HVM', 'Verwalter': 'V',
|
||||
'Ehren-Feuerwehrmann': 'E-FM', 'Ehren-Feuerwehrfrau': 'E-FF',
|
||||
'Ehren-Oberfeuerwehrmann': 'E-OFM', 'Ehren-Oberfeuerwehrfrau': 'E-OFF',
|
||||
'Ehren-Hauptfeuerwehrmann': 'E-HFM', 'Ehren-Hauptfeuerwehrfrau': 'E-HFF',
|
||||
'Ehren-Löschmeister': 'E-LM', 'Ehren-Oberlöschmeister': 'E-OLM', 'Ehren-Hauptlöschmeister': 'E-HLM',
|
||||
'Ehren-Brandmeister': 'E-BM', 'Ehren-Oberbrandmeister': 'E-OBM', 'Ehren-Hauptbrandmeister': 'E-HBM',
|
||||
'Ehren-Brandinspektor': 'E-BI', 'Ehren-Oberbrandinspektor': 'E-OBI', 'Ehren-Brandoberinspektor': 'E-BOI',
|
||||
'Ehren-Brandamtmann': 'E-BAM',
|
||||
'Ehren-Verwaltungsmeister': 'E-VM', 'Ehren-Oberverwaltungsmeister': 'E-OVM',
|
||||
'Ehren-Hauptverwaltungsmeister': 'E-HVM', 'Ehren-Verwalter': 'E-V',
|
||||
};
|
||||
|
||||
const kurzDienstgrad = (d?: string) => (d ? (DIENSTGRAD_KURZ[d] ?? d) : undefined);
|
||||
|
||||
const formatCurrency = (value?: number) =>
|
||||
value != null ? new Intl.NumberFormat('de-AT', { style: 'currency', currency: 'EUR' }).format(value) : '–';
|
||||
|
||||
@@ -400,7 +424,7 @@ export default function BestellungDetail() {
|
||||
doc.text('Besteller', 10, curY);
|
||||
curY += 5;
|
||||
const nameWithRank = bestellung.besteller_dienstgrad
|
||||
? `${bestellung.besteller_dienstgrad} ${bestellung.besteller_name}`
|
||||
? `${kurzDienstgrad(bestellung.besteller_dienstgrad)} ${bestellung.besteller_name}`
|
||||
: bestellung.besteller_name;
|
||||
row('Name', nameWithRank);
|
||||
if (bestellung.besteller_email) row('E-Mail', bestellung.besteller_email);
|
||||
@@ -449,6 +473,7 @@ export default function BestellungDetail() {
|
||||
startY: curY,
|
||||
theme: 'grid',
|
||||
headStyles: { fillColor: [66, 66, 66], textColor: 255, fontStyle: 'bold' },
|
||||
alternateRowStyles: { fillColor: [245, 245, 245] },
|
||||
margin: { left: 10, right: 10 },
|
||||
styles: { fontSize: 9, cellPadding: 2 },
|
||||
columnStyles: {
|
||||
@@ -477,6 +502,7 @@ export default function BestellungDetail() {
|
||||
startY: curY,
|
||||
theme: 'grid',
|
||||
headStyles: { fillColor: [66, 66, 66], textColor: 255, fontStyle: 'bold' },
|
||||
alternateRowStyles: { fillColor: [245, 245, 245] },
|
||||
margin: { left: 10, right: 10 },
|
||||
styles: { fontSize: 9, cellPadding: 2 },
|
||||
columnStyles: {
|
||||
@@ -504,20 +530,18 @@ export default function BestellungDetail() {
|
||||
doc.setFont('helvetica', 'normal');
|
||||
doc.setTextColor(0, 0, 0);
|
||||
|
||||
// Signature line
|
||||
doc.setDrawColor(0, 0, 0);
|
||||
doc.setLineWidth(0.4);
|
||||
// Ort/Datum line (left)
|
||||
doc.line(10, curY, 90, curY);
|
||||
|
||||
// Date line (right side)
|
||||
// Signature line (right)
|
||||
doc.line(120, curY, 200, curY);
|
||||
|
||||
curY += 4;
|
||||
doc.text('Ort, Datum', 10, curY);
|
||||
const sigName = bestellung.besteller_dienstgrad
|
||||
? `${bestellung.besteller_dienstgrad} ${bestellung.besteller_name || ''}`
|
||||
? `${kurzDienstgrad(bestellung.besteller_dienstgrad)} ${bestellung.besteller_name || ''}`
|
||||
: (bestellung.besteller_name || '');
|
||||
doc.text(sigName, 10, curY);
|
||||
doc.text('Ort, Datum', 120, curY);
|
||||
doc.text(sigName, 120, curY);
|
||||
|
||||
doc.save(`bestellung_${kennung.replace('/', '-')}.pdf`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user