diff --git a/app/Http/Controllers/HoldingController.php b/app/Http/Controllers/HoldingController.php index 07d9cf3..3af922f 100644 --- a/app/Http/Controllers/HoldingController.php +++ b/app/Http/Controllers/HoldingController.php @@ -24,10 +24,10 @@ class HoldingController extends Controller ->portfolio($portfolio->id) ->firstOrFail(); - if ($holding->quantity <= 0) { + // if ($holding->quantity <= 0) { - return redirect(route('portfolio.show', ['portfolio' => $portfolio->id])); - } + // return redirect(route('portfolio.show', ['portfolio' => $portfolio->id])); + // } return view('holding.show', compact(['portfolio', 'holding'])); } diff --git a/app/Models/Holding.php b/app/Models/Holding.php index 2097598..fa37c68 100644 --- a/app/Models/Holding.php +++ b/app/Models/Holding.php @@ -177,9 +177,13 @@ class Holding extends Model ->first(); $total_quantity = $query->qty_purchases - $query->qty_sales; - $average_cost_basis = $query->qty_purchases > 0 - ? $query->cost_basis / $query->qty_purchases - : 0; + + $average_cost_basis = ( + $query->qty_purchases > 0 + && $total_quantity > 0 + ) + ? $query->cost_basis / $query->qty_purchases + : 0; // pull dividend data joined with holdings/transactions $dividends = Dividend::select('holdings.portfolio_id', 'dividends.date', 'dividends.symbol', 'dividends.dividend_amount') diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index fa533d8..77af6cc 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -110,6 +110,21 @@ class Transaction extends Model return $query->where('symbol', $symbol); } + public function scopeBuy($query) + { + return $query->where('transaction_type', 'BUY'); + } + + public function scopeSell($query) + { + return $query->where('transaction_type', 'SELL'); + } + + public function scopeBeforeDate($query, $date) + { + return $query->whereDate('date', '<', $date); + } + public function scopeMyTransactions() { return $this->whereHas('portfolio', function ($query) { diff --git a/lang/en.json b/lang/en.json index 8ac0b4d..93ee19a 100644 --- a/lang/en.json +++ b/lang/en.json @@ -16,6 +16,7 @@ "Close": "Close", "or": "or", "and": "and", + "Nothing to show here yet": "Nothing to show here yet", "Hang on! You're doing that too much.": "Hang on! You're doing that too much.", "Delete Account": "Delete Account", @@ -117,6 +118,7 @@ "Dividends Earned": "Dividends Earned", "Split": "Split", "Splits": "Splits", + "No splits for :symbol yet": "No splits for :symbol yet", "Distribution Date": "Distribution Date", "My portfolios": "My portfolios", "Create your first portfolio!": "Create your first portfolio!", @@ -148,6 +150,7 @@ "Dividend Yield": "Dividend Yield", "Last Dividend Paid": "Last Dividend Paid", "Ex Dividend Date": "Ex Dividend Date", + "No dividends for :symbol yet": "No dividends for :symbol yet", "Number of Transactions": "Number of Transactions", "Last Refreshed": "Last Refreshed", "Portfolio updated": "Portfolio updated", diff --git a/lang/es.json b/lang/es.json index ebf23e3..989a22c 100644 --- a/lang/es.json +++ b/lang/es.json @@ -16,6 +16,7 @@ "Close": "Cerrar", "or": "o", "and": "y", + "Nothing to show here yet": "No hay nada que mostrar aquí todavía", "Hang on! You're doing that too much.": "¡Por favor espere un momento!", "Delete Account": "Eliminar Cuenta", @@ -117,6 +118,7 @@ "Dividends Earned": "Dividendos Ganados", "Split": "Division", "Splits": "Divisiones", + "No splits for :symbol yet": "No hay divisiones para :symbol", "Distribution Date": "Fecha del Division", "My portfolios": "Mis portafolios", "Create your first portfolio!": "¡Crea tu primer portafolio!", @@ -148,6 +150,7 @@ "Dividend Yield": "Rendimiento por dividendo", "Last Dividend Paid": "Fecha del último dividendo", "Ex Dividend Date": "Fecha del ex dividendo", + "No dividends for :symbol yet": "No hay dividendos para :symbol", "Number of Transactions": "Número de Transacciones", "Last Refreshed": "Última fecha de actualización ", "Portfolio updated": "Portafolio actualizado", diff --git a/resources/views/holding/show.blade.php b/resources/views/holding/show.blade.php index 965be68..c77f264 100644 --- a/resources/views/holding/show.blade.php +++ b/resources/views/holding/show.blade.php @@ -102,18 +102,34 @@ + @if($holding->dividends->isEmpty()) + + + {{ __('No dividends for :symbol yet', ['symbol' => $holding->symbol]) }} + + + @endif + @livewire('holding-dividends-list', ['holding' => $holding]) + @if($holding->splits->isEmpty()) + + + {{ __('No splits for :symbol yet', ['symbol' => $holding->symbol]) }} + + + @endif + @foreach ($holding->splits->take(5) as $split) - 1:{{ $split->split_amount }} + 1:{{ $split->split_amount }} diff --git a/resources/views/portfolio/show.blade.php b/resources/views/portfolio/show.blade.php index 660e2dc..deeb46d 100644 --- a/resources/views/portfolio/show.blade.php +++ b/resources/views/portfolio/show.blade.php @@ -85,14 +85,31 @@ - @livewire('holdings-table', [ - 'portfolio' => $portfolio - ]) + @if($portfolio->holdings->isEmpty()) + + {{ __('Nothing to show here yet') }} + + + @else + + @livewire('holdings-table', [ + 'portfolio' => $portfolio + ]) + + @endif + + @if($portfolio->transactions->isEmpty()) + + + {{ __('Nothing to show here yet') }} + + @endif + @livewire('transactions-list', [ 'portfolio' => $portfolio, 'transactions' => $portfolio->transactions @@ -102,6 +119,14 @@ + @if($portfolio->holdings->isEmpty()) + + + {{ __('Nothing to show here yet') }} + + + @endif + @livewire('top-performers-list', [ 'holdings' => $portfolio->holdings ])