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.27 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.26 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.45 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.25 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.23 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.44 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.22 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.43 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.21 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.42 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.20 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.41 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.19 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.40 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.18 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.39 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.17 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.38 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.5.16 app/models/workarea/insights/most_discount_given.rb
workarea-core-3.4.37 app/models/workarea/insights/most_discount_given.rb