class RockBooks::JournalData

Attributes

context[R]
filter[R]
journal[R]

Public Class Methods

new(journal, report_context, filter = nil) click to toggle source
# File lib/rock_books/reports/data/journal_data.rb, line 8
def initialize(journal, report_context, filter = nil)
  @journal = journal
  @context = report_context
  @filter = filter
end

Public Instance Methods

entries() click to toggle source
# File lib/rock_books/reports/data/journal_data.rb, line 14
def entries
  return @entries if @entries
  @entries = journal.entries
  @entries = @entries.select { |entry| filter.(entry) } if filter
  @entries
end
fetch() click to toggle source
# File lib/rock_books/reports/data/journal_data.rb, line 21
def fetch
  totals = AcctAmount.aggregate_amounts_by_account(JournalEntry.entries_acct_amounts(entries))
  {
    code: journal.account_code,
    name: journal.chart_of_accounts.name_for_code(journal.account_code),
    title: journal.title,
    short_name: journal.short_name,
    debit_or_credit: journal.debit_or_credit,
    start_date: context.chart_of_accounts.start_date,
    end_date: context.chart_of_accounts.end_date,
    entries: entries,
    totals: totals,
    grand_total: totals.values.sum.round(2),
    max_acct_code_len: context.chart_of_accounts.max_account_code_length
  }
end