diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index f9f26d4..367e177 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -2,8 +2,9 @@ namespace App\Http\Controllers; -use Illuminate\Http\Request; use stdClass; +use App\Models\Holding; +use Illuminate\Http\Request; class DashboardController extends Controller { @@ -14,13 +15,18 @@ class DashboardController extends Controller { $user = $request->user()->load('portfolios'); - $dashboard = new stdClass; - $dashboard->marketGainLoss = rand(-200, 3999); - $dashboard->totalCostBasis = rand(-200, 3999); - $dashboard->totalMarketValue = rand(-200, 3999); - $dashboard->realizedGainLoss = rand(-200, 3999); - $dashboard->dividendsEarned = rand(-200, 3999); + // get portfolio metrics + $metrics = cache()->remember( + 'dashboard-metrics-' . $user->id, + 10, + function () { + return + Holding::query() + ->getPortfolioMetrics() + ->first(); + } + ); - return view('dashboard', compact('user', 'dashboard')); + return view('dashboard', compact('user', 'metrics')); } } diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php index 1b10fc2..2887596 100644 --- a/resources/views/dashboard.blade.php +++ b/resources/views/dashboard.blade.php @@ -7,27 +7,27 @@
{{ __('Market Gain/Loss') }}
-
{{ Number::currency($dashboard->marketGainLoss) }}
+
{{ Number::currency($metrics->total_gain_dollars) }}
{{ __('Total Cost Basis') }}
-
{{ Number::currency($dashboard->totalCostBasis) }}
+
{{ Number::currency($metrics->total_cost_basis) }}
{{ __('Total Market Value') }}
-
{{ Number::currency($dashboard->totalMarketValue) }}
+
{{ Number::currency($metrics->total_market_value) }}
{{ __('Realized Gain/Loss') }}
-
{{ Number::currency($dashboard->realizedGainLoss) }}
+
{{ Number::currency($metrics->realized_gain_dollars) }}
{{ __('Dividends Earned') }}
-
{{ Number::currency($dashboard->dividendsEarned) }}
+
{{ Number::currency($metrics->total_dividends_earned) }}
diff --git a/resources/views/livewire/portfolio-performance-chart.blade.php b/resources/views/livewire/portfolio-performance-chart.blade.php index 272f284..72eab9d 100644 --- a/resources/views/livewire/portfolio-performance-chart.blade.php +++ b/resources/views/livewire/portfolio-performance-chart.blade.php @@ -37,7 +37,9 @@ new class extends Component { if (isset($this->portfolio)) { $dailyChangeQuery->portfolio($this->portfolio->id); + } else { + $dailyChangeQuery->selectRaw('date, SUM(total_market_value) as total_market_value, SUM(total_cost_basis) as total_cost_basis, @@ -48,11 +50,12 @@ new class extends Component { } if ($filterMethod['method']) { + $dailyChangeQuery->whereDate('date', '>=', now()->{$filterMethod['method']}(...$filterMethod['args'])); } $dailyChange = $dailyChangeQuery->get(); - + return [ 'series' => [ [