class RockBooks::MultidocTxnByAccountData

Attributes

account_code[R]
context[R]

Public Class Methods

new(report_context) click to toggle source
# File lib/rock_books/reports/data/multidoc_txn_by_account_data.rb, line 9
def initialize(report_context)
  @context = report_context
end

Public Instance Methods

fetch() click to toggle source
# File lib/rock_books/reports/data/multidoc_txn_by_account_data.rb, line 14
def fetch
  all_journal_entries = Journal.entries_in_documents(context.journals)
  totals = AcctAmount.aggregate_amounts_by_account(JournalEntry.entries_acct_amounts(all_journal_entries))
  {
    journals: context.journals,
    entries: all_journal_entries,
    totals: totals,
    grand_total: totals.values.sum.round(2),
    acct_sections: fetch_acct_sections(all_journal_entries),
  }
end

Private Instance Methods

fetch_acct_sections(all_journal_entries) click to toggle source
# File lib/rock_books/reports/data/multidoc_txn_by_account_data.rb, line 27
        def fetch_acct_sections(all_journal_entries)
  context.chart_of_accounts.accounts.map do |account|
    code = account.code
    acct_entries = JournalEntry.entries_containing_account_code(all_journal_entries, code)
    total = JournalEntry.total_for_code(acct_entries, code)
    {
      code: code,
      entries: acct_entries,
      total: total
    }
  end
end