From fcd4d227a11a0ad9b165a151c7cc087f19034fe3 Mon Sep 17 00:00:00 2001 From: fds2610 Date: Sat, 28 Mar 2026 11:19:50 +0100 Subject: [PATCH] Dokumentation angepasst --- BERICHTE.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 13 ++++++++++ README.md | 4 +++ 3 files changed, 88 insertions(+) create mode 100644 BERICHTE.md diff --git a/BERICHTE.md b/BERICHTE.md new file mode 100644 index 0000000..89b8047 --- /dev/null +++ b/BERICHTE.md @@ -0,0 +1,71 @@ +# Berichte – Zuordnungsregeln + +Dieses Dokument beschreibt, wie Buchungen in die beiden steuerlichen Berichte einfließen. +**Bei Änderungen an `EuerCalculator.php` oder `UstvaCalculator.php` muss dieses Dokument mit aktualisiert werden.** + +--- + +## EÜR (Einnahmen-Überschuss-Rechnung) + +**Datei:** `src/Services/EuerCalculator.php` + +Die EÜR basiert ausschließlich auf dem Feld `buchungstyp` der Buchung, kombiniert mit dem verknüpften Kategorie-Konto (`kategorie_konto_id → accounts`). Es gibt keine feste Zuordnung von Kontonummern zu bestimmten EÜR-Zeilen – jedes Konto erscheint als eigene Zeile in der jeweiligen Sektion. + +### Einnahmen + +Bedingung: `buchungstyp = 'Einnahme'` + +Alle passenden Buchungen werden nach Kategorie-Konto gruppiert und als Einnahmen ausgewiesen. Der Nettobetrag (`betrag_netto`) wird summiert. + +### Ausgaben (Betriebsausgaben) + +Bedingung: `buchungstyp = 'Ausgabe'` + +Alle passenden Buchungen werden nach Kategorie-Konto gruppiert und als Betriebsausgaben ausgewiesen. Der Nettobetrag wird summiert. + +### Sortierung und Ergebnis + +- Sortierung innerhalb beider Sektionen: nach `accounts.kontonummer` aufsteigend +- Stornobuchungen (`is_reversal = 1`) werden ausgeschlossen +- Ergebnis: `total_einnahmen − total_ausgaben = gewinn` + +### Übersicht + +| Bedingung | Sektion im Bericht | +|---|---| +| `buchungstyp = 'Einnahme'` | Einnahmen | +| `buchungstyp = 'Ausgabe'` | Ausgaben / Betriebsausgaben | + +--- + +## UStVA (Umsatzsteuervoranmeldung) + +**Datei:** `src/Services/UstvaCalculator.php` + +Die UStVA verwendet **keine** Kontonummern, sondern die Buchungsfelder `buchungstyp`, `steuerart`, `ust_satz` und `betrag_ust`. Stornobuchungen (`is_reversal = 1`) werden ausgeschlossen. + +### Direkt befüllte Kennzahlen + +| Kz | Bezeichnung | Bedingung | +|---|---|---| +| **81** | Steuerpfl. Umsätze 19 % – Netto | `buchungstyp='Einnahme'`, `steuerart='normal'`, `ust_satz=19` | +| **86** | Steuerpfl. Umsätze 7 % – Netto | `buchungstyp='Einnahme'`, `steuerart='normal'`, `ust_satz=7` | +| **35** | Steuerfreie Umsätze (ohne Vorsteuerabzug) – Netto | `buchungstyp='Einnahme'`, `steuerart='normal'`, `ust_satz=0` | +| **41** | Steuerfreie ig. Lieferungen (§ 4 Nr. 1b) – Netto | `buchungstyp='Einnahme'`, `steuerart='ig_lieferung'` | +| **44** | Steuerfreie Ausfuhren (§ 4 Nr. 1a) – Netto | `buchungstyp='Einnahme'`, `steuerart='export'` | +| **89** | Ig. Erwerb 19 % – Bemessungsgrundlage | `buchungstyp='Ausgabe'`, `steuerart='ig_erwerb_19'` | +| **93** | Ig. Erwerb 7 % – Bemessungsgrundlage | `buchungstyp='Ausgabe'`, `steuerart='ig_erwerb_7'` | +| **61** | Vorsteuer aus Eingangsrechnungen 19 % | `buchungstyp='Ausgabe'`, `steuerart='normal'`, `ust_satz=19`, `betrag_ust>0` | +| **62** | Vorsteuer aus Eingangsrechnungen 7 % | `buchungstyp='Ausgabe'`, `steuerart='normal'`, `ust_satz=7`, `betrag_ust>0` | + +### Abgeleitete Kennzahlen (berechnet, keine direkte Buchungszuordnung) + +| Kz | Bezeichnung | Berechnung | +|---|---|---| +| **83** | USt auf steuerpfl. Umsätze 19 % | Kz 81 × 19 % | +| **84** | USt auf steuerpfl. Umsätze 7 % | Kz 86 × 7 % | +| **91** | USt auf ig. Erwerb 19 % | Kz 89 × 19 % | +| **94** | USt auf ig. Erwerb 7 % | Kz 93 × 7 % | +| **67** | Vorsteuer aus ig. Erwerb | Kz 91 + Kz 94 | +| **66** | Vorsteuerbeträge gesamt | Kz 61 + Kz 62 + Kz 67 | +| **69** | Verbleibende USt-Vorauszahlung / Erstattung | (Kz 83 + Kz 84 + Kz 91 + Kz 94) − Kz 66 | diff --git a/CLAUDE.md b/CLAUDE.md index 118018c..a519698 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -43,6 +43,19 @@ $this->assertNotEmpty($wert, 'Beschreibung'); |---|---| | `Changes.md` | Bei jedem Feature, Bugfix oder strukturellen Änderung (nicht bei reinen Test- oder Doku-Commits) | | `README.md` | Wenn sich der Funktionsumfang, Tech Stack oder die Installationsanleitung ändert | +| `BERICHTE.md` | Bei jeder Änderung an `EuerCalculator.php` oder `UstvaCalculator.php` (Zuordnungsregeln, neue Kennzahlen, geänderte Bedingungen) | + +## Geplante Aufgaben (Cron) + +Alle planmäßigen Aufgaben (z.B. Ideenagent, Automatisierungen) laufen lokal über die System-Crontab des Nutzers. Für außerplanmäßige Ausführung das jeweilige Skript direkt aufrufen: + +```bash +crontab -l # alle geplanten Jobs anzeigen +/home/fds/projects/Steuerkram/.claude/ideenagent-run.sh # Ideenagent manuell starten +/home/fds/projects/Steuerkram/.claude/automate-run.sh # Automatisierung manuell starten +``` + +Remote Triggers (claude.ai) oder Claude Code Cron-Jobs werden **nicht** verwendet. ## Commits ``` diff --git a/README.md b/README.md index 6278ed7..88aca81 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,10 @@ docker compose up -d --build - Korrekturen erfolgen ausschließlich über Stornobuchungen. - Jeder hochgeladene Beleg erhält einen SHA-256 Hash zur Integritätsprüfung. +## Berechnungslogik UStVA und EÜR + +Detaillierte Informationen darüber, welche Buchungsattribute und Konten in welche Positionen der UStVA (ELSTER-Kennzahlen) bzw. der EÜR einfließen, sind in [`BERICHTE.md`](BERICHTE.md) dokumentiert. + ## Support Issues können im [Codeberg-Repo](https://codeberg.org/fds2610/Steuerkram/issues) gemeldet werden. Mit dem Label **`automate`** werden sie automatisch verarbeitet.