diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2014-11-13 17:15:12 +0100 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2014-11-13 17:17:21 +0100 |
commit | 91387893047f9b02cb0e9741f4843161e2e78179 (patch) | |
tree | 340c9daa52fa6ca8d5779ebc4711570699aa980f | |
parent | ca90189f199f35017cf16b92947d738c2880b444 (diff) | |
download | imusician-reports-91387893047f9b02cb0e9741f4843161e2e78179.tar.gz imusician-reports-91387893047f9b02cb0e9741f4843161e2e78179.tar.bz2 imusician-reports-91387893047f9b02cb0e9741f4843161e2e78179.zip |
Present sales by date and calculate totals.
-rw-r--r-- | parse_report.rb | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/parse_report.rb b/parse_report.rb index 840708e..aac426b 100644 --- a/parse_report.rb +++ b/parse_report.rb @@ -12,15 +12,28 @@ sales_by_date = {} rows = CSV.foreach(ARGV[0], csv_opts) rows.each do |row| - d = Date.parse(row["Date"]) - if sales_by_date[d] - sales_by_date[d][:count] += row["quantity"] - sales_by_date[d][:total] += row["revenue EUR"] - else - sales_by_date[d] = {:count => row["quantity"], :total => row["revenue EUR"]} + if row.count > 0 + d = Date.parse(row["Date"]) + if sales_by_date[d] + sales_by_date[d][:count] += row["quantity"] + sales_by_date[d][:total] += row["revenue EUR"] + else + sales_by_date[d] = {:count => row["quantity"], :total => row["revenue EUR"]} + end end end -sales_by_date.each do |row| - p row +puts "Date: Streams: Revenue:" +puts "------------------------------------------" + +total_rev = 0 +total_streams = 0 + +sales_by_date.each do |key, row| + puts "#{key.iso8601}: #{row[:count].to_s.rjust(7)} #{row[:total].round(5).to_s.rjust(10)} EUR" + total_rev += row[:total] + total_streams += row[:count] end + +puts "------------------------------------------" +puts "Total: #{total_streams.to_s.rjust(7)} #{total_rev.round(5).to_s.rjust(10)} EUR" |