mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-24 23:59:40 +02:00
* Flatten Holding model * Flatten balance model * Entries domain renames * Fix valuations reference * Fix trades stream * Fix brakeman warnings * Fix tests * Replace existing entryable type references in DB
21 lines
640 B
Ruby
21 lines
640 B
Ruby
class Holding::ForwardCalculator < Holding::BaseCalculator
|
|
private
|
|
def portfolio_cache
|
|
@portfolio_cache ||= Holding::PortfolioCache.new(account)
|
|
end
|
|
|
|
def calculate_holdings
|
|
current_portfolio = generate_starting_portfolio
|
|
next_portfolio = {}
|
|
holdings = []
|
|
|
|
account.start_date.upto(Date.current).each do |date|
|
|
trades = portfolio_cache.get_trades(date: date)
|
|
next_portfolio = transform_portfolio(current_portfolio, trades, direction: :forward)
|
|
holdings += build_holdings(next_portfolio, date)
|
|
current_portfolio = next_portfolio
|
|
end
|
|
|
|
holdings
|
|
end
|
|
end
|