Sha256: 7f22d656d2cb5ec36763d42f352098267dd4ed3cd48cac5f2c05a0d2492599f7
Contents?: true
Size: 1.32 KB
Versions: 62
Compression:
Stored size: 1.32 KB
Contents
module Workarea module Insights class MostDiscountGiven < Base class << self def dashboards %w(marketing) end def generate_monthly! results = generate_results create!(results: results) if results.present? end def generate_results total_discount = find_total_discount report .results .take(Workarea.config.insights_discounts_list_max_results) .map do |result| percent_of_total = if total_discount.zero? 0 else (result['discounts'] / total_discount.to_f) * 100 end result.merge( discount_id: result['_id'], percent_of_total: percent_of_total ) end end def report Reports::SalesByDiscount.new( starts_at: beginning_of_last_month, ends_at: end_of_last_month, sort_by: 'discounts', sort_direction: 'asc' ) end def find_total_discount Metrics::DiscountByDay .where(:reporting_on.gte => beginning_of_last_month) .where(:reporting_on.lte => end_of_last_month) .sum(:discounts) || 0 end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems