1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-06 05:55:21 +02:00

Add confirmation dialog for balance reconciliation creates and updates (#2457)
Some checks are pending
Publish Docker image / ci (push) Waiting to run
Publish Docker image / Build docker image (push) Blocked by required conditions

This commit is contained in:
Zach Gollwitzer 2025-07-15 18:58:40 -04:00 committed by GitHub
parent c1d98fe73b
commit 89cc64418e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 180 additions and 49 deletions

View file

@ -1,10 +1,11 @@
class Account::BalanceUpdater
def initialize(account, balance:, currency: nil, date: Date.current, notes: nil)
def initialize(account, balance:, currency: nil, date: Date.current, notes: nil, existing_valuation_id: nil)
@account = account
@balance = balance.to_d
@currency = currency
@date = date.to_date
@notes = notes
@existing_valuation_id = existing_valuation_id
end
def update
@ -17,10 +18,15 @@ class Account::BalanceUpdater
account.save!
end
valuation_entry = account.entries.valuations.find_or_initialize_by(date: date) do |entry|
entry.entryable = Valuation.new(kind: "reconciliation")
valuation_entry = if existing_valuation_id
account.entries.find(existing_valuation_id)
else
account.entries.valuations.find_or_initialize_by(date: date) do |entry|
entry.entryable = Valuation.new(kind: "reconciliation")
end
end
valuation_entry.date = date
valuation_entry.amount = balance
valuation_entry.currency = currency if currency.present?
valuation_entry.name = Valuation.build_reconciliation_name(account.accountable_type)
@ -37,7 +43,7 @@ class Account::BalanceUpdater
end
private
attr_reader :account, :balance, :currency, :date, :notes
attr_reader :account, :balance, :currency, :date, :notes, :existing_valuation_id
Result = Struct.new(:success?, :updated?, :error_message)