Class: Caboose::OrderReporter

Inherits:
Object
  • Object
show all
Defined in:
app/models/caboose/order_reporter.rb

Class Method Summary collapse

Class Method Details

.summary_report(site_id, d1, d2) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/models/caboose/order_reporter.rb', line 5

def OrderReporter.summary_report(site_id, d1, d2)
  q = ["select 
      concat(date_part('year', date_authorized), '-', date_part('month', date_authorized), '-', date_part('day', date_authorized)),
      count(*), 
      sum(total)
    from store_orders
    where site_id = ?
    and (financial_status = ? or financial_status = ?)
    and date_authorized >= ?
    and date_authorized < ?
    group by concat(date_part('year', date_authorized), '-', date_part('month', date_authorized), '-', date_part('day', date_authorized))
    order by concat(date_part('year', date_authorized), '-', date_part('month', date_authorized), '-', date_part('day', date_authorized))",
    site_id, 'authorized', 'captured', d1, d2]
  rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q))
  
  days = []
  rows.each do |row|
    arr = row[0].split('-')
    days << Caboose::StdClass.new(
      :date => Date.new(arr[0].to_i, arr[1].to_i, arr[2].to_i), 
      :count => row[1],
      :total => row[2]
    )
  end      
  days.sort_by!{ |h| h.date }
        
  last_day = d1 - 1.day
  days2 = []
  days.each do |h|
    while (h.date - last_day) > 1          
      days2 << Caboose::StdClass.new(:date => last_day + 1.day, :count => 0, :total => 0.0)
      last_day = last_day + 1.day
    end
    days2 << h
    last_day = h.date        
  end
  days2.each do |h|
    puts "#{h.date} #{h.count} #{h.total}"
  end
  return days2
  
  #return rows.collect { |row|
  #  arr = row[0].split('-')
  #  Caboose::StdClass.new(
  #    :date => Date.new(arr[0].to_i, arr[1].to_i, arr[2].to_i), 
  #    :count => row[1],
  #    :total => row[2]
  #  )        
  #}
end