{{ toast.title }}

{{ toast.message }}

Neuen Monat erstellen

Gib den Namen des neuen Abrechnungsmonats ein (z. B. "Juli 2026"):

Monat abschließen?

Möchtest du {{ month }} wirklich als abgeschlossen markieren? Alle Fixkosten werden als bezahlt gekennzeichnet und das Dokument wird schreibgeschützt gesichert.

Supabase Spalten-Setup (Optional)

Deine Daten werden durch unseren Fallback bereits sicher gespeichert. Wenn du die Tabellenspalten in Supabase als native Spalten führen möchtest, führe folgenden Befehl im Supabase SQL Editor aus:

ALTER TABLE budget_months 
ADD COLUMN IF NOT EXISTS groceries jsonb DEFAULT '[]'::jsonb,
ADD COLUMN IF NOT EXISTS grocery_budget numeric DEFAULT 600;

Haushaltsplaner

Gemeinsame Ausgaben & Lebensmittelkonto

Lade Daten für {{ month }}...
Dieser Monat ist abgeschlossen und schreibgeschützt.

Monatseinkommen

Gesamteinkommen: {{ formatCurrency(calculations.totalIncome) }}

Gemeinsame Fixkosten

Summe Fixkosten: {{ formatCurrency(calculations.totalExpenses) }}

Fixkosten-Aufteilung {{ month }}

Dominik {{ formatCurrency(calculations.dominikShare) }}
{{ formatPercent(calculations.dominikPercent) }} vom Einkommen
Sarah {{ formatCurrency(calculations.sarahShare) }}
{{ formatPercent(calculations.sarahPercent) }} vom Einkommen

Prozentuale Verteilung:
Die Fixkosten werden exakt proportional zum Einkommen aufgeteilt.

Dominik: {{ formatPercent(calculations.dominikPercent) }} · Sarah: {{ formatPercent(calculations.sarahPercent) }}

Haushaltskonto Budget

Monatlich eingezahltes Haushaltsbudget

Summe Rechnungen
{{ formatCurrency(groceryStats.totalSpent) }}
{{ groceryList.length }} {{ groceryList.length === 1 ? 'Einkauf' : 'Einkäufe' }} getätigt · Ø {{ formatCurrency(groceryStats.averageReceipt) }}
{{ groceryStats.remaining >= 0 ? 'Restguthaben (Konto)' : 'Budget überzogen' }} {{ groceryStats.percentUsed.toFixed(0) }}% verbraucht
{{ formatCurrency(groceryStats.remaining) }}

Neue Rechnung eintragen

Schnellwahl:

Rechnungsbelege im {{ month }}

{{ groceryList.length }} Positionen

Noch keine Lebensmittelrechnungen für diesen Monat hinterlegt.

Trage oben deinen ersten Kassenzettel ein.

{{ item.store || 'Sonstiges' }}
{{ item.note || 'Einkauf' }} · {{ formatDate(item.date) }}
Bezahlt über: {{ item.paidBy || 'Haushaltskonto' }}
{{ formatCurrency(item.amount) }}
Rechnungen Gesamt: {{ formatCurrency(groceryStats.totalSpent) }}

Tortendiagramm der Ausgaben

Nach Geschäft
Keine Rechnungsdaten für diesen Monat vorhanden.

Bewege die Maus über ein Segment für Details

{{ store.name }}
{{ formatCurrency(store.amount) }} ({{ store.percent.toFixed(1) }}%)

Vorgestreckte Auslagen

Beträge, die privat statt über das gemeinsame Haushaltskonto bezahlt wurden und erstattet werden sollten:

Dominik Privat bezahlt
{{ formatCurrency(groceryStats.paidByDominik) }}
Sarah Privat bezahlt
{{ formatCurrency(groceryStats.paidBySarah) }}

Tipp:

Klicke oben auf „Speichern“, um deine Rechnungen und das Haushaltskonto dauerhaft in der Cloud zu sichern.

Abgeschlossene Monate & Archiv

Alle Monate, in denen Fixkosten und Haushaltsrechnungen erfolgreich beglichen wurden.

Noch keine abgeschlossenen Monate vorhanden. Klicke im Planer auf "Abschließen", um einen Monat hier aufzunehmen.

{{ item.id }}

Fixkosten: {{ formatCurrency(calculateTotals(item).expenses) }}
Lebensmittel ({{ item.groceries.length }} Belege): {{ formatCurrency(item.groceries.reduce((sum, g) => sum + (parseFloat(g.amount) || 0), 0)) }}
Dominik Anteil: {{ formatCurrency(calculateTotals(item).dominikShare) }}
Sarah Anteil: {{ formatCurrency(calculateTotals(item).sarahShare) }}

Fixkosten-Posten

{{ exp.name || 'Unbenannt' }}
{{ formatCurrency(exp.amount) }}