class Seisan::ExpenseRenderer
Public Instance Methods
render()
click to toggle source
# File lib/seisan/expense_renderer.rb, line 6 def render row ['立替払サマリー'] row summary_headings summary.each do |person, amount| row [person, amount] end row row ['立替払明細'] row headings lines.each do |line| row line end row Seisan.logger.info 'Processed %d expenses' % lines.size end
Private Instance Methods
headings()
click to toggle source
# File lib/seisan/expense_renderer.rb, line 37 def headings %w(日付 立替者 金額 摘要 備考) end
lines()
click to toggle source
# File lib/seisan/expense_renderer.rb, line 41 def lines lines = [] requests.each do |entry| entry['expense'].each do |expense| lines << [expense['date'].to_s, entry['applicant'], expense['amount'], expense['remarks'], expense['notes']] end end lines.sort_by {|line| [Date.parse(line[0]), line[1]] } end
summary()
click to toggle source
# File lib/seisan/expense_renderer.rb, line 29 def summary summary = Hash.new(0) requests.each do |entry| summary[entry['applicant']] += entry['expense'].inject(0){|r, e| r += e['amount'].to_i } end summary end
summary_headings()
click to toggle source
# File lib/seisan/expense_renderer.rb, line 25 def summary_headings %w(氏名 金額) end