|
|
56954d68f3
|
Konfigurierbare Tracking-Patterns mit Live-Vorschau [deploy]
Deploy mahnung / deploy (push) Failing after 4s
Datenmodell:
- Neue Tabelle llx_mahnung_trackingpattern (provider, label, regex,
url_template, priority, active). Auto-Anlage + Default-Seed im setup.php
und in modMahnung::init() — idempotent.
Default-Patterns (priority hoeher = spezifischer, zuerst gepruef):
- DHL Paket 20-stellig (90), DPAG Einschreiben RR...DE (85), UPS 1Z... (80),
- DHL 11-stellig Online-Frankierung (30), Hermes 14-stellig (25), DPD (20).
Setup-Seite admin/tracking_patterns.php:
- CRUD (Anlegen/Bearbeiten/Aktivieren-Deaktivieren/Loeschen)
- Live-Vorschau: Regex + Beispieltext + URL-Template werden waehrend
des Tippens (debounce 300ms) via ajax/regex_preview.php ausgewertet.
UI zeigt: Regex-Syntax-Status, gefundene Sendungsnummer, vollstaendige
Tracking-URL (anklickbar).
- Validierung: Delimiter / # ~ Whitelist, https://-Pflicht, {nr}-Platzhalter,
max 255 Zeichen Regex.
AJAX-Endpoint ajax/regex_preview.php:
- ReDoS-Schutz: max 10 KB Sample, pcre.backtrack_limit=100k.
- POST-only (mit Setup-Recht), JSON-Response.
card.php:
- tracking-URL kommt jetzt aus MahnungTrackingPattern::urlFor() (DB-Lookup
nach Provider) statt hardcoded Mahnung::trackingUrl() — letztere bleibt
als Fallback.
Setup-Seite: neuer Button "Tracking-Muster (Regex)" oben rechts.
Lang-Keys: 23 neue (de_DE + en_US) fuer Pattern-CRUD + Live-Vorschau.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-11 12:04:42 +02:00 |
|
|
|
bb610a7594
|
Versand-Erfassung + Sendebeleg-Upload pro Mahnung [deploy]
Deploy mahnung / deploy (push) Failing after 4s
Datenmodell (llx_mahnung_mahnung):
- Neue Spalten: date_versand, versandweg, tracking_nr, tracking_provider.
- Idempotente Migration via modMahnung::migrateVersandFelder() — laeuft
automatisch beim ersten Setup-Aufruf nach dem Deploy (SHOW COLUMNS-Check,
fehlende Spalten werden per ALTER TABLE ergaenzt).
Mahnung-Klasse:
- setVersand() — speichert Datum + Weg + optional Tracking + setzt Status
automatisch auf VERSENDET wenn vorher <= ERSTELLT.
- defaultProviderForWeg() — Mapping versandweg → tracking_provider
(dhl→dhl, einschreiben→dpag, dpd→dpd, hermes→hermes, ups→ups).
- trackingUrl() — Deep-Link-Helper fuer DHL, Deutsche Post, DPD, Hermes, UPS.
- getVersandwegLabel() — lokalisiertes Label aus versandweg-Slug.
- fetch/update um die neuen Felder erweitert.
card.php:
- Neuer Block "Versand & Belege" nach den generierten Dokumenten.
- Erfassungs-Formular: Datepicker + Versandweg-Dropdown (10 Optionen) +
Sendungsnummer + Provider-Override.
- Anzeige nach Erfassung mit "Sendung verfolgen"-Button zum Provider.
- "Versand bearbeiten" und "Versand zuruecksetzen" Buttons.
- Beleg-Upload via formfile->showdocuments('mahnung', ...) — Dateien
landen in DOL_DATA_ROOT/mahnung/<MAHN-Ref>/.
- Modulpart "mahnung" funktioniert ohne Custom-Setup: Dolibarr's
conf.class.php:744 setzt $conf->mahnung->dir_output automatisch.
Lang-Keys: 22 neue (de_DE + en_US) fuer Versand-Block.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-11 11:59:08 +02:00 |
|
|
|
d49bd9ebda
|
Docs: README, CHANGELOG, CLAUDE.md aktualisiert, Version 0.2.0
Deploy mahnung / deploy (push) Has been skipped
- README.md: ODT-Template-System, Widget, Dokumentenmodelle, Template-Variablen, aktualisierter Dateibaum
- CHANGELOG.md: Neuer Block [0.2.0] mit allen Aenderungen seit Erstrelease
- CLAUDE.md: Projektanweisungen fuer zukuenftige Sessions
- modMahnung: Version 0.1.0 → 0.2.0
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-10 21:37:44 +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 |
|
|
|
f3b70788d2
|
Fix: Modul-Numero auf 500038 korrigiert — Kollision mit Eplan (500037) behoben [deploy]
Deploy mahnung / deploy (push) Successful in 13s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-10 16:26:13 +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 |
|