- 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)
117 lines
6 KiB
Markdown
117 lines
6 KiB
Markdown
# Funktionen
|
||
|
||
## Kontenrahmen SKR03
|
||
|
||
DATEV-konformer SKR03 2026 mit 157 Systemkonten (Klassen 0, 1, 2, 4, 8), zugeschnitten auf EÜR-Buchhalter ohne Bilanzierungspflicht. Alle Konten sind mit geprüften UStVA-Kennzahlen (ELSTER) und EÜR-Zeilennummern hinterlegt.
|
||
|
||
Vollständige Kontenliste: [kontenrahmen.md](kontenrahmen.md)
|
||
|
||
---
|
||
|
||
## Belegverwaltung
|
||
|
||
- Upload von PDF, PNG, JPEG, TIFF und ZUGFeRD-XML
|
||
- SHA-256 Integritätsprüfung je Datei
|
||
- Automatischer Weißrand-Zuschnitt bei JPEG/PNG via GD
|
||
- KI-gestützter Kontierungsvorschlag (optional, siehe [konfiguration.md](konfiguration.md))
|
||
- Nextcloud-Import via WebDAV (optional)
|
||
- Belege können nicht gelöscht werden, solange Buchungen darauf verweisen (GoBD)
|
||
|
||
---
|
||
|
||
## Buchungen
|
||
|
||
EÜR-Buchungsmodell (Einnahme/Ausgabe) mit Kategorie- und Zahlungskonto.
|
||
|
||
- **Steuerarten** für Auslandsumsätze: Inland, steuerfreie ig. Lieferung (Kz 41), steuerfreie Ausfuhr (Kz 44), ig. Erwerb 19 % (Kz 89/91), ig. Erwerb 7 % (Kz 93/94)
|
||
- **Bewirtungsausgaben**: automatischer Split 70 %/30 % bei Konten 4650, 4651, 4652
|
||
- **Eigenanteil** (30 %) bei Telefon/Internet (Konten 4920/4925): optional zubuchbar
|
||
- **Stornobuchungen**: GoBD-konforme Gegenbuchung statt Löschung
|
||
- **GoBD-Schutz**: MariaDB `BEFORE UPDATE/DELETE`-Trigger verhindern nachträgliche Manipulation gebuchter Sätze
|
||
- **Journal**: gefilterte Übersicht aller Buchungen mit CSV-Export
|
||
|
||
---
|
||
|
||
## Lieferantenverwaltung
|
||
|
||
CRUD für Lieferantenstammdaten. Lieferanten können Belegen zugeordnet werden; beim Buchen eines Belegs wird ein unbekannter Lieferant automatisch angelegt (findOrCreate). Der Lieferantenname ist direkt im Beleg inline editierbar.
|
||
|
||
---
|
||
|
||
## Kundenverwaltung
|
||
|
||
CRUD für Kundenstammdaten. Kunden werden beim Erstellen von Ausgangsrechnungen ausgewählt.
|
||
|
||
---
|
||
|
||
## Ausgangsrechnungen
|
||
|
||
- DIN 5008-konformes Layout, PDF-Export via mPDF
|
||
- Rechnungsnummernformat **PPPYYYYMM-nn** (konfigurierbarer Präfix + Jahr + Monat + laufende Nummer, monatlicher Reset)
|
||
- Status-Workflow: Entwurf → Finalisiert (gesperrt für Bearbeitung) → Gesendet → Bezahlt / Storniert
|
||
- Buchungsworkflow: Finalisierung erzeugt automatisch einen Beleg und eine Buchung in der Belegverwaltung
|
||
- **ZUGFeRD EN16931 (E-Rechnung)**: Jede generierte PDF enthält ein eingebettetes `factur-x.xml` nach EU-Norm EN 16931; Pflichtangaben laut § 14 UStG vollständig abgedeckt; Validierung möglich unter [portal.e-rechnung-bund.de](https://portal.e-rechnung-bund.de/validator); Bibliothek: `horstoeko/zugferd` v1.x
|
||
- E-Mail-Versand via SMTP direkt aus der Anwendung
|
||
- **Stornorechnung (§ 14 UStG)**: Finalisierte, gesendete oder bezahlte Rechnungen können storniert werden; dabei entsteht automatisch eine nummerierte Stornorechnung mit negierten Beträgen (`storno_of_id`), GoBD-konforme Stornobuchungen heben die Originalbuchungen auf; Querverweise in der Detailansicht, angepasstes PDF-Layout (Titel „STORNORECHNUNG", Referenzzeile)
|
||
|
||
---
|
||
|
||
## Anlagevermögen
|
||
|
||
Anlagenspiegel für abnutzbare Wirtschaftsgüter – siehe [anlagevermögen.md](anlagevermögen.md).
|
||
|
||
---
|
||
|
||
## Bank buchen
|
||
|
||
- Import von Kontoauszügen über zwei Wege: **CSV-Upload** (TXT/XLSX ebenfalls) und **Direktverbindung** (API/FinTS)
|
||
- **CSV-Upload**: konfigurierbare Spalten- und Datumsformate je Bank, automatische Format-Erkennung beim Datei-Upload, Vorschau-Panel mit Headerzeile und Spalten-Zuordnung; bei unbekannten Formaten wird ein Vorschlag generiert und auf der Settings-Seite zum expliziten Speichern angeboten
|
||
- **Direktverbindung „PayPal"** (NVP/SOAP-API): API-Benutzer, API-Kennwort, Signature und Sandbox-Flag werden verschlüsselt abgelegt. Live-Log via Server-Sent Events
|
||
- **Direktverbindung „FinTS"** (Comdirect, DKB und weitere): BLZ, Benutzerkennung und PIN, optional FinTS-Server-URL (sonst Default aus dem Provider) und IBAN-Filter. PIN wird verschlüsselt abgelegt (AES-256-GCM). Leseabruf mit PIN; TAN-pflichtige Aktionen werden mit Fehlermeldung abgebrochen
|
||
- **Letzter Abrufzeitpunkt** wird pro Verbindung gespeichert; nächster Abruf startet ab 00:00 dieses Tages (max. ein Tag Überlappung für Dedup)
|
||
- **Dublettenprüfung**: CSV-Import vergleicht Datum+Betrag+Text; Direktverbindungen nutzen eine `external_id` (Hash aus IBAN/Datum/Betrag/Verwendungszweck bei FinTS, Transaktions-ID bei PayPal)
|
||
- **Beleg-Zuordnung**: jede Banktransaktion kann einem oder mehreren Belegen zugeordnet werden; der zugeordnete Betrag wird separat erfasst
|
||
- **Teilzuordnung**: eine Transaktion kann schrittweise mehreren Belegen anteilig zugeordnet werden
|
||
- **Status-Logik**: `offen` → keine Zuordnung, `teilweise` → Restsaldo > 0,01 €, `gebucht` → vollständig zugeordnet
|
||
- Direkter Beleg-Upload aus der Transaktionsansicht heraus (erzeugt neuen Beleg und verknüpft ihn)
|
||
- **Verschlüsselung**: Der `APP_KEY` in `.env` ist Pflicht für Direktverbindungen – im Backup mitsichern, Verlust = Verlust aller gespeicherten Credentials
|
||
|
||
---
|
||
|
||
## UStVA (Umsatzsteuervoranmeldung)
|
||
|
||
- Monatliche Kennzahlen-Berechnung aus Buchungen (Kz 81, 89, 66, 61, 83)
|
||
- ELSTER XML-Export
|
||
- Drill-down: Klick auf eine Kennzahl zeigt alle zugehörigen Buchungszeilen
|
||
|
||
Zuordnungsregeln: [berechnungslogik.md](berechnungslogik.md)
|
||
|
||
---
|
||
|
||
## EÜR (Einnahmen-Überschuss-Rechnung)
|
||
|
||
- Jahresauswertung: Einnahmen, Ausgaben, Gewinn je Kategorie-Konto
|
||
- Nicht abzugsfähige Betriebsausgaben (§ 4 Abs. 5 EStG, EÜR-Zeile 51) in separatem Abschnitt
|
||
- PDF-Export
|
||
- Drill-down: Klick auf ein Konto zeigt alle zugehörigen Buchungszeilen
|
||
|
||
Zuordnungsregeln: [berechnungslogik.md](berechnungslogik.md)
|
||
|
||
---
|
||
|
||
## Einstellungen
|
||
|
||
- Firmendaten und Logo (erscheinen auf Rechnungen und im EÜR/UStVA-Export)
|
||
- ELSTER-Steuernummer
|
||
- Nummernkreis-Präfixe für Belege, Rechnungen und Anlagen
|
||
- SMTP-Konfiguration für E-Mail-Versand (Host, Port, Benutzer, Passwort, TLS/SSL)
|
||
- KI-Kontierungsvorschlag (Ollama oder OpenAI-kompatible API)
|
||
- Nextcloud-Belegimport (WebDAV-Zugangsdaten)
|
||
|
||
---
|
||
|
||
## Benutzerverwaltung
|
||
|
||
- Benutzer anlegen, bearbeiten, deaktivieren und löschen
|
||
- Session-basierte Authentifizierung mit 24 h Timeout
|
||
- Erste Benutzeranlage über Ersteinrichtungs-Dialog beim ersten Aufruf
|