Commit Graph

14 Commits

Author SHA256 Message Date
193bbc450c fix: konstante Zeit fuer API-Key-Vergleich, Auth-Tests erweitert
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 18:07:20 +02:00
a10f4d0b57 feat: FastAPI-App mit API-Key- und Session-Auth
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 18:03:24 +02:00
101ee01af1 feat: PDF-Parser VR/HVB/DKB mit Registry und Fixture-Tests
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:58:33 +02:00
78d94a583b fix: NBSP-Betraege und ParserError bei ungueltigem Datum
- parse_german_amount: Fix non-breaking space (U+00A0) handling in second replace call
  was: .replace(" ", "").replace(" ", "") → now: .replace(" ", "").replace("\xa0", "")
- parse_german_date: Catch ValueError from invalid calendar dates (e.g., 31.02.2026)
  and raise ParserError with "Ungültiges Datum" message instead
- Add test for non-breaking space amount parsing
- Add test for invalid date error handling with pytest.raises

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:34:39 +02:00
d91bb2e331 feat: Parser-Basis, Bank-Erkennung, Saldo-/Duplikat-Pruefung
- ParsedTransaction und ParsedStatement Datenklassen
- parse_german_amount(): German format number parsing (1.234,56 -> Decimal)
- parse_german_date(): DD.MM.YYYY date parsing with optional year
- detect_bank(): Recognize VR/HVB/DKB from text markers
- balance_difference(): Validate statement balance consistency
- dedup_hash(): SHA256-based transaction deduplication

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:30:10 +02:00
877cba4964 test: Absolute-Modifier und Stichtag-Semantik der Projektion
Ergänzte Tests für Lückenschluss:
1. test_absolute_modifier_reduces_outflow: Absolute Modifier reduziert Ausgaben (-200 - 50 = -150)
2. test_absolute_modifier_clamps_to_zero: Absolute Modifier klemmt auf 0 (nie Vorzeichenflip: -200 + 300 = 0)
3. test_cashflow_on_start_date_excluded: Cashflows am start_date werden ausgeschlossen (Teil des Startsaldos)

Alle 18 Tests grün (15 existierend + 3 neu).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:27:41 +02:00
020f41e9f2 feat: Szenario-Engine (Projektion, Modifikatoren, Zahlungsstrom)
Implementiert Task 5 mit TDD-Ansatz: projection.py mit Projection-Klasse
und project()-Funktion für Cashflow-Simulation; scenario.py mit PlainRecurring,
PlainPlanned, PlainModifier Dataclasses und build_cashflows() für Szenarien-Zahlungsströme
mit Modifier-Support (remove, percent, absolute). Alle 15 Tests grün.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:22:36 +02:00
d41db2e10d test: Clamping-Tests Schaltjahr und Quartalsrhythmus
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:20:19 +02:00
82800ea7d0 feat: Recurrence-Terminberechnung
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:16:36 +02:00
9f50435df9 feat: Kredit-Mathematik (Annuitaet, endfaellig)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:12:25 +02:00
d37cb230c4 feat: Datenmodell (SQLAlchemy) und Alembic-Migration
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:09:02 +02:00
53ffd65104 feat: Projekt-Geruest finance/ mit Config und Test-Setup
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:04:59 +02:00
d4a98e117f docs: Implementierungsplan Finanzberatungs-Tool (Plan.md)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 16:19:13 +02:00
309b1039c5 Initial commit 2026-07-17 12:39:50 +02:00