class RockBooks::JournalReport
Attributes
context[RW]
report_data[RW]
Public Class Methods
new(report_data, report_context, filter = nil)
click to toggle source
# File lib/rock_books/reports/journal_report.rb, line 15 def initialize(report_data, report_context, filter = nil) @report_data = report_data @context = report_context end
Public Instance Methods
generate()
click to toggle source
# File lib/rock_books/reports/journal_report.rb, line 21 def generate presentation_context = template_presentation_context.merge(fn_format_entry: method(:format_entry)) ErbHelper.render_hashes('text/journal.txt.erb', report_data, presentation_context) end
Private Instance Methods
format_date_and_account_amount(date, acct_amount)
click to toggle source
# File lib/rock_books/reports/journal_report.rb, line 27 def format_date_and_account_amount(date, acct_amount) "#{date} #{format_acct_amount(acct_amount)}\n" end
format_entry(entry)
click to toggle source
# File lib/rock_books/reports/journal_report.rb, line 74 def format_entry(entry) if entry.acct_amounts.size > 2 format_entry_with_split(entry) else format_entry_no_split(entry) end end
format_entry_first_acct_amount(entry)
click to toggle source
# File lib/rock_books/reports/journal_report.rb, line 32 def format_entry_first_acct_amount(entry) format_date_and_account_amount(entry.date, entry.acct_amounts.first) end
format_entry_last_acct_amount(entry)
click to toggle source
# File lib/rock_books/reports/journal_report.rb, line 37 def format_entry_last_acct_amount(entry) format_date_and_account_amount(entry.date, entry.acct_amounts.last) end
format_entry_no_split(entry)
click to toggle source
Formats an entry like this, with entry description added on additional line(s) if it exists: 2018-05-21 $120.00 701 Office Supplies
# File lib/rock_books/reports/journal_report.rb, line 44 def format_entry_no_split(entry) output = format_entry_last_acct_amount(entry) if entry.description && entry.description.length > 0 output += entry.description end output end
format_entry_with_split(entry)
click to toggle source
- Formats an entry like this, with entry description added on additional line(s) if it exists
-
2018-05-21 $120.00 95.00 701 Office Supplies
25.00 751 Gift to Customer
# File lib/rock_books/reports/journal_report.rb, line 57 def format_entry_with_split(entry) output = StringIO.new output << format_entry_first_acct_amount(entry) indent = ' ' * 12 entry.acct_amounts[1..-1].each do |acct_amount| output << indent << format_acct_amount(acct_amount) << "\n" end if entry.description && entry.description.length > 0 output << entry.description end output.string end