The same in-memory rule for which side of a cashflow split a transaction belongs to (income category or uncategorized inflow; expense category or uncategorized outflow; transfers/savings/investments on neither) was re-implemented in TransactionAnalysisController (isIncomeSide/isExpenseSide) and inline in CashflowAnalyticsController::sumTransactions. Expose it once as Transaction::isIncomeSide()/isExpenseSide() and have both controllers consume it, so the two analytics surfaces cannot drift on how a refund, reversal or uncategorized transaction is bucketed. Behaviour-preserving. |
||
|---|---|---|
| .. | ||
| Controllers | ||
| Middleware | ||
| Requests | ||
| Responses | ||