Add SPENT column and help tooltips to budget dashboard
Details
Added a SPENT column between BUDGETED and AVAILABLE to make the data
flow clear: BUDGETED -> SPENT -> AVAILABLE. Activity (spending) data
is fetched via new BudgetService.GetCategoryActivityAsync and displayed
as an absolute dollar amount per category.
All column headers now include a (?) indicator with tooltip explanations:
- CATEGORY: grouped spending categories
- BUDGETED: allocated amount, click to edit
- SPENT: total spent this month
- AVAILABLE: remaining after spending, color-coded
- GOAL: funding target progress
Goal bar width reduced from 300px to 260px to accommodate the new
column. Version bumped to 3.12.0.
Add missing CurrencyBox StyleInclude to all Finance views
Details
CurrencyBox is a TemplatedControl whose style (containing its
ControlTemplate) was never included via StyleInclude. Unlike
UserControl, TemplatedControl requires explicit style inclusion —
without it, the control has no template and renders nothing. Added
StyleInclude to BudgetDashboardView, ReconciliationView, and
AccountRegisterView.
Fix CurrencyBox text invisible in budget dashboard
Details
TemplateBinding with DirectProperty (DisplayText) doesn't reliably
propagate in Avalonia. Replaced with a standard Binding using
RelativeSource TemplatedParent, and added explicit Foreground to
ensure the TextBox text is always visible against the theme.
Fix invisible budget columns by replacing undefined color resources
Details
Finance views referenced non-existent Avalonia system color resources
(SystemErrorTextColor, SystemFillColorSuccess, SystemFillColorCaution)
which resolved to transparent, making BUDGETED and AVAILABLE column
text invisible. Replaced with PrivStack theme resources (ThemeDanger,
ThemeSuccess, ThemeWarning) that are defined in the custom theme.
Affected views: BudgetDashboardView, ReportsView, ReconciliationView.
Bumped Finance plugin version 3.11.2 → 3.11.3.
Fix budget spending calculation using actual transactions
Details
The RAG index was computing "spent" as (budgeted - available), which
is wrong in envelope mode because available includes rollovers from
prior months. This caused Duncan to report wildly inflated numbers
like "$8,503 remaining" when the actual budget is $4,700.
Now computes actual spending per category from this month's
transactions (outflow splits with CategoryId), giving accurate
numbers like "spent $175 of $175 budgeted on Dining Out." The
per-group spending summaries and overview totals also use
transaction-based math. Bumped Finance plugin to 3.11.2.
Get notified about new releases