Ein Wert, ein Ort: Startwerte und Raten read-only, Verteil-Dialoge als einziger Eingabeort
Deploy App / deploy (push) Successful in 1m13s

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-16 21:17:39 +02:00
parent 5ff9bc0709
commit ce987b9978
8 changed files with 602 additions and 201 deletions
+18 -3
View File
@@ -40,8 +40,23 @@ export interface PlanReview {
groups: ReviewGroup[];
}
// Braucht dieses Element in dieser Phase eine Bestaetigung? Alles, was in der Phase AKTIV ist:
// Ein verkauftes Haus oder eine getilgte Schuld traegt keine Annahmen mehr.
// Kategorien, die in einer Phasenzelle ueberhaupt eine Annahme tragen. Seit 0.40 entstehen
// Bestaende in den Stammdaten und jaehrliche Raten im Verteil-Dialog; in der Zelle bleiben nur
// noch die Annahmen -- und die hat nicht jede Kategorie. Eine "Sonstige Schuld" traegt keine:
// Restschuld und Tilgung stehen anderswo. Eine Bestaetigung fuer eine leere Zelle zu
// verlangen, waere eine Frage ohne Gegenstand.
const CATEGORIES_WITH_ASSUMPTIONS = new Set([
"INCOME", // Lohnentwicklung
"EXPENSE", // Teuerung
"PENSION_FUND", // Verzinsung
"PILLAR_3A", // Rendite
"OTHER_ASSET", // Rendite
"REAL_ESTATE", // Hypothekarzins, Wertsteigerung, Zins-in-Ausgaben
"AHV", // Beitragsluecken, Beitrag als Nichterwerbstaetige(r)
]);
// Braucht dieses Element in dieser Phase eine Bestaetigung? Es muss in der Phase AKTIV sein
// (ein verkauftes Haus traegt keine Annahmen mehr) UND ueberhaupt eine Annahme tragen.
export function needsConfirmation(
computed: PlanComputed,
phaseId: string,
@@ -49,7 +64,7 @@ export function needsConfirmation(
): boolean {
const ph = computed.phases.find((p) => p.id === phaseId);
const ce = ph?.elements.find((e) => e.elementId === elementId);
return !!ce && ce.status === "ACTIVE";
return !!ce && ce.status === "ACTIVE" && CATEGORIES_WITH_ASSUMPTIONS.has(ce.category);
}
// Ist der Phasenwert dieses Elements bestaetigt?