bankAccountService->getSummary(); // 자금 일정 요약 $scheduleSummary = $this->fundScheduleService->getSummary(); // 이번 달 자금 일정 요약 $monthlySummary = $this->fundScheduleService->getMonthlySummary( now()->year, now()->month ); // 향후 7일 자금 일정 $upcomingSchedules = $this->fundScheduleService->getUpcomingSchedules(7); // 최근 거래내역 (바로빌 - 최근 7일, 최대 10건) $tenantId = session('selected_tenant_id', 1); $weekAgo = now()->subDays(7)->format('Ymd'); $today = now()->format('Ymd'); $recentTransactions = BarobillBankTransaction::where('tenant_id', $tenantId) ->whereBetween('trans_date', [$weekAgo, $today]) ->orderBy('trans_date', 'desc') ->orderBy('trans_time', 'desc') ->limit(10) ->get(); // 오버라이드 데이터 병합 (수정된 적요/내용) if ($recentTransactions->isNotEmpty()) { $uniqueKeys = $recentTransactions->map(fn ($t) => $t->unique_key)->toArray(); $overrides = BankTransactionOverride::getByUniqueKeys($tenantId, $uniqueKeys); $recentTransactions = $recentTransactions->map(function ($transaction) use ($overrides) { $override = $overrides->get($transaction->unique_key); if ($override) { // 수정된 적요가 있으면 적용 if ($override->modified_summary) { $transaction->summary = $override->modified_summary; } // 수정된 내용이 있으면 적용 if ($override->modified_cast) { $transaction->cast = $override->modified_cast; } $transaction->is_overridden = true; } else { $transaction->is_overridden = false; } return $transaction; }); } // 최근 카드 사용내역 (바로빌 - 최근 7일, 최대 10건) $recentCardTransactions = BarobillCardTransaction::where('tenant_id', $tenantId) ->whereBetween('use_date', [$weekAgo, $today]) ->orderBy('use_date', 'desc') ->orderBy('use_time', 'desc') ->limit(10) ->get(); // 계좌별 잔액 $accountBalances = BankAccount::active() ->ordered() ->get(['id', 'bank_name', 'account_number', 'account_name', 'balance', 'account_type']); return view('finance.dashboard', compact( 'accountSummary', 'scheduleSummary', 'monthlySummary', 'upcomingSchedules', 'recentTransactions', 'recentCardTransactions', 'accountBalances' )); } }