Commit graph

90 commits

Author SHA1 Message Date
fds2610-bot
3acd0cea5c Fix #156: Direkte SQL-Aufrufe aus Controllern in die Modellschicht verschoben 2026-08-10 21:13:11 +02:00
fds2610-bot
cc9f497165 Fix #147: Benutzerverwaltung nur noch für Admins zugänglich 2026-08-09 20:21:04 +02:00
fds2610-bot
88d9cc53ff Fix #155: AfA-Buchungen laufen jetzt über Booking::createAfa()/reverseAfa()
AssetController setzte INSERT INTO bookings bislang direkt ab und umging
damit die Sperre des Geschäftsjahres, den transaktionalen Schutz der
Nummernvergabe und ordnete Stornos dem falschen Geschäftsjahr zu.
2026-08-03 22:09:16 +02:00
fds2610-bot
c9afc3e33f Fix #165: Ereignisse zeigen Fehler und Warnungen aus dem ganzen System 2026-08-02 16:50:18 +02:00
fds2610-bot
043c68b2e4 Fix #nummernkreis: Löschen gibt die zuletzt vergebene Rechnungs- und Belegnummer wieder frei 2026-08-02 15:37:07 +02:00
fds2610-bot
934532fac9 Fix #zahlungsstatus: Rechnungsstatus folgt automatisch den erfassten Zahlungen 2026-07-31 20:01:32 +02:00
fds2610-bot
d83d63cc14 Fix #xml-rechnung: USt-IdNr. des Kunden (BT-48) landet wieder im XML
Invoice::find() selektierte c.ust_id nicht, invoices hat keine eigene
Spalte dafür - der Zweig addDocumentBuyerVATRegistrationNumber() lief
deshalb nie. Bei Kategorie S optional, bei Reverse Charge und
innergemeinschaftlichen Lieferungen aber Pflicht.
2026-07-31 18:35:20 +02:00
fds2610-bot
54fa6dee58 Fix #150: Logo-Upload repariert, Nutzdaten nach data/ getrennt, Backups vollständig 2026-07-31 16:22:09 +02:00
fds2610-bot
acd32a76a5 Fix #148: SMTP-Header-/Kommando-Injection über mail_from_email behoben 2026-07-30 17:57:44 +02:00
fds2610-bot
2b93d38513 Feature: Kontostand nach Direktabruf auf Bank-Verbindungskachel 2026-07-21 18:43:41 +02:00
fds2610-bot
8b562dcb41 Fix #126: E-Mail-Header-Injection über mail_subject_template verhindert 2026-07-11 12:27:16 +02:00
fds2610-bot
1d93ab8662 Fix #122: Brute-Force-Schutz für /login (Account-Lockout nach Fehlversuchen) 2026-07-10 14:37:22 +02:00
fds2610-bot
6292c90fc5 Fix #119: SMTP-/Nextcloud-Passwörter verschlüsselt gespeichert, kein Klartext im HTML mehr 2026-07-08 07:48:16 +02:00
fds2610-bot
649684a77b Fix #116: Beleg-Uploads aus dem Web-Root entfernt (nach data/uploads verschoben) 2026-07-08 07:37:45 +02:00
fds2610-bot
2012f228c4 Fix #114: Beleg-Löschung nicht mehr durch Datei-Permission-Fehler unterbrochen 2026-07-06 23:57:37 +02:00
fds2610-bot
d4602368e7 Fix #111: Zwei zusätzliche CC-E-Mail-Adressen pro Kunde 2026-07-02 21:08:11 +02:00
fds2610-bot
1fec39da9b Fix #109: Ereignisse-Log für Nextcloud-Import 2026-06-29 18:21:05 +02:00
fds2610-bot
6ce2c72cd9 Fix #108: Lieferant in Belegliste inline bearbeiten 2026-06-29 18:15:39 +02:00
fds2610-bot
4fae43970b Fix: Undefined-Array-Key-Warning bei Buchungsvorlagen ohne Standard-Lieferant 2026-06-11 19:48:59 +02:00
fds2610-bot
af83ae8592 Feature: E-Mail-Betreff und -Text pro Kunde statt global
- 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
2026-05-30 14:22:57 +02:00
fds2610-bot
3fe5015027 Feature: Buchungsvorlagen – Bankbuchung verknüpfen, Zahldatum, Standard-Lieferant
- 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
2026-05-30 14:22:48 +02:00
fds2610-bot
f9b6a5d303 Feature: Buchungsvorlagen im Buchungsdialog
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.
2026-05-28 21:57:04 +02:00
fds2610-bot
5546c1a9e7 Bugfixes und Kleinigkeiten Anlagegüter 2026-05-24 15:22:18 +02:00
fds2610-bot
b637b7b5ab Anlagevermögen überarbeitet, AFA 2026-05-24 12:56:21 +02:00
fds2610-bot
1e2c8cf498 Fix: Belegsumme blendet steuerliche Umbuchungen auf Konto 1800 aus 2026-05-23 16:50:20 +02:00
fds2610-bot
4eb622fa7d Fix: Belegsumme und Bankzuordnung nach Storno korrekt berechnen 2026-05-23 15:23:56 +02:00
fds2610-bot
07671b520b Fix: tan_mode_id in BankSource-Whitelist ergänzt 2026-05-23 13:54:29 +02:00
fds2610-bot
6ba281cfc1 Feature: "Abrufen ab"-Auswahl im Bearbeiten-Dialog der Direktverbindungen 2026-05-22 13:02:32 +02:00
fds2610-bot
0dc1b6c3a7 Fix: FinTS-Konto-Auswahl speichern + Bearbeiten-Dialog mit Checkboxen
Session-Lock im SSE-Stream blockierte den parallelen POST der Konto-Auswahl
bis zum Timeout. session_write_close() im Run-Endpoint behebt das.
Bearbeiten-Dialog zeigt gespeicherte Konto-Identifier jetzt als Checkboxen;
Abhaken entfernt aus account_filter, alles abgehakt = Reset.
2026-05-22 12:19:16 +02:00
fds2610-bot
b42758eb6e Feature: Drag-and-Drop Reihenfolge der Direktverbindungs-Kacheln
- 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
2026-05-22 09:24:56 +02:00
fds2610-bot
995b52fbd3 Feature: FinTS-Direktverbindung und vereinheitlichte Importquellen
- 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)
2026-05-22 07:17:00 +02:00
fds2610-bot
aa9ccd1207 Feature: Bank-Import mit konfigurierbaren Formaten, Buchungstext-Templates und Dublettenprüfung
Fix: Dublettenprüfung verwendet nur (buchungstag, wertstellung, wert) ohne buchungstext,
da Vorlagenänderungen sonst zu falschen Duplikaten führen.
2026-05-17 13:47:16 +02:00
fds2610-bot
3132196ad6 Refactor: Code-Qualität, Sicherheit und Konsistenz 2026-05-16 07:30:46 +02:00
fds2610-bot
93d6aacbae Feature: Lieferantenname im Buchungsjournal unter Belegnr. anzeigen und in Suche einbeziehen 2026-05-15 20:47:17 +02:00
fds2610-bot
4fb0b21a90 Feature: Bank-Zuordnung zeigt Ausgangsrechnungen inkl. Rechnungen ohne Beleg
- 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
2026-05-15 19:09:45 +02:00
fds2610-bot
700dc2952f Fix: betrag_brutto in Beleg-Metadaten nach jeder Buchung aktualisieren 2026-05-15 18:20:12 +02:00
fds2610-bot
702b0e4664 Feature: Bankbuchung auf mehrere Belege aufteilen mit Restsaldo und Status teilweise 2026-05-15 17:30:31 +02:00
fds2610-bot
ce7a64534b Feature: Bankbuchungs-Badge in Beleganzeige unterhalb der Buchungszeilen 2026-05-15 17:12:02 +02:00
fds2610-bot
d7cc7c2661 Feature: Gebuchte Bankbuchungen verlinken auf Beleg; Belegnummer in Statuszeile 2026-05-15 17:09:35 +02:00
fds2610-bot
aa0dd01e66 Fix: Dateiname-Check entfernt – Dublettenprüfung übernimmt die Schutzfunktion 2026-05-15 17:05:05 +02:00
fds2610-bot
eede667809 Feature: Dublettenprüfung beim Bank-Import mit interaktiver Bestätigungsseite 2026-05-15 16:58:49 +02:00
fds2610-bot
d26bbfc37b Fix: Bank-Import-Duplikate durch Transaktion, UNIQUE-Constraint und Dateiname-Prüfung verhindern 2026-05-15 16:51:38 +02:00
fds2610-bot
99aa823d0f Feature: Beleg-Vorschau-Tooltip in Bank-Zuordnung, Größe in Einstellungen 2026-05-14 20:14:53 +02:00
fds2610-bot
02c642e53e Feature: Bank buchen – Import, Liste, Detail, Beleg-Verknüpfung 2026-05-14 19:56:26 +02:00
fds2610-bot
6c4faec3bd Feature: UStVA Kz 61 = ust89 (ReverseCharge-Symmetrie); Fix: Storno überträgt steuerart 2026-05-14 19:13:04 +02:00
fds2610-bot
d05e9991bd Feature: ig. Erwerb 19 % ReverseCharge via Kindzeilen 1574/1774 2026-05-10 16:23:14 +02:00
fds2610-bot
55c02b54de Feature: USt-Buchungszeilen für Ausgangsrechnungen einführen
- Migration 046: ustva_kz='83'/'84' für Konten 1776/1771, Bestandsmigration für Einnahme-Buchungen
- Booking::create(): USt-Kindzeile auf 1771/1776 für Einnahmen mit 7/19 % (analog VSt)
- UstvaCalculator: Kz 83/84 kontobasiert via 1771/1776, KZ_ACCOUNT_MAP aktualisiert
- Invoice::cancel(): nur Hauptbuchungen direkt stornieren (parent_booking_id IS NULL)
- Tests 10, 27 angepasst; Test 29 neu
2026-05-10 15:11:00 +02:00
fds2610-bot
d3a6c379c9 Feature: Vorsteuerkonten 1571/1576 aktivieren, VSt-Buchungszeilen einführen
- Migration 044: Konten 1574 (VSt i.g.E. 19%) und 1774 (USt i.g.E. 19%) anlegen
- Migration 045: Konten 1571/1576 anlegen, ustva_kz='61'/'62' setzen,
  altes DATEV-Routing (ustva_kz '61'/'62' auf Betriebsausgabe-Konten) entfernen,
  parent_booking_id-Spalte, VSt-Buchungszeilen für Bestandsbuchungen migrieren
- Booking::create(): automatisch VSt-Zeile auf 1576/1571 für Ausgaben mit 7/19 %
- Booking::reverse(): VSt-Zeilen beim Storno mitaufheben (reversed_by setzen)
- BookingController::destroy(): VSt-Kindzeilen beim Löschen (Testmodus) mit löschen
- UstvaCalculator: Kz 61/62 jetzt kontobasiert via 1576/1571 (betrag_netto),
  Step 2 (buchungsbasiert via ust_satz) entfernt
- Beleg::all/find: betrag_brutto-Aggregation und Suche schließen VSt-Zeilen aus
- Tests 12, 18 angepasst; Test 28 neu
2026-05-10 14:45:16 +02:00
fds2610-bot
e62fbe9efe Fix: Beleg referenziert Rechnung via invoice_id, serveFile leitet auf Rechnungs-PDF weiter 2026-05-05 15:29:50 +02:00
fds2610-bot
994eb95f70 Feature: Zahlungs-Modal in Rechnungsdetailansicht + Invoice::createBookingsFromLines() 2026-05-05 15:14:43 +02:00