9532812b9f
Audit finding #7: most report queries relied on the global tenant query filter, which is bypassed for SuperAdmin users — so a SuperAdmin (or any multi-company account) running P&L / Balance Sheet / Trial Balance / aging / statements could pull data across companies. The cash-flow method was the only one doing it right (IgnoreQueryFilters + explicit CompanyId). Adds an explicit `CompanyId == companyId` predicate to every DB query across GetProfitAndLossAsync, GetBalanceSheetAsync, GetTrialBalanceAsync, GetArAgingAsync, GetSalesAndIncomeAsync, GetBalanceReconciliationAsync, and the customer/vendor statements (Sales Tax and AP aging already had it). The remaining in-memory filters operate on collections already loaded with the predicate. Matches the repo's standing rule (explicit CompanyId on every query, never the global filter alone). Build clean; 284 unit tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>