- Felder mail_subject_template / mail_body_template in customers-Tabelle
- Kundenformular um E-Mail-Vorlage-Abschnitt erweitert
- EmailService verwendet Kundenvorlage mit Fallback auf Standardtext
- Globale E-Mail-Text-Einstellung in Einstellungen entfernt
- Migration 082: neue Spalten in customers
- Vorlagenbuchung verknüpft jetzt korrekt die Bankbuchung (bank_tx_id)
- Buchungs-Redirect bleibt nach Vorlagenbuchung auf dem Beleg
- Zahldatum (Wertstellung der Bankbuchung) im Vorlagendialog neben Belegdatum
- USt-Felder im Vorlagendialog als Text (nicht mehr als editierbare Inputs)
- Standard-Lieferant pro Vorlage speicherbar; wird im Buchungsdialog vorbelegt
- Migration 081: spalte standard_lieferant in buchungsvorlagen
Neues Vorlagen-Badge zwischen Bank-Badge und Buchungsformular in
/belege/{id}. Vorlage auswählen öffnet modalen Dialog mit Feldgruppen
(Metadaten, USt-Zeilen mit Live-Berechnung, Zahlungskonto). Buchungen
werden per VorlageBuchungsService aus JSON-Regeln in der DB erstellt.
Pflege-UI unter /einstellungen/buchungsvorlagen (CRUD inkl. Felder und
Regeln). Initiale Vorlage "Essensbeleg n. abzugsfähig (nur USt.)" via
Migration 080 eingespielt. Test 42 prüft CRUD und Buchungsausführung.
- Migration 071 ergänzt bank_sources.sort_order
- Drag-Handle (⠿) oben links jeder Kachel
- Gezogene Kachel hängt am Mauszeiger, Ursprung mit lila Rahmen
- Blauer Strich im Gap markiert die Einfügeposition
- Reihenfolge wird per AJAX nach /bank/direkt/_order persistiert
- FinTS-Abruf für Comdirect/DKB/Sparkassen via nemiah/php-fints (4.1)
inkl. photoTAN-Eingabe-Modal und Multi-Konto-Auswahl
- Neue Tabelle bank_sources (CSV/API/FinTS) ersetzt bank_import_formats
und bank_connections, Backfill in Migration 068
- Symmetrische Verschlüsselung sensibler Felder (PayPal-Signature,
FinTS-PIN) mit AES-256-GCM, APP_KEY in .env
- Routes /bank/fints* → /bank/direkt*; "+ Neue Bank…"-Dialog erlaubt
freie API/FinTS-Anbieter
- Scripts/encrypt_bank_secrets.php als idempotenter Migrations-Helfer
- Neue Tests 36 (Crypto) und 37 (BankSource)
- Eingabe-Spalte aus Beleg-Liste entfernt (alloc_betrag als Hidden-Field)
- Beleg-Liste nach Datum neu->alt sortiert
- Ausgangsrechnungen ohne Bank-Link in offene Belege aufgenommen
- Rechnungen mit fehlendem Beleg (beleg_id IS NULL) werden angezeigt
- Beim Verknüpfen solcher Rechnungen wird Beleg-PDF automatisch erstellt
- Verbindlichkeiten in Kategorie-Auswahl bei Belegbuchung ergänzt
- Direkte Kontonummer-Eingabe über Suchfeld (ohne Dropdown-Auswahl)
- Auto-Select im Konto-Suchfeld nur noch bei exaktem Kontonummer-Treffer
- Flash-Messages bleiben 20 Sekunden sichtbar
- Bewirtungsfelder (Grund, Teilnehmerliste) am Beleg statt an Buchung gespeichert (Migration 024)
- Bewirtungssplit für Konto 4652→4657 analog zu 4650→4654; USt 0% für 4652/4657 automatisch
- Bewirtungshinweis als persistentes Flash (verschwindet nicht automatisch)
- Eingangsdatum aus Belegen entfernt (Migration 025)
- Bruttobetrag am Beleg wird aus Buchungszeilen berechnet, keine manuelle Eingabe mehr
- Kontenrahmen von Produktion übernommen (Migration 026)
- HTTP Basic Auth durch cookie-basierte Session-Auth ersetzt (24 h absolutes Timeout)
- Neue users-Tabelle (Migration 005) mit bcrypt-Passwort-Hashing
- Login-/Logout-Routen und eigenständiges Login-Template
- Ersteinrichtungsflow: erster Benutzer beim ersten Start direkt über /login anlegen
- Neuer Menüpunkt "Benutzer" (/useradmin) zum Anlegen, Deaktivieren und Löschen von Benutzern
- AUTH_USER/AUTH_PASS aus Konfiguration und docker-compose.yml entfernt