getUser(); $user = (new UserRepository())->getByLogin($auth_user['login']); if (!$user) { throw HTTPException::factory(404); } $year = (int)(Request::$current->query('year') ?: date('Y')); $month = (int)date('n'); $tx_repo = new TransactionRepository(); $budget_repo = new BudgetRepository(); $monthly = $tx_repo->getMonthlyTotals($user->id, $year); $monthly_prev = $tx_repo->getMonthlyTotals($user->id, $year - 1); $expense_cats = $tx_repo->getMonthExpenseByCategory($user->id, $year, $month); // План текущего месяца по тем же expense-категориям, что и факт (для панели «План vs факт»). $plan_year = $budget_repo->getYear($user->id, $year); $plan_month = []; foreach ($expense_cats as $cat) { $plan_month[(int)$cat->categorie_id] = $plan_year[(int)$cat->categorie_id][$month]['plan_summ'] ?? 0.0; } return $this->render('index', [ 'user' => $auth_user, 'year' => $year, 'month' => $month, 'monthly' => $monthly, 'monthly_prev' => $monthly_prev, 'expense_cats' => $expense_cats, 'plan_month' => $plan_month, ]); } }