diff --git a/lib/gnucash/account.rb b/lib/gnucash/account.rb index 8b5781b..f8d7bcd 100644 --- a/lib/gnucash/account.rb +++ b/lib/gnucash/account.rb @@ -33,5 +33,11 @@ module Gnucash value: value, } end + + def finalize + @transactions.sort! do |a, b| + a[:txn].date <=> b[:txn].date + end + end end end diff --git a/lib/gnucash/book.rb b/lib/gnucash/book.rb index 42710dd..6c6a6f2 100644 --- a/lib/gnucash/book.rb +++ b/lib/gnucash/book.rb @@ -15,6 +15,7 @@ module Gnucash @book_node = book_nodes.first build_accounts build_transactions + finalize end def find_account_by_id(id) @@ -34,5 +35,11 @@ module Gnucash Transaction.new(self, txn_node) end end + + def finalize + @accounts.each do |account| + account.finalize + end + end end end diff --git a/lib/gnucash/transaction.rb b/lib/gnucash/transaction.rb index a472acf..275ee00 100644 --- a/lib/gnucash/transaction.rb +++ b/lib/gnucash/transaction.rb @@ -1,5 +1,6 @@ module Gnucash class Transaction + attr_accessor :date attr_accessor :value attr_accessor :id