All checks were successful
Deploy mahnung / deploy (push) Successful in 13s
- ODT-Template-System: Pro Mahnstufe eigenes Template (mahnung_stufe1/2/3.odt), Fallback auf generisches Template; Basis-Klasse ModelePDFMahnung, pdf_standard_mahnung (TCPDF refactored), doc_generic_mahnung_odt (ODTPHP) - Widget box_mahnung_offen: Überfällige Rechnungen mit Mahnstufe-Badge (blau/orange/rot) - card.php: Dokumentenliste mit Lupe (PDF-Vorschau), Download, Modellauswahl - admin/templatevars.php: Referenzseite aller verfügbaren ODT-Variablen - admin/setup.php: Dokumentenmodell-Verwaltung, Upload-Bereich mit Benennungskonvention - mahnung.class.php: generateDocument() + socid-Alias für commonGenerateDocument() - modMahnung.class.php: models=1, MAHNUNG_ADDON_PDF/ODT_PATH-Konstanten, document_model-Registrierung in init(), Widget registriert - mahnungpdf.class.php entfernt, Logik in pdf_standard_mahnung.modules.php Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
220 lines
8.9 KiB
PHP
220 lines
8.9 KiB
PHP
<?php
|
|
/* Copyright (C) 2026 Eduard Wisch <data@data-it-solution.de>
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License, version 3.
|
|
*/
|
|
|
|
/**
|
|
* \file mahnung/admin/templatevars.php
|
|
* \ingroup mahnung
|
|
* \brief Uebersicht aller verfuegbaren Variablen fuer ODT-Templates.
|
|
*/
|
|
|
|
$res = 0;
|
|
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
|
|
$res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
|
|
}
|
|
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME'];
|
|
$tmp2 = realpath(__FILE__);
|
|
$i = strlen($tmp) - 1;
|
|
$j = strlen($tmp2) - 1;
|
|
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
|
|
$i--;
|
|
$j--;
|
|
}
|
|
if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
|
|
$res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
|
|
}
|
|
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
|
|
$res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
|
|
}
|
|
if (!$res && file_exists("../../main.inc.php")) {
|
|
$res = @include "../../main.inc.php";
|
|
}
|
|
if (!$res) {
|
|
die("Include of main fails");
|
|
}
|
|
|
|
global $langs, $user;
|
|
$langs->loadLangs(array('admin', 'mahnung@mahnung'));
|
|
|
|
if (!$user->admin && !$user->hasRight('mahnung', 'setup')) {
|
|
accessforbidden();
|
|
}
|
|
|
|
llxHeader('', 'Mahnung — Template-Variablen');
|
|
|
|
print load_fiche_titre('Verfuegbare Variablen fuer ODT-Templates', '<a href="setup.php">Zurueck zum Setup</a>', 'fa-envelope-open-text');
|
|
|
|
print '<div class="opacitymedium" style="margin-bottom: 15px;">';
|
|
print 'Diese Variablen koennen in ODT-Templates mit geschweiften Klammern verwendet werden, z.B. <code>{mahnung_ref}</code>.<br>';
|
|
print 'Stufen-spezifische Templates: <code>mahnung_stufe1.odt</code>, <code>mahnung_stufe2.odt</code>, <code>mahnung_stufe3.odt</code> — Fallback: beliebiges <code>.odt</code> im Template-Verzeichnis.';
|
|
print '</div>';
|
|
|
|
// Mahnung-Variablen
|
|
print '<table class="noborder centpercent">';
|
|
print '<tr class="liste_titre"><th colspan="3">Mahnung</th></tr>';
|
|
print '<tr class="liste_titre"><th>Variable</th><th>Beschreibung</th><th>Beispiel</th></tr>';
|
|
|
|
$mahnungVars = array(
|
|
array('{mahnung_ref}', 'Mahnung-Referenznummer', 'MAHN2026-0001'),
|
|
array('{mahnung_stufe}', 'Mahnstufe (Nummer)', '1'),
|
|
array('{mahnung_stufe_label}', 'Bezeichnung der Mahnstufe', 'Zahlungserinnerung'),
|
|
array('{mahnung_date}', 'Datum der Mahnung', '10.05.2026'),
|
|
array('{mahnung_date_lim_alt}', 'Urspruengliches Faelligkeitsdatum der Rechnung', '25.04.2026'),
|
|
array('{mahnung_date_lim_neu}', 'Neue Zahlungsfrist', '24.05.2026'),
|
|
array('{mahnung_betrag_offen}', 'Offener Rechnungsbetrag', '131,34'),
|
|
array('{mahnung_mahngebuehr}', 'Mahngebuehr dieser Stufe', '5,00'),
|
|
array('{mahnung_pauschale_b2b}', 'B2B-Pauschale nach BGB §288 Abs. 5', '40,00'),
|
|
array('{mahnung_verzugszinsen}', 'Berechnete Verzugszinsen', '1,23'),
|
|
array('{mahnung_summe}', 'Gesamtforderung (offen + Gebuehren + Zinsen)', '177,57'),
|
|
array('{mahnung_basiszins}', 'BGB-Basiszinssatz (Snapshot bei Erstellung)', '1,27'),
|
|
array('{mahnung_zinssatz}', 'Effektiver Zinssatz (Basis + Aufschlag)', '6,27'),
|
|
array('{mahnung_kundentyp}', 'Kundentyp', 'B2C oder B2B'),
|
|
array('{mahnung_versandart}', 'Versandart', 'pdf, mail, druck, none'),
|
|
array('{mahnung_pdf_intro}', 'Einleitungstext der Mahnstufe (aus Setup oder Default)', 'unsere unten aufgefuehrte Rechnung...'),
|
|
);
|
|
|
|
foreach ($mahnungVars as $v) {
|
|
print '<tr class="oddeven">';
|
|
print '<td><code>'.dol_escape_htmltag($v[0]).'</code></td>';
|
|
print '<td>'.dol_escape_htmltag($v[1]).'</td>';
|
|
print '<td class="opacitymedium">'.dol_escape_htmltag($v[2]).'</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
|
|
// Rechnungs-Variablen
|
|
print '<br>';
|
|
print '<table class="noborder centpercent">';
|
|
print '<tr class="liste_titre"><th colspan="3">Verknuepfte Rechnung</th></tr>';
|
|
print '<tr class="liste_titre"><th>Variable</th><th>Beschreibung</th><th>Beispiel</th></tr>';
|
|
|
|
$factureVars = array(
|
|
array('{facture_ref}', 'Rechnungsnummer', 'IN2604-0036'),
|
|
array('{facture_date}', 'Rechnungsdatum', '01.04.2026'),
|
|
array('{facture_date_lim}', 'Original-Faelligkeitsdatum', '25.04.2026'),
|
|
array('{facture_total_ht}', 'Nettobetrag der Rechnung', '110,37'),
|
|
array('{facture_total_ttc}', 'Bruttobetrag der Rechnung', '131,34'),
|
|
array('{facture_total_tva}', 'MwSt-Betrag', '20,97'),
|
|
array('{facture_already_paid}', 'Bereits gezahlter Betrag', '0,00'),
|
|
);
|
|
|
|
foreach ($factureVars as $v) {
|
|
print '<tr class="oddeven">';
|
|
print '<td><code>'.dol_escape_htmltag($v[0]).'</code></td>';
|
|
print '<td>'.dol_escape_htmltag($v[1]).'</td>';
|
|
print '<td class="opacitymedium">'.dol_escape_htmltag($v[2]).'</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
|
|
// Firmen-Variablen (Absender)
|
|
print '<br>';
|
|
print '<table class="noborder centpercent">';
|
|
print '<tr class="liste_titre"><th colspan="3">Eigene Firma (Absender)</th></tr>';
|
|
print '<tr class="liste_titre"><th>Variable</th><th>Beschreibung</th><th>Beispiel</th></tr>';
|
|
|
|
$mysocVars = array(
|
|
array('{mycompany_name}', 'Firmenname', 'Alles Watt Laeuft'),
|
|
array('{mycompany_address}', 'Strasse', 'Musterstrasse 1'),
|
|
array('{mycompany_zip}', 'PLZ', '24536'),
|
|
array('{mycompany_town}', 'Ort', 'Neumuenster'),
|
|
array('{mycompany_country}', 'Land', 'Deutschland'),
|
|
array('{mycompany_phone}', 'Telefonnummer', '04321 1234567'),
|
|
array('{mycompany_fax}', 'Faxnummer', ''),
|
|
array('{mycompany_email}', 'E-Mail-Adresse', 'info@example.de'),
|
|
array('{mycompany_web}', 'Webseite', 'www.example.de'),
|
|
array('{mycompany_idprof1}', 'Handelsregisternummer', ''),
|
|
array('{mycompany_idprof2}', 'SIRET/Steuernummer', ''),
|
|
array('{mycompany_capital}', 'Stammkapital', ''),
|
|
array('{mycompany_logo}', 'Firmenlogo (wird als Bild eingefuegt)', '(Bilddatei)'),
|
|
);
|
|
|
|
foreach ($mysocVars as $v) {
|
|
print '<tr class="oddeven">';
|
|
print '<td><code>'.dol_escape_htmltag($v[0]).'</code></td>';
|
|
print '<td>'.dol_escape_htmltag($v[1]).'</td>';
|
|
print '<td class="opacitymedium">'.dol_escape_htmltag($v[2]).'</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
|
|
// Kunden-Variablen
|
|
print '<br>';
|
|
print '<table class="noborder centpercent">';
|
|
print '<tr class="liste_titre"><th colspan="3">Kunde (Empfaenger)</th></tr>';
|
|
print '<tr class="liste_titre"><th>Variable</th><th>Beschreibung</th><th>Beispiel</th></tr>';
|
|
|
|
$companyVars = array(
|
|
array('{company_name}', 'Kundenname', 'Brigitte Ladewig'),
|
|
array('{company_alias}', 'Kurzname/Alias', ''),
|
|
array('{company_address}', 'Strasse', 'Beispielweg 5'),
|
|
array('{company_zip}', 'PLZ', '24534'),
|
|
array('{company_town}', 'Ort', 'Neumuenster'),
|
|
array('{company_country}', 'Land', 'Deutschland'),
|
|
array('{company_phone}', 'Telefon', '04321 9876543'),
|
|
array('{company_email}', 'E-Mail', 'b.ladewig@example.de'),
|
|
array('{company_idprof1}', 'Handelsregister', ''),
|
|
array('{company_idprof2}', 'Steuernummer', ''),
|
|
array('{company_vatnumber}', 'USt-IdNr.', 'DE123456789'),
|
|
array('{company_note_public}', 'Oeffentliche Notiz des Kunden', ''),
|
|
);
|
|
|
|
foreach ($companyVars as $v) {
|
|
print '<tr class="oddeven">';
|
|
print '<td><code>'.dol_escape_htmltag($v[0]).'</code></td>';
|
|
print '<td>'.dol_escape_htmltag($v[1]).'</td>';
|
|
print '<td class="opacitymedium">'.dol_escape_htmltag($v[2]).'</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
|
|
// Bank-Variablen
|
|
print '<br>';
|
|
print '<table class="noborder centpercent">';
|
|
print '<tr class="liste_titre"><th colspan="3">Bankverbindung</th></tr>';
|
|
print '<tr class="liste_titre"><th>Variable</th><th>Beschreibung</th><th>Beispiel</th></tr>';
|
|
|
|
$bankVars = array(
|
|
array('{mahnung_bank_label}', 'Name der Bank', 'Sparkasse Suedholstein'),
|
|
array('{mahnung_bank_iban}', 'IBAN', 'DE89 3704 0044 0532 0130 00'),
|
|
array('{mahnung_bank_bic}', 'BIC/SWIFT', 'COBADEFFXXX'),
|
|
);
|
|
|
|
foreach ($bankVars as $v) {
|
|
print '<tr class="oddeven">';
|
|
print '<td><code>'.dol_escape_htmltag($v[0]).'</code></td>';
|
|
print '<td>'.dol_escape_htmltag($v[1]).'</td>';
|
|
print '<td class="opacitymedium">'.dol_escape_htmltag($v[2]).'</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
|
|
// Dolibarr-Standard-Variablen
|
|
print '<br>';
|
|
print '<table class="noborder centpercent">';
|
|
print '<tr class="liste_titre"><th colspan="3">Dolibarr-Standard (Auswahl)</th></tr>';
|
|
print '<tr class="liste_titre"><th>Variable</th><th>Beschreibung</th><th>Beispiel</th></tr>';
|
|
|
|
$stdVars = array(
|
|
array('{__FROM_NAME__}', 'Absender-Name', 'Alles Watt Laeuft'),
|
|
array('{__FROM_EMAIL__}', 'Absender-E-Mail', 'info@example.de'),
|
|
array('{__DATE__}', 'Aktuelles Datum', '10.05.2026'),
|
|
array('{myuser_lastname}', 'Nachname des eingeloggten Users', 'Wisch'),
|
|
array('{myuser_firstname}', 'Vorname des eingeloggten Users', 'Eduard'),
|
|
array('{myuser_email}', 'E-Mail des eingeloggten Users', 'data@example.de'),
|
|
);
|
|
|
|
foreach ($stdVars as $v) {
|
|
print '<tr class="oddeven">';
|
|
print '<td><code>'.dol_escape_htmltag($v[0]).'</code></td>';
|
|
print '<td>'.dol_escape_htmltag($v[1]).'</td>';
|
|
print '<td class="opacitymedium">'.dol_escape_htmltag($v[2]).'</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
|
|
llxFooter();
|
|
$db->close();
|