whisper-money/tests/Unit/Services
Víctor Falcón 722c7d1bef Consolidate savings-rate math into CashflowSummaryService
The net and savings-rate derivation was byte-identical in
DashboardController::calculateCashflowSummary and
CashflowAnalyticsController::cashflowSummaryFromTransactions, so the two
screens could silently diverge if one formula were ever edited.

Extract a single CashflowSummaryService::summarize(income, expense) that
owns the net and savings-rate math, and have both call sites consume it.
Behaviour-preserving: each controller still computes income/expense its
own way (single-currency SQL on the dashboard, multi-currency in-memory
on the analytics endpoint) and only the shared derivation moves.
2026-07-04 20:48:18 +02:00
..
Banking feat(transactions): add counterparty fields (#440) 2026-05-27 16:20:55 +02:00
CashflowSummaryServiceTest.php Consolidate savings-rate math into CashflowSummaryService 2026-07-04 20:48:18 +02:00
LoanAmortizationServiceTest.php feat(accounts): add loan amortization projections for loan accounts (#246) 2026-03-26 15:06:09 +01:00