Sha256: a9019f6a07b91f2589288f7743afaf52333e96cd1e5880fb27aca15da92baebc

Contents?: true

Size: 1.19 KB

Versions: 62

Compression:

Stored size: 1.19 KB

Contents

module Workarea
  module Insights
    class SalesByNavigation < Base
      class << self
        def dashboards
          %w(store)
        end

        def generate_monthly!
          results = generate_results
          create!(results: results) if results.present?
        end

        def generate_results
          total_revenue = find_total_revenue

          report
            .results
            .map do |result|
              percent_of_total = if total_revenue.zero?
                0
              else
                (result['revenue'] / total_revenue.to_f) * 100
              end

              result.merge(
                menu_id: result['_id'],
                percent_of_total: percent_of_total
              )
            end
        end

        def report
          Reports::SalesByMenu.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

Version Path
workarea-core-3.5.27 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.26 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.45 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.25 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.23 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.44 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.22 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.43 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.21 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.42 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.20 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.41 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.19 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.40 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.18 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.39 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.17 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.38 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.5.16 app/models/workarea/insights/sales_by_navigation.rb
workarea-core-3.4.37 app/models/workarea/insights/sales_by_navigation.rb