class RockBooks::JournalEntry
Public Class Methods
entries_acct_amounts(entries)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 14 def self.entries_acct_amounts(entries) acct_amounts = entries.each_with_object([]) do |entry, acct_amounts| acct_amounts << entry.acct_amounts end acct_amounts.flatten! acct_amounts end
entries_containing_account_code(entries, account_code)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 23 def self.entries_containing_account_code(entries, account_code) entries.select { |entry| entry.contains_account?(account_code) } end
new(date, acct_amounts = [], doc_short_name = nil, description = '', receipts = [])
click to toggle source
Calls superclass method
# File lib/rock_books/documents/journal_entry.rb, line 9 def initialize(date, acct_amounts = [], doc_short_name = nil, description = '', receipts = []) super end
sort_entries_by_amount_descending!(entries)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 33 def self.sort_entries_by_amount_descending!(entries) entries.sort_by! do |entry| [-entry.total_absolute_value, entry.doc_short_name] end end
sort_entries_by_date!(entries)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 40 def self.sort_entries_by_date!(entries) entries.sort_by! { |entry| [entry.date, entry.doc_short_name] } end
total_for_code(entries, account_code)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 28 def self.total_for_code(entries, account_code) entries.map { |entry| entry.total_for_code(account_code)}.sum end
Public Instance Methods
acct_amounts_with_code(account_code)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 51 def acct_amounts_with_code(account_code) AcctAmount.filter(acct_amounts, AcctAmountFilters.account_code(account_code)) end
balanced?()
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 68 def balanced? total_amount == 0.0 end
contains_account?(account_code)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 73 def contains_account?(account_code) acct_amounts.any? { |acct_amount| acct_amount.code == account_code } end
total_absolute_value()
click to toggle source
Gets the absolute value of the positive (or negative) amounts in this entry. This is used to sort by transaction amount, since total of all amounts will always be zero.
# File lib/rock_books/documents/journal_entry.rb, line 63 def total_absolute_value acct_amounts.map(&:amount).select { |n| n.positive? }.sum end
total_amount()
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 56 def total_amount acct_amounts.inject(0) { |sum, aa| sum + aa.amount } end
total_for_code(account_code)
click to toggle source
# File lib/rock_books/documents/journal_entry.rb, line 46 def total_for_code(account_code) acct_amounts_with_code(account_code).map(&:amount).sum end