fix: calculate proper cost basis
This commit is contained in:
@@ -14,12 +14,18 @@ class EnsureCostBasisAddedToSale
|
|||||||
// cost basis is required for sales to calculate realized gains
|
// cost basis is required for sales to calculate realized gains
|
||||||
if ($model->transaction_type == 'SELL') {
|
if ($model->transaction_type == 'SELL') {
|
||||||
|
|
||||||
$average_cost_basis = Transaction::where([
|
$cost_basis = Transaction::where([
|
||||||
'portfolio_id' => $model->portfolio_id,
|
'portfolio_id' => $model->portfolio_id,
|
||||||
'symbol' => $model->symbol,
|
'symbol' => $model->symbol,
|
||||||
'transaction_type' => 'BUY',
|
'transaction_type' => 'BUY',
|
||||||
])->whereDate('date', '<=', $model->date)
|
])->whereDate('date', '<=', $model->date)
|
||||||
->average('cost_basis');
|
->selectRaw('SUM(transactions.cost_basis * transactions.quantity) as total_cost_basis')
|
||||||
|
->selectRaw('SUM(transactions.quantity) as total_quantity')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$average_cost_basis = empty($cost_basis->total_quantity)
|
||||||
|
? 0
|
||||||
|
: $cost_basis->total_cost_basis / $cost_basis->total_quantity;
|
||||||
|
|
||||||
$model->cost_basis = $average_cost_basis ?? 0;
|
$model->cost_basis = $average_cost_basis ?? 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user