8e5e26c162
Vorschlagsliste: Kunden-Select2 + Mindestbetrag + Kundentyp-Filter + Kontakt-Spalte [deploy]
...
Deploy mahnung / deploy (push) Successful in 14s
Filter-Zeile:
- Kunden-Filter "rowid"-Input ersetzt durch $form->select_company()
(Ajax-Suche falls COMPANY_USE_SEARCH_TO_SELECT gesetzt, sonst klassisches
Dropdown). Direkt-Links ?search_socid=74 von der Kundenkarte bleiben
weiterhin funktional (htmlname=search_socid, Backward-kompatibel).
- Neuer Filter "Mindestbetrag" (EUR, Komma zugelassen).
- Neuer Filter "Kundentyp" (alle / B2B / B2C).
Tabelle:
- Neue Spalte "Kontakt" mit Telefon- und Mail-Direktlink-Icons (tel: / mailto:).
- Spalte erscheint sowohl in der Vorschlags- als auch in der Uebersprungen-Tabelle.
MahnungVorschlag::getVorschlaege() + buildAlleVorschlaege():
- SELECT erweitert um s.phone + s.email; werden als soc_phone/soc_email
pro Eintrag mitgegeben.
- Neue PHP-side Filter min_betrag und kundentyp.
Lang-Keys: MahnungKontakt (de_DE + en_US).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 11:49:31 +02:00
993ac50c0c
Feature: ODT-Template-System, Widget, Dokumentenliste, Templatevariablen-Referenz [deploy]
...
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>
2026-05-10 18:28:24 +02:00
d889fb25a5
Archiv zeigt Kundennamen, Vorschlagsliste mit Skip-Diagnose [deploy]
...
Deploy mahnung / deploy (push) Successful in 13s
- list.php Archiv: Rechnungs-Ref + Kunden-Name per Bulk-Query (statt rowid).
Mahnung-Ref klickt zur Detailansicht (card.php).
- MahnungVorschlag: neue buildAlleVorschlaege()/getUebersprungeneRechnungen()
liefern auch ueberfaellige Rechnungen ohne aktuellen Vorschlag inkl. skip_reason
(Wartefrist laeuft, Stufen ausgeschoepft, Frist Stufe 1 nicht erreicht, ...).
- list.php Vorschlagsliste: zweite Tabelle "Aktuell uebersprungen" mit Grund.
Erklaert warum ueberfaellige Rechnungen nicht in der Vorschlagsliste auftauchen.
- Lang-Keys MahnungUebersprungen/Hint/SkipGrund (DE+EN).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:16:20 +02:00
d1db85322b
Initiales Release: Mahnung-Modul v0.1.0 [deploy]
...
Deploy mahnung / deploy (push) Successful in 14s
Vollstaendiges 3-stufiges Mahnwesen nach BGB §288:
- SQL-Schema (llx_mahnung_mahnung, llx_mahnung_stufe)
- CRUD-Klassen (Mahnung, MahnungStufe, MahnungVorschlag)
- TCPDF DIN-5008 PDF-Generierung
- Verzugszinsberechnung B2C/B2B + §288 Abs.5 Pauschale
- Trigger: offene Mahnungen bei Zahlungseingang schliessen
- Hook: Tab + Button auf Rechnungs-/Kundenkarte
- Cron: taegl. Vorschlagsliste + Ntfy-Push
- Deploy-Pipeline (.forgejo/workflows/deploy.yml)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:09:37 +02:00