feat: add OpenDocument PDF templates

This commit is contained in:
Marcel Peterkau
2026-06-21 22:10:16 +02:00
parent b34135b34a
commit 0622a22794
14 changed files with 942 additions and 14 deletions
+1
View File
@@ -25,6 +25,7 @@
"Hausmeister-Tasks lassen sich manuell löschen; Einträge entfernter Mitgliederakten werden beim nächsten Lauf bereinigt.",
"Forderungen besitzen eigene Arbeitsansichten mit Teilzahlungen, GnuCash-Referenzen, Zahlungszuordnungen, Mahnungen und Gebühren.",
"Positionen, Zahlungen und Mahnungen einer Forderung werden gemeinsam in einer farblich gruppierten Übersicht dargestellt.",
"OpenDocument-Templates mit Platzhaltern, lokaler PDF-Erzeugung, Audit-Verknüpfung und Dokumentöffnung aus der Mitgliederakte ergänzt.",
"Dropdowns zeigen deutsche Begriffe bei weiterhin englischen Speicher-Keys; der Hausmeisterstatus liegt einheitlich in housekeeper.json.",
"Mehrstufiger Mahnworkflow mit Hausmeister-Regel, Entwurf, Versandbestätigung, Zahlungsfrist, optionaler Gebühr und Mahnsperre ergänzt.",
"Splash-Screen auf das eingebettete CCMA-Hintergrundmotiv umgestellt und redundante Titeltexte entfernt.",
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:mimetype="application/vnd.oasis.opendocument.text" office:version="1.3">
<office:styles>
<style:style style:name="Title" style:family="paragraph"><style:paragraph-properties fo:margin-bottom="0.4cm"/><style:text-properties fo:font-size="18pt" fo:font-weight="bold"/></style:style>
<style:style style:name="Heading" style:family="paragraph"><style:paragraph-properties fo:margin-top="0.35cm" fo:margin-bottom="0.15cm"/><style:text-properties fo:font-size="12pt" fo:font-weight="bold"/></style:style>
</office:styles>
<office:body>
<office:text>
<text:p text:style-name="Title">Chaos Computer Club Mannheim e.V.</text:p>
<text:p>Erstellt am {{document.date}}</text:p>
<text:p text:style-name="Heading">Forderung: {{claim.title}}</text:p>
<text:p>Mitglied: {{member.full_name}} ({{member.number}})</text:p>
<text:p>E-Mail: {{member.email}}</text:p>
<text:p>Fällig am: {{claim.due_date}}</text:p>
<text:p text:style-name="Heading">Positionen</text:p>
<text:p>{{claim.items}}</text:p>
<text:p>Gesamtbetrag: {{claim.total}}</text:p>
<text:p>Bereits bezahlt: {{claim.paid}}</text:p>
<text:p text:style-name="Heading">Offener Betrag: {{claim.balance}}</text:p>
<text:p>Forderungs-ID: {{claim.id}}</text:p>
</office:text>
</office:body>
</office:document>
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:mimetype="application/vnd.oasis.opendocument.text" office:version="1.3">
<office:styles>
<style:style style:name="Title" style:family="paragraph"><style:paragraph-properties fo:margin-bottom="0.4cm"/><style:text-properties fo:font-size="18pt" fo:font-weight="bold"/></style:style>
<style:style style:name="Heading" style:family="paragraph"><style:paragraph-properties fo:margin-top="0.35cm" fo:margin-bottom="0.15cm"/><style:text-properties fo:font-size="12pt" fo:font-weight="bold"/></style:style>
</office:styles>
<office:body>
<office:text>
<text:p text:style-name="Title">Chaos Computer Club Mannheim e.V.</text:p>
<text:p>{{document.date}}</text:p>
<text:p>An {{member.full_name}} ({{member.number}})</text:p>
<text:p text:style-name="Heading">{{reminder.name}}</text:p>
<text:p>Zu unserer Forderung „{{claim.title}}“ ist weiterhin ein Betrag von {{claim.balance}} offen.</text:p>
<text:p>Bitte begleiche den offenen Betrag innerhalb von {{reminder.payment_deadline_days}} Tagen.</text:p>
<text:p>Mahngebühr: {{reminder.fee}}</text:p>
<text:p>{{reminder.detail}}</text:p>
<text:p>Forderungs-ID: {{claim.id}}</text:p>
<text:p>Mahnstufe: {{reminder.level}}</text:p>
</office:text>
</office:body>
</office:document>
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:mimetype="application/vnd.oasis.opendocument.text" office:version="1.3">
<office:styles>
<style:style style:name="Title" style:family="paragraph"><style:paragraph-properties fo:margin-bottom="0.4cm"/><style:text-properties fo:font-size="18pt" fo:font-weight="bold"/></style:style>
<style:style style:name="Heading" style:family="paragraph"><style:paragraph-properties fo:margin-top="0.35cm" fo:margin-bottom="0.15cm"/><style:text-properties fo:font-size="12pt" fo:font-weight="bold"/></style:style>
</office:styles>
<office:body>
<office:text>
<text:p text:style-name="Title">Chaos Computer Club Mannheim e.V.</text:p>
<text:p>Erstellt am {{document.date}}</text:p>
<text:p text:style-name="Heading">Mitgliedsdaten</text:p>
<text:p>Name: {{member.full_name}}</text:p>
<text:p>Mitgliedsnummer: {{member.number}}</text:p>
<text:p>E-Mail: {{member.email}}</text:p>
<text:p>Geburtsdatum: {{member.birth_date}}</text:p>
<text:p>Mitglied seit: {{member.started_at}}</text:p>
<text:p>Status: {{member.status}}</text:p>
</office:text>
</office:body>
</office:document>