fix: Szenario-Vergleich zeigt vor heute Ist-Saldo, veraltete Szenarien werden neu gerechnet (A11-T2)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-28 19:10:51 +02:00
co-authored by Claude Opus 5.5
parent 32d78fdbe1
commit 979e1c0edc
7 changed files with 261 additions and 5 deletions
+19 -3
View File
@@ -114,9 +114,25 @@ VIEWS: dict[str, str] = {
SUM(t.amount) AS total
FROM transactions t LEFT JOIN categories c ON c.id = t.category_id
WHERE t.status = 'confirmed' GROUP BY 1, 2""",
"v_projection": """
SELECT s.name AS scenario, p.day, p.balance
FROM projection_points p JOIN scenarios s ON s.id = p.scenario_id""",
# Szenario-Vergleich (Ausbaustufe 11): Ist-Gesamtsaldo bis heute als eigene
# Serie RESERVED_SCENARIO_NAME; jede Szenario-Kurve beginnt heute am
# Ist-Saldo und zeigt danach nur Projektionspunkte NACH heute. Punkte
# <= heute einer älteren Berechnung (Momentaufnahme des letzten
# „Durchrechnen") erscheinen damit nie - auch wenn ein Szenario noch nicht
# neu gerechnet wurde. Muss in VIEWS NACH v_balance_total stehen.
"v_projection": f"""
SELECT '{RESERVED_SCENARIO_NAME}'::text AS scenario, t.day, t.balance
FROM v_balance_total t
UNION ALL
SELECT s.name::text, t.day, t.balance
FROM scenarios s
JOIN v_balance_total t ON t.day = CURRENT_DATE
WHERE EXISTS (SELECT 1 FROM projection_points p0
WHERE p0.scenario_id = s.id)
UNION ALL
SELECT s.name::text, p.day, p.balance
FROM projection_points p JOIN scenarios s ON s.id = p.scenario_id
WHERE p.day > CURRENT_DATE""",
}