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' => [
[