8.5 KiB
8.5 KiB
Changelog
2026-03-29 – EÜR: Spaltenauswahl nach Kontenart statt Buchungstyp
Geändert
EuerCalculator::calculate()wertetaccounts.kontenartaus stattbuchungstypBetriebseinnahme→ Einnahmen-Spalte,Betriebsausgabe→ Ausgaben-SpaltePrivat,Zahlungskonto,Verbindlichkeitals Kategorie-Konto werden nicht in der EÜR ausgewiesen- Vorzeichen von
betrag_nettowerden beibehalten (keinabs()mehr) – negative Beträge mindern die jeweilige Spalte - Buchungen desselben Kontos werden unabhängig vom
buchungstypzu einem Eintrag zusammengefasst
Betrifft
src/Services/EuerCalculator.phpBERICHTE.md(EÜR-Kapitel aktualisiert)
2026-03-29 – UStVA: kontonummernbasierte Kennzahlenberechnung
Geändert
UstvaCalculator::calculate()wertet ausschließlichaccounts.ustva_kzdes Kategorie-Kontos aus –buchungstypundsteuerartwerden nicht mehr benötigtUstvaCalculator::fetchBookingsForKz()filtert überk.ustva_kz IN (...)statt über Buchungsfelder- Kz 83 und 84 kommen jetzt direkt aus
betrag_ustder Erlöskonten (stattKz81 × 19 %) - Kz 91 und 94 kommen direkt aus
betrag_ustder ig.-Erwerb-Konten (statt abgeleitet)
Betrifft
src/Services/UstvaCalculator.php- Migration
010_ustva_kz_konto_mapping.sql BERICHTE.md(UStVA-Kapitel vollständig neu)
Migration 010 – Kontenanpassungen
- Alle Betriebsausgabe-Konten mit
steuercode='VSt19':ustva_kzvon'66'auf'61' - Alle Betriebsausgabe-Konten mit
steuercode='VSt7':ustva_kzvon'66'auf'62' - Neue Konten: 3425 „Innergemeinschaftliche Erwerbe 19 %" (
ustva_kz='89'), 3420 „Innergemeinschaftliche Erwerbe 7 %" (ustva_kz='93')
2026-03-28 – 30% Eigenanteil-Kennzeichnung und Korrekturbuchungen
Hinzugefügt
- Checkbox „30% Eigenanteil buchen" in der Buchungszeilen-Erfassung (zwischen Nettobetrag und Submit-Button)
- Neues Feld
eigenanteil_30 TINYINT(1)in derbelege-Tabelle (Migration009_beleg_eigenanteil_30.sql) - Der Checkbox-Wert wird beim Speichern einer Buchung in die Beleg-Metadaten übernommen
- Bei gesetzter Checkbox werden automatisch zwei Korrekturbuchungen angelegt oder aktualisiert:
- 30% des Nettobetrags an Konto 8922 (nicht abzugsfähiger Eigenanteil), Zahlungskonto 1800
- 30% der errechneten USt an Konto 1776 (Vorsteuerkorrektur), Zahlungskonto 1800 – nur wenn USt-Satz > 0
- Im Testmodus: bestehende Korrekturbuchungen werden direkt überschrieben
- Im Produktivmodus: bestehende Korrekturbuchungen werden GoBD-konform storniert und neu angelegt
Betrifft
src/Views/belege/detail.phpsrc/Controllers/BookingController.phpsrc/Models/Booking.php(neue MethodenupsertEigenanteil30,upsertKorrekturbuchung)- Migration:
009_beleg_eigenanteil_30.sql
2026-03-27 – DATEV-konformer SKR03 Kontenrahmen (#11)
Geändert
- Kontenrahmen: Bisherige ~80 Konten durch DATEV-konformen SKR03 ersetzt (Migration
008_skr03_vollstaendig.sql) - Umfang: 157 Systemkonten aus Klassen 0 (Anlagevermögen), 1 (Zahlungsmittel, Vorsteuer, USt, Privat), 2 (Eigenkapital), 4 (Betriebsausgaben), 8 (Betriebseinnahmen)
- EÜR-Fokus: Keine Forderungs- oder Verbindlichkeitskonten (nicht bilanzierend)
- Kompatibilität: Alte Konten bleiben mit
is_system = 0erhalten – bestehende Buchungen sind nicht betroffen
Betrifft
- Migration:
008_skr03_vollstaendig.sql
2026-03-27 – Ausgangsrechnungen in Dashboard/EÜR/UStVA (#8)
Behoben
- Seed-Skript:
scripts/seed-testdata.phpriefInvoice::finalize()auf, ohne anschließend Beleg und Buchungen anzulegen – Ausgangsrechnungen fehlten daher in allen Auswertungen - Ursache:
Invoice::finalize()(Model) setzt nur Status und Rechnungsnummer; die Buchungserstellung liegt inInvoiceController::createBelegAndBookings()und wurde im Seed nicht aufgerufen - Fix: Seed-Skript legt nach
Invoice::finalize()nun Beleg und zugehörige Buchungen an (analog zur Controller-Logik), sodass Ausgangsrechnungen korrekt in EÜR, UStVA und Dashboard erscheinen
Betrifft
- Skript:
scripts/seed-testdata.php - Test:
tests/09_InvoiceToReportsTest.php(neu – End-to-End-Test Ausgangsrechnung → EÜR/UStVA/Dashboard)
2026-03-26 – Lieferantenmanagement (#7)
Neu
- Lieferantenverwaltung: Neue Seite
/supplierszum Anlegen, Bearbeiten und Löschen von Lieferanten - Lieferant am Beleg: Im Metadaten-Formular der Belegdetailseite kann ein Lieferant per Dropdown/Freitexteingabe ausgewählt werden; unbekannte Namen werden beim Speichern automatisch angelegt
- Datenbank: Tabelle
suppliers(id, name) und Fremdschlüsselsupplier_idinbelege - Navigation: Neuer Menüpunkt "Lieferanten" im Bereich Belege & Buchungen
Betrifft
- Migration:
007_suppliers.sql - Model:
Supplier.php(neu),Beleg.php(JOIN + updateMeta) - Controller:
SupplierController.php(neu),BelegController.php - Views:
suppliers/list.php,suppliers/form.php(neu),belege/detail.php,layout/nav.php - Routes:
public/index.php - Test:
08_LieferantTest.php
2026-03-26 – EÜR-Buchungsmodell (Soll/Haben → Einnahme/Ausgabe)
Geändert
- Buchungsmodell: Doppelte Buchführung (Soll-Konto/Haben-Konto) durch reines EÜR-Modell ersetzt – jede Buchung hat nun
buchungstyp(Einnahme/Ausgabe),kategorie_konto_id(Was?) undzahlungskonto_id(Wie bezahlt?) - Kontenarten: Umbenannt von Aktiv/Passiv/Aufwand/Ertrag/Neutral zu Betriebseinnahme/Betriebsausgabe/Zahlungskonto/Verbindlichkeit/Privat
- EÜR-Berechnung: Vereinfacht – gruppiert direkt nach
buchungstypstatt komplexer Soll/Haben-Ableitung - UStVA-Berechnung: Verwendet
buchungstypstatt Kontenart-Ableitung für USt/VSt-Zuordnung - UI-Terminologie: Alle Bezeichnungen in Views, Journal, Dashboard und Formularen von Soll/Haben auf Typ/Kategorie/Zahlungskonto umgestellt
- CSV-Export: Spalten an neues Modell angepasst (Typ, Kategorie-Kto., Zahlungskonto-Kto.)
Betrifft
- Schema (
001_initial_schema.sql), Seed (002_seed_skr03.sql) - Models:
Booking.php,Account.php - Services:
EuerCalculator.php,UstvaCalculator.php - Controllers:
BookingController.php,AccountController.php,InvoiceController.php - Views:
dashboard.php,journal.php,detail.php,accounts/form.php,accounts/list.php - JavaScript:
app.js - Tests: 02, 04, 05 aktualisiert + neuer Test 06 (EÜR-Buchungsmodell)
2026-03-25 – Session-Authentifizierung & Benutzerverwaltung
Features
- Session-Authentifizierung: HTTP Basic Auth durch cookie-basierte Session-Authentifizierung ersetzt; Sessions laufen nach 24 Stunden absolut ab
- Benutzerverwaltung (
/useradmin): Benutzer anlegen, bearbeiten (Benutzername und Passwort), deaktivieren und löschen; Passwörter mit bcrypt gehasht - Ersteinrichtungsflow: Beim ersten Start ohne Benutzer ermöglicht
/logindas Anlegen des ersten Administrator-Accounts - Abmelden-Button in der Seitenleiste
Geändert
AUTH_USERundAUTH_PASSentfernt – Zugangsdaten werden ausschließlich in der Datenbank verwaltet- Neue Datenbanktabelle
users(Migration005_users.sql)
Behoben
- Fehler in
BelegControllerbehoben
2026-03-25 – Sicherheit, UX-Verbesserungen & Bugfixes
Sicherheit
- Timing-sicherer Login: Passwort- und Benutzernamevergleich auf
hash_equals()umgestellt (verhindert Timing-Angriffe) - SVG-Upload gesperrt: Logo-Upload akzeptiert nur noch PNG und JPEG – SVG wurde entfernt (XSS-Risiko)
- CSV-Injection-Schutz: Felder im Buchungsjournal-CSV-Export werden gegen Formula-Injection (
=,+,-,@) abgesichert
Features
- Inline-Editing: Belegdatum und Rechnungsnr. können direkt in der Beleg-Detailansicht per Klick bearbeitet werden (kein Seitenreload)
- Belegart-Filter: Neue Filteroption in der Belegliste zum Filtern nach Belegart (Eingangsrechnung, Ausgangsrechnung, Quittung etc.)
- Favicon & App-Icon: Favicon für Browser-Tabs, Apple Touch Icon und Web-App-Manifest eingebunden
Robustheit
- Datenbankfehler-Handling: PDO-Exceptions in Invoice-, Booking- und BelegController werden separat abgefangen und geloggt statt als generische Fehler zu erscheinen
2026-03-24 – Initiales Release
Features
- Basis-System: MVC-Framework, Routing, Authentifizierung, Datenbank-Migrations-System
- Ausgangsrechnungen: Erstellen, Verwalten und PDF-Export von Ausgangsrechnungen
- EÜR-Vorbereitung: Einnahmen-Überschuss-Rechnung als PDF-Export
- UStVA-Vorbereitung: Umsatzsteuer-Voranmeldung inkl. XML-Export für elster.de