# Changelog

Alle wesentlichen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

## [3.5] - 2026-03-05

### Hinzugefügt
- **PDF-Kontoauszüge per FinTS**: Elektronische Kontoauszüge direkt von der Bank abrufen
  - **HKEKP**: Direkt-Abruf (für Banken die dies unterstützen)
  - **HKKAA**: Fallback über Bank-Archiv/Postfach (VR Banken, etc.)
  - Automatische Methodenwahl: System prüft BPD und wählt beste verfügbare Methode
  - Neue Segmente für php-fints: EKP/* (HKEKP) und KAA/* (HKKAA)
  - Integration in bestehende PDF-Kontoauszüge-Seite
- **Cronjob für automatischen PDF-Abruf**: Neue geplante Aufgabe `doAutoFetchPdf`
  - Aktivierbar über Konstante `BANKIMPORT_PDF_AUTO_ENABLED`
  - Ruft automatisch neue PDF-Kontoauszüge ab und speichert sie

### Geändert
- PDF-Kontoauszüge-Seite: Neues Layout mit zwei Spalten (FinTS-Abruf links, Upload rechts)
- fints.class.php: Neue Methoden für PDF-Abruf mit automatischer Methodenwahl

### Technisch
- Erweiterung der php-fints Bibliothek:
  - HKEKP-Unterstützung (Segment/EKP/*): HKEKPv2, HIEKPv2, HIEKPSv2
  - HKKAA-Unterstützung (Segment/KAA/*): HKKAAv2, HIKAAv2, HIKAASv1
  - Action-Klassen: GetStatementPDF, GetStatementFromArchive
- Neue Methoden in BankImportFinTS:
  - `getPdfStatementMethod()`: Prüft welche Methode die Bank unterstützt
  - `getStatementPDFAuto()`: Automatische Methodenwahl
  - `supportsArchiveStatements()`: Prüft HKKAA-Support

## [3.1] - 2026-03-05

### Hinzugefügt
- **Skonto-Erkennung**: Multi-Invoice-Matching erkennt jetzt Skonto-Abzüge bis 3%
- **Automatische Skonto-Verarbeitung**: Zahlungen werden proportional auf Rechnungen verteilt
- **Skonto-Vermerk**: Rechnungen werden mit `close_code='discount_vat'` als bezahlt markiert
- **Skonto-Dokumentation**: Notiz zeigt Skonto-Betrag pro Rechnung

### Verbessert
- **Match-Sortierung**: Matches mit näherem Betrag werden jetzt bevorzugt angezeigt
- **Multi-Match Score**: Von 90 auf 98 erhöht, damit Sammelzahlungen vor Einzelmatches erscheinen
- Sammelzahlungen mit Skonto werden jetzt korrekt als Gruppe erkannt (statt einzelner Rechnungen)

### Beispiel
Transaktion -523,40€ mit 3 Rechnungen (Summe 529,69€):
- Erkennt 6,29€ Skonto-Abzug
- Verteilt proportional: 59,37€ + 206,72€ + 257,32€
- Markiert alle 3 als "bezahlt mit Skonto"

## [3.0] - 2026-03-05

### Hinzugefügt
- **Repair-Seite**: Neue Admin-Seite zum Reparieren verwaister Transaktionen
  - Findet Transaktionen die als "Neu" markiert sind, obwohl Zahlung bereits existiert
  - Ermöglicht manuelles oder Batch-Reparieren
  - Erreichbar über Admin-Setup → Admin-Werkzeuge
- **Admin-Werkzeuge Sektion**: Neuer Bereich im Setup für Wartungsfunktionen

### Geändert
- **Filter für bezahlte Rechnungen**: Zeigt jetzt alle bezahlten Rechnungen die noch nicht über BankImport verknüpft sind
  - Prüft nur BankImport-Verknüpfung (nicht mehr payment.fk_bank)
  - Ermöglicht nachträgliche Verknüpfung von extern bezahlten Rechnungen

## [2.9] - 2026-02-23

### Entfernt
- **Browser Push-Notifications**: Entfernt zugunsten von GlobalNotify
  - `bankimport_notify.js.php` gelöscht
  - Benachrichtigungen laufen jetzt zentral über GlobalNotify-Widget

## [2.8] - 2026-02-23

### Hinzugefügt
- **GlobalNotify Integration**: Benachrichtigungen über das zentrale GlobalNotify-Modul
  - TAN-Anforderung: Sofortige Benachrichtigung wenn Bank TAN verlangt
  - Login-Fehler: Warnung bei fehlgeschlagenem Bank-Login
  - Session abgelaufen: Info wenn neue Authentifizierung nötig
  - Cron pausiert: Warnung wenn automatischer Import pausiert wurde
- **Zahlungsabgleich-Benachrichtigungen**:
  - Info über neue importierte Bankbuchungen
  - Aktion erforderlich wenn unzugeordnete Buchungen warten
- **Helper-Funktion**: `BankImportTransaction::notify()` für sichere GlobalNotify-Nutzung

### Hinweis
GlobalNotify ist optional. Ohne das Modul werden Benachrichtigungen ins Dolibarr-Log geschrieben.

## [2.7] - 2026-02-23

### Hinzugefügt
- **Dediziertes Cron-Logging**: Separate Log-Datei unter `/documents/bankimport/logs/cron_bankimport.log`
- **Shutdown Handler**: Fängt fatale PHP-Fehler ab und protokolliert sie
- **Pause-Mechanismus**: Cron pausiert automatisch nach 3 aufeinanderfolgenden Fehlern (60 Min)
- **Auth-Fehler-Erkennung**: Erkennt Bank-Authentifizierungsfehler und pausiert um Kontosperrung zu vermeiden
- **Cron-Monitor Admin-Seite**: Neue Seite unter Admin > BankImport > Cron-Monitor zeigt Status, Logs und ermöglicht Pause/Resume

### Verbessert
- Robustere Fehlerbehandlung mit try/catch für alle Operationen
- Detailliertes Logging mit Zeitstempeln und Elapsed-Time
- Fehler-Zähler verhindert wiederholte fehlgeschlagene Versuche

## [2.6] - 2026-02-20

### Hinzugefügt
- **Multi-Rechnungszahlungen**: Eine Bankbuchung kann jetzt mit mehreren Rechnungen verknüpft werden (Sammelzahlungen)
- **Zahlungsverknüpfung aufheben**: Falsche Zuordnungen können über "Verknüpfung aufheben" korrigiert werden
- **Detailansicht Verknüpfungen**: In der Buchungsdetailansicht werden verknüpfte Zahlungen, Rechnungen und Bank-Einträge angezeigt
- **Bezahlte Rechnungen verknüpfen**: Bereits bezahlte Rechnungen können mit Bankbuchungen verknüpft werden (für nachträgliche Bank-Zuordnung)

### Verbessert
- Bessere Anzeige von Multi-Invoice-Matches im Zahlungsabgleich
- Flexible Rechnungsauswahl per Checkbox bei Sammelzahlungen

## [1.7] - 2026-02-20

### Hinzugefügt
- **Multi-Rechnungszahlungen**: Eine Bankbuchung kann jetzt mit mehreren Rechnungen verknüpft werden (Sammelzahlungen)
- **Zahlungsverknüpfung aufheben**: Falsche Zuordnungen können über "Verknüpfung aufheben" korrigiert werden
- **Detailansicht Verknüpfungen**: In der Buchungsdetailansicht werden verknüpfte Zahlungen, Rechnungen und Bank-Einträge angezeigt
- **Bezahlte Rechnungen verknüpfen**: Bereits bezahlte Rechnungen können mit Bankbuchungen verknüpft werden (für nachträgliche Bank-Zuordnung)

### Verbessert
- Bessere Anzeige von Multi-Invoice-Matches im Zahlungsabgleich
- Flexible Rechnungsauswahl per Checkbox bei Sammelzahlungen

## [1.6] - 2026-02-15

### Hinzugefügt
- PDF-Kontoauszüge: Upload und Verwaltung mit automatischer Metadaten-Erkennung
- Mehrfach-Upload für PDF-Kontoauszüge
- Erinnerungsfunktion für veraltete Kontoauszüge
- Dashboard-Widget für offene Zuordnungen

### Verbessert
- Optimierte Buchungszuordnung mit Scoring-System
- Verbesserte Benutzeroberfläche

## [1.5] - 2026-02-01

### Hinzugefügt
- Automatischer Import via Cronjob
- Unterstützung für SecureGo Plus (Decoupled TAN)
- Automatische Kontoerkennung

### Verbessert
- Stabilere FinTS-Verbindung
- Bessere Fehlerbehandlung

## [1.0] - 2026-01-15

### Erste Version
- FinTS/HBCI-Anbindung für deutsche Banken
- Import von Kontobuchungen
- Grundlegende Buchungszuordnung zu Rechnungen
- Integration in Dolibarr-Menüstruktur
