diff --git a/BACKLOG.md b/BACKLOG.md index 1ca7fca..52768e8 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -70,7 +70,7 @@ Die Sync-Services `server/services/google-calendar.js` und `server/services/appl ### BL-05 — Budget: Wiederkehrende Buchungen automatisch generieren -**Status:** Offen +**Status:** Erledigt (v0.3.0) **Aufwand:** S (1–2 Tage) Das Budget-Formular hat eine „Wiederkehrend"-Checkbox und speichert `is_recurring = 1`. Es fehlt jedoch die automatische Generierung der Folgebuchungen. Derzeit muss der Nutzer jede Buchung manuell eintragen. diff --git a/CHANGELOG.md b/CHANGELOG.md index ce8ed2b..85bc318 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- Budget: recurring entries auto-generate instances for each viewed month; instances deleted by the user are skipped permanently via `budget_recurrence_skipped` table; generated instances are marked with ↩ in the transaction list - Budget: month-over-month comparison in summary cards — each card (Einnahmen, Ausgaben, Saldo) shows a trend line (▲/▼ + delta amount vs. previous month); previous month summary is fetched in parallel with current month ## [0.2.1] - 2026-03-30 diff --git a/public/pages/budget.js b/public/pages/budget.js index 0d677ee..301a209 100644 --- a/public/pages/budget.js +++ b/public/pages/budget.js @@ -267,13 +267,14 @@ function renderEntries() { const indClass = isIncome ? 'budget-entry__indicator--income' : 'budget-entry__indicator--expenses'; const sign = isIncome ? '+' : ''; const date = formatEntryDate(e.date); + const recurTag = e.is_recurring ? ' 🔁' : (e.recurrence_parent_id ? ' ↩' : ''); return `