From 6ed672e4439cf6be54781dd87abcc815d09cd5d1 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Thu, 13 Nov 2014 18:03:41 +0100 Subject: Move reporting to Reports::SalesByDate class. --- lib/reports/sales_by_date.rb | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 lib/reports/sales_by_date.rb (limited to 'lib/reports') diff --git a/lib/reports/sales_by_date.rb b/lib/reports/sales_by_date.rb new file mode 100644 index 0000000..9e623f1 --- /dev/null +++ b/lib/reports/sales_by_date.rb @@ -0,0 +1,34 @@ +module SalesReporter + module Reports + class SalesByDate + def self.render(sales) + sales_by_date = {} + + sales.each do |s| + d = s.date + if sales_by_date[d] + sales_by_date[d][:count] += s.quantity + sales_by_date[d][:total] += s.amount + else + sales_by_date[d] = {:count => s.quantity, :total => s.amount} + end + end + + 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" + end + end + end +end -- cgit v1.2.3