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

Version Path
workarea-core-3.5.15 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.36 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.14 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.35 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.13 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.34 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.12 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.33 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.11 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.10 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.32 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.9 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.31 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.8 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.30 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.7 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.29 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.6 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.28 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.5 app/models/workarea/insights/most_discount_given.rb