Sha256: caa4fe95eeabadf91d55ec85a11d936106e8b5f546742aad2dac2f512deb3f50
Contents?: true
Size: 1.27 KB
Versions: 62
Compression:
Stored size: 1.27 KB
Contents
module Workarea module Insights class TopCategories < Base class << self def dashboards %w(catalog) end def generate_monthly! results = generate_results create!(results: results) if results.present? end def generate_results total_revenue = find_total_revenue report .results .take(Workarea.config.insights_categories_list_max_results) .map do |result| percent_of_total = if total_revenue.zero? 0 else (result['revenue'] / total_revenue.to_f) * 100 end result.merge( category_id: result['_id'], percent_of_total: percent_of_total ) end end def report Reports::SalesByCategory.new( starts_at: beginning_of_last_month, ends_at: end_of_last_month, sort_by: 'revenue', sort_direction: 'desc' ) end def find_total_revenue Metrics::SalesByDay .by_date_range(starts_at: beginning_of_last_month, ends_at: end_of_last_month) .sum(:revenue) || 0 end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems