mirror of
https://github.com/we-promise/sure.git
synced 2026-04-18 19:44:09 +00:00
* Remove balance mode, sketch out refactor * Activity view checkpoint * Entry partials, checkpoint * Finish txn partial * Give entries context when editing for different turbo responses * Calculate change of balance for each entry * Account tabs consolidation * Translations, linting, brakeman updates * Account actions concern * Finalize forms, get account system tests passing * Get tests passing * Lint, rubocop, schema updates * Improve routing and stream responses * Fix broken routes * Add import option for adding accounts * Fix system test * Fix test specificity * Fix sparklines * Improve account redirects
54 lines
1.0 KiB
Ruby
54 lines
1.0 KiB
Ruby
class Account::Valuation < ApplicationRecord
|
|
include Account::Entryable
|
|
|
|
class << self
|
|
def search(_params)
|
|
all
|
|
end
|
|
|
|
def requires_search?(_params)
|
|
false
|
|
end
|
|
end
|
|
|
|
def name
|
|
oldest? ? "Initial balance" : entry.name || "Balance update"
|
|
end
|
|
|
|
def trend
|
|
@trend ||= create_trend
|
|
end
|
|
|
|
def icon
|
|
oldest? ? "plus" : entry.trend.icon
|
|
end
|
|
|
|
def color
|
|
oldest? ? "#D444F1" : entry.trend.color
|
|
end
|
|
|
|
private
|
|
def oldest?
|
|
@oldest ||= account.entries.where("date < ?", entry.date).empty?
|
|
end
|
|
|
|
def account
|
|
@account ||= entry.account
|
|
end
|
|
|
|
def create_trend
|
|
TimeSeries::Trend.new(
|
|
current: entry.amount_money,
|
|
previous: prior_balance&.balance_money,
|
|
favorable_direction: account.favorable_direction
|
|
)
|
|
end
|
|
|
|
def prior_balance
|
|
@prior_balance ||= account.balances
|
|
.where("date < ?", entry.date)
|
|
.order(date: :desc)
|
|
.first
|
|
end
|
|
end
|