The Profit Analysis expense filter only handled month and rolling
presets, so selecting a year (e.g. 2026) fell through to 'return true'
and counted ALL expenses against that year's revenue — producing a wrong
(often negative) profit that disagreed with the Analytics page.
Unify date filtering: new ProfitAnalysisService.isInDateRange is the
single matcher for months, quarters, years, custom ranges, and presets;
filterOrdersByDateRange and the new filterExpensesByDateRange both use
it, and Profit Analysis now filters expenses through the service so
orders and expenses always share the same range.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>