Class: Report

Inherits:
Object
  • Object
show all
Defined in:
lib/moneymanager/report.rb

Instance Method Summary collapse

Instance Method Details



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/moneymanager/report.rb', line 13

def print_group_by_categories_report(entries, onlyIncome)

  entries = entries.select { |entry|
    entry.income? == onlyIncome
  }.each_with_object(Hash.new(0)) { |current, sum|
    tag = current.tag ||= 'Unknown'
    sum[tag] += current.amount
  }.map { |x, v|
    [x, v]
  }.sort! { |r1, r2| r1.first <=> r2.first }
  Layout.print_generic_rows(entries)
end


26
27
28
29
30
31
32
33
34
# File 'lib/moneymanager/report.rb', line 26

def print_group_by_month_report(entries, tag)
  entries = entries.select { |entry|
    entry.tag == tag
  }.each_with_object(Hash.new(0)) { | current, sum |
    month = current.date.strftime("%B")
    sum[month] += current.amount
  }
  Layout.print_generic_rows(entries)
end


3
4
5
6
7
8
9
10
11
# File 'lib/moneymanager/report.rb', line 3

def print_total_report(entries, onlyIncome)
  total = 0
  if (onlyIncome)
    total = entries.reject(&:expense?).map(&:amount).reduce(:+)
  else
    total = entries.reject(&:income?).map(&:amount).reduce(:+)
  end
  Layout.print_single_value(total)
end