diff --git a/app/Http/Controllers/HoldingController.php b/app/Http/Controllers/HoldingController.php index 20ab552..95762d5 100644 --- a/app/Http/Controllers/HoldingController.php +++ b/app/Http/Controllers/HoldingController.php @@ -24,21 +24,8 @@ class HoldingController extends Controller ->portfolio($portfolio->id) ->firstOrFail(); - $formattedTransactions = $this->getFormattedTransactions($holding); + $formattedTransactions = $holding->getFormattedTransactions(); return view('holding.show', compact(['portfolio', 'holding', 'formattedTransactions'])); } - - public function getFormattedTransactions($holding) - { - $formattedTransactions = ''; - foreach($holding->transactions->where('symbol', $holding->symbol)->sortByDesc('date') as $transaction) { - $formattedTransactions .= " * ".$transaction->date->format('Y-m-d') - ." ". $transaction->transaction_type - ." ". $transaction->quantity - ." @ ". $transaction->cost_basis - ." each \n\n"; - } - return $formattedTransactions; - } } diff --git a/app/Http/Controllers/PortfolioController.php b/app/Http/Controllers/PortfolioController.php index 5dd5158..3f04d12 100644 --- a/app/Http/Controllers/PortfolioController.php +++ b/app/Http/Controllers/PortfolioController.php @@ -40,25 +40,8 @@ class PortfolioController extends Controller } ); - $formattedHoldings = $this->getFormattedHoldings($portfolio); + $formattedHoldings = $portfolio->getFormattedHoldings(); return view('portfolio.show', compact(['portfolio', 'metrics', 'formattedHoldings'])); } - - public function getFormattedHoldings($portfolio) - { - $formattedHoldings = ''; - foreach($portfolio->holdings as $holding) { - $formattedHoldings .= " * Holding of ".$holding->market_data->name." (".$holding->symbol.")" - ."; with ". ($holding->quantity > 0 ? $holding->quantity : 'ZERO') . " shares" - ."; avg cost basis ". $holding->average_cost_basis - ."; curr market value ". $holding->market_data->market_value - ."; unrealized gains ". $holding->market_gain_dollars - ."; realized gains ". $holding->realized_gain_dollars - ."; dividends earned ". $holding->dividends_earned - ."\n\n"; - - } - return $formattedHoldings; - } } diff --git a/app/Models/Holding.php b/app/Models/Holding.php index e4db091..bd35f9a 100644 --- a/app/Models/Holding.php +++ b/app/Models/Holding.php @@ -302,4 +302,17 @@ class Holding extends Model ->get() ->keyBy('date'); } + + public function getFormattedTransactions() + { + $formattedTransactions = ''; + foreach($this->transactions->sortByDesc('date') as $transaction) { + $formattedTransactions .= " * ".$transaction->date->format('Y-m-d') + ." ". $transaction->transaction_type + ." ". $transaction->quantity + ." @ ". $transaction->cost_basis + ." each \n\n"; + } + return $formattedTransactions; + } } \ No newline at end of file diff --git a/app/Models/Portfolio.php b/app/Models/Portfolio.php index 3d3e41c..6e7f167 100644 --- a/app/Models/Portfolio.php +++ b/app/Models/Portfolio.php @@ -238,4 +238,19 @@ class Portfolio extends Model return $close; } + public function getFormattedHoldings() + { + $formattedHoldings = ''; + foreach($this->holdings as $holding) { + $formattedHoldings .= " * Holding of ".$holding->market_data->name." (".$holding->symbol.")" + ."; with ". ($holding->quantity > 0 ? $holding->quantity : 'ZERO') . " shares" + ."; avg cost basis ". $holding->average_cost_basis + ."; curr market value ". $holding->market_data->market_value + ."; unrealized gains ". $holding->market_gain_dollars + ."; realized gains ". $holding->realized_gain_dollars + ."; dividends earned ". $holding->dividends_earned + ."\n\n"; + } + return $formattedHoldings; + } }