Sha256: ffa22138a336b572b464e6e4454dce9b28bf5b567cf33c886e1ac84ccaa1cd59
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
module Forgeos module Commerce class Statistics def self.total_of_sales(date = nil) conditions = { :status => %w(paid accepted shipped closed) } if date if date.kind_of?(Date) conditions[:created_at] = date.beginning_of_day..date.end_of_day else conditions[:created_at] = date end end Order.all(:conditions => conditions).collect(&:total).sum end def self.products_most_viewed(date,limit = nil) ProductViewedCounter.sum(:counter, :conditions => { :date => date }, :order => 'sum_counter DESC', :limit => limit, :group => 'element_id' ) end def self.products_most_sold(date,limit = nil) ProductSoldCounter.sum(:counter, :conditions => { :date => date }, :order => 'sum_counter DESC', :limit => limit, :group => 'element_id' ) end def self.total_of_sold_products(date) ProductSoldCounter.sum(:counter, :conditions => { :date => date }) end def self.best_customers(date, limit = nil) new_hash = {} OrderDetail.sum(:price, :conditions => { :orders => { :status => %w(paid shipped closed), :updated_at => date } }, :include => :order, :group => 'orders.user_id', :order => 'sum_price DESC' ).each_with_index do |item,index| break if index < limit new_hash[item.first] = item.last end return new_hash end def self.new_customers(date, limit = nil) User.all( :conditions => { :created_at => date }, :order => 'created_at DESC', :limit => limit ) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
forgeos_commerce-1.9.1.rc1 | lib/forgeos/commerce/statistics.rb |
forgeos_commerce-1.9.0 | lib/forgeos/commerce/statistics.rb |