Hallo,
Ich habe mir im Spendenmodul meine Quittung nun perfekt als HTML Gerüst gebaut.
Sie bekomme ich sie jetzt am besten als PDF exportiert?
Viele Grüße
Hallo,
Ich habe mir im Spendenmodul meine Quittung nun perfekt als HTML Gerüst gebaut.
Sie bekomme ich sie jetzt am besten als PDF exportiert?
Viele Grüße
Hallo @Kalusi,
ich nutze das Spenden-Modul für unseren gemeinnützigen e.V., um eingehende Spenden zumindest Kassen- und Buchaltungsmäßig zu erfassen und nachzuvollziehen. Ich habe mir auch mal die Mühe gemacht, das Muster-Formular einer Spendenbescheinigung in ein A4-formatiges HTML zu überführen. Das passt grundsätzlich ganz gut, führt allerdings mit den potenziell unterschiedlich zu setzenden Checkboxen und den organisationsbezogenen Informationen bspw. zu Finanzamt, steuerbegünstigtem Zweck und Datum des Freistellungsbescheids zu größerem Parametrisierungsaufwand.
Ich halte es daher für nicht generisch und nicht handhabbar genug, um es auf github per Pull Request in den Quellcode überführen zu lassen. Es schient in diesem Stadium eher für ein CustomModule geeignet.
Eine Auswahl-Option zum deutschen Spenden-Formular habe ich im Spenden-Modul integriert:
Zur Info mein html-Formular wie folgt:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Spendenbescheinigung</title>
<style>
@media print {
body {
margin: 0;
}
}
body {
font-family: Arial, sans-serif;
margin: 20px;
line-height: 1.6;
background-color: #fff;
width: 210mm;
min-height: 297mm;
margin: 0 auto;
padding: 10mm;
box-sizing: border-box;
}
.container {
width: 100%;
height: 100%;
font-size: 12px;
text-align: justify;
}
h1, h2 {
margin-bottom: 10px;
}
table {
border: 1px solid black;
border-collapse: collapse;
}
.section {
margin-bottom: 20px;
}
.section-title {
font-weight: bold;
margin-bottom: 5px;
}
.text-block {
margin-bottom: 10px;
}
input[type="text"], input[type="date"], textarea {
width: 100%;
padding: 5px;
margin-top: 5px;
box-sizing: border-box;
}
.checkbox-group {
margin-top: 10px;
}
.checkbox-group label {
display: block;
margin-bottom: 5px;
}
.footer {
font-size: 0.9em;
margin-top: 20px;
}
.signature {
margin-top: 30px;
}
hr {
border: none;
border-top: 1px solid #000;
margin: 10px 0;
}
input.inline-input {
width: 150px; /* Breite des Eingabefeldes */
padding: 2px;
margin: 0 5px;
font-size: inherit;
}
</style>
</head>
<body>
<div class="container">
<table width="100% "border="0" >
<tr>
<td style="padding: 4px;">
<font size="-2px">Aussteller (Bezeichnung und Anschrift der steuerbegünstigten Einrichtung)</font><br>
</td>
</tr>
<tr>
<td style="padding: 8px;">
__BENEFICIARY_NAME__<br>
__BENEFICIARY_FULL_ADDRESS__
</td>
</tr>
</table>
<br>
<b>Bestätigung über Geldzuwendungen/Mitgliedsbeitrag</b><br>
im Sinne des § 10b des Einkommensteuergesetzes an eine der in § 5 Abs. 1 Nr. 9 des Körperschaftsteuergesetzes bezeichneten Körperschaften, Personenvereinigungen oder Vermögensmassen<br>
<br>
<table width="100% "border="0" >
<tr>
<td style="padding: 4px;">
<font size="-2px">Name und Anschrift des Zuwendenden:</font><br>
</td>
</tr>
<tr>
<td style="padding: 8px;">
__DONOR_FULL_NAME__<br>
__DONOR_FULL_ADDRESS__
</td>
</tr>
</table>
<br>
<br>
<table width="100% "border="0" >
<tr>
<td width="33%" style="padding: 4px;"><font size="-2px">Betrag der Zuwendung - in Ziffern -</font></td>
<td width="33%" style="padding: 4px; border-left: 1px solid black; border-right: 1px solid black;" ><font size="-2px">- in Buchstaben -</font></td>
<td width="33%" style="padding: 4px;"><font size="-2px">Tag der Zuwendung:</font></td>
</tr>
<tr>
<td style="padding: 8px;">__AMOUNT__ €</td>
<td style="border-left: 1px solid black; border-right: 1px solid black; padding: 8px;" >__IN_WORT__ __CURRENCY_CODE__</td>
<td style="padding: 8px;">__DATE__</td>
</tr>
</table>
<br>
<table width="100%" style="border-collapse: collapse; border: none;">
<tr>
<td width="65%">Es handelt sich um den Verzicht auf Erstattung von Aufwendungen</td>
<td width="10%"><input type="checkbox" name="expense_waiver" value="yes">Ja</td>
<td width="25%"><input type="checkbox" name="expense_waiver" value="no" checked>Nein</td>
</tr>
</table>
<br>
<table width="100%" style="border-collapse: collapse; border: none;">
<tr>
<td width="5%" valign="top"><input type="checkbox" name="Freistellungsbescheid" value="yes"></td>
<td width="95%">Wir sind wegen Förderung (Angabe des begünstigten Zwecks / der begünstigten Zwecke)
__DON_PURPOSE__ <b>nach dem</b> Freistellungsbescheid bzw. nach der Anlage zum Körperschaftsteuerbescheid des
Finanzamtes __DON_TAXOFFICE__ StNr __STEUERNR__, vom __BESCHEID_DATUM__ <b>für den letzten Veranlagungszeitraum</b>
__ZEITRAUM__ nach § 5 Abs. 1 Nr. 9 des Körperschaftsteuergesetzes von der Körperschaftsteuer
und nach § 3 Nr. 6 des Gewerbesteuergesetzes von der Gewerbesteuer befreit.</td>
</tr>
</table>
<br>
<table width="100%" style="border-collapse: collapse; border: none;">
<tr>
<td width="5%" valign="top"><input type="checkbox" name="Bescheid" value="yes" checked></td>
<td width="95%"><b>Die Einhaltung der satzungsmäßigen Voraussetzungen nach den §§ 51, 59, 60 und 61 AO wurde vom
Finanzamt __DON_TAXOFFICE__, StNr. __STEUERNR__ mit Bescheid vom __BESCHEID_DATUM__ nach § 60a AO gesondert festgestellt.
Wir fördern nach unserer Satzung (Angabe des begünstigten Zwecks/der begünstigten Zwecke) __DON_PURPOSE__.</b></td>
</tr>
</table>
<br>
<table width="100% "border="0" >
<tr>
<td style="padding: 4px;">
<font size="-2px">Es wird bestätigt, dass die Zuwendung nur zur Förderung (Angabe des begünstigten Zwecks / der begünstigten Zwecke)</font><br>
</td>
</tr>
<tr>
<td style="padding: 8px;">
__DON_PURPOSE__
</td>
</tr>
<tr>
<td style="padding: 4px;">
<font size="-2px">verwendet wird.<br></font><br>
</td>
</tr>
<tr>
<td style="padding: 4px;"><b>Nur für steuerbegünstigte Einrichtungen, bei denen die Mitgliedsbeiträge steuerlich nicht abziehbar sind:</b></td>
</tr>
<tr>
<td>
<table width="100%" style="border-collapse: collapse; border: none;">
<tr>
<td width="5%" valign="top"><input type="checkbox" name="Mitgliedsbeitrag" value="yes"></td>
<td width="95%" style="text-align: left;"><font size="-2px">Es wird bestätigt, dass es sich nicht um einen Mitgliedsbeitrag handelt,
dessen Abzug nach § 10b Abs. 1 des Einkommensteuergesetzes ausgeschlossen ist.</font></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
__BENEFICIARY_TOWN__, __NOW__
<hr>
(Ort, Datum und Unterschrift des Zuwendungsempfängers)
<br>
<br>
<div class="footer">
<p><strong>Hinweis:</strong><br>
Wer vorsätzlich oder grob fahrlässig eine unrichtige Spendenbescheinigung ausstellt oder veranlasst,
dass Zuwendungen nicht zu den angegebenen Zwecken verwendet werden, haftet für die entgangene Steuer
(§ 10b Abs. 4 EStG, § 9 Abs. 3 KStG, § 9 Nr. 5 GewStG).</p>
<br>
Diese Bestätigung wird nicht als Nachweis für die steuerliche Berücksichtigung der Zuwendung anerkannt,
wenn das Datum des Freistellungsbescheides länger als 5 Jahre bzw. <b>das Datum der Feststellung der
Einhaltung der satzungsmäßigen Voraussetzungen nach § 60a Abs. 1 AO länger als 3 Jahre seit
Ausstellung des Bescheides zurückliegt (§ 63 Abs. 5 AO).</b>
</div>
<br/>### DEBUGGING ONLY ###<br/>
__NOW__<br/>
__REF__<br/>
__DATE__<br/>
__BENEFICIARY_NAME__<br/>
__BENEFICIARY_FULL_ADDRESS__<br/>
__BENEFICIARY_TOWN__<br/>
__PAYMENTMODE_LABEL__<br/>
__AMOUNT__ <br/>
__CURRENCY_CODE__<br/>
__DONOR_FULL_NAME__<br/>
__DONOR_FULL_ADDRESS__<br/>
__DonationTitle__<br/>
__DonationRef__<br/>
__Date__<br/>
__DonationDatePayment__<br/>
__Donor__<br/>
__Amount__<br/>
__PaymentMode__<br/>
__NOTE_PUBLIC__<br/>
__DONATION_MESAGE__<br/>
__MAIN_INFO_SOCIETE_NOM__<br/>
__MAIN_INFO_SOCIETE_ADDRESS__, __MAIN_INFO_SOCIETE_ZIP__ __MAIN_INFO_SOCIETE_TOWN__<br/>
</div>
</body>
Am Ende bleibt es jedoch auch bei mir bei dem Grundproblem, dass man innerhalb von Dolibarr nicht zu einem PDF-Dokument kommt. Das Öffnen des HTML und ein PDF-Druck ist zwar keine technische Hürde, aber halt nicht wirklich sinnvoll integriert.
Im französischen Forum [ Modification module Dons - Utiliser mon Dolibarr - Forum Dolibarr france ] wird gerade ebenso über eine PDF-Tauglichkeit zum Spenden-Modul diskutiert. So wie ich es verstehe, setzt man dort wohl auf eine Übergabe der Spenden-Information in ein online-verfügbares PDF mit Formularfeldern.
Da ich keine ernsthaften Entwicklungs-Skills habe, habe ich mal über ChatGPT versucht herauszufinden, welche Schritte und welche Aufwände notwendig sind, um eine Implementierung einer PDF-Export-Funktion im Spenden-Modul durchzuführen. DIe Empfehlung lautete, sich in Orientierung am Rechnungs-Modul zu bewegen und dortige Klassen und Module in das Spenden- Modul zu überführen. Da habe ich meine Grenzen jedoch recht schnell erreicht. ![]()
Würdest du zur Orientierung und gemeinsamen Weiterentwicklung auch dein HTML-Gerüst bereitstellen?
Viele Grüße, Marcel