class RockBooks::TxOneAccountData

Attributes

account[R]
account_code[R]
account_total[R]
context[R]
entries[R]
totals[R]

Public Class Methods

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

Public Instance Methods

fetch() click to toggle source
# File lib/rock_books/reports/data/tx_one_account_data.rb, line 14
def fetch

  account = context.chart_of_accounts.account_for_code(account_code)
  account_string = "#{account.code} -- #{account.name}  (#{account.type.to_s.capitalize})"
  entries = Journal.entries_in_documents(context.journals, JournalEntryFilters.account_code(account_code))
  account_total = JournalEntry.total_for_code(entries, account_code)
  totals = AcctAmount.aggregate_amounts_by_account(JournalEntry.entries_acct_amounts(entries))


  {
    account_string: account_string,
    entries: entries,
    total: account_total,
    totals: AcctAmount.aggregate_amounts_by_account(JournalEntry.entries_acct_amounts(entries)),
    grand_total: totals.values.sum.round(2)
  }
end

Private Instance Methods

fetch_totals(filter) click to toggle source
# File lib/rock_books/reports/data/tx_one_account_data.rb, line 32
        def fetch_totals(filter)
  acct_amounts = Journal.acct_amounts_in_documents(context.journals, filter)
  AcctAmount.aggregate_amounts_by_account(acct_amounts)
end