Class: Spree::CartUpdationsReport

Inherits:
Report
  • Object
show all
Defined in:
app/reports/spree/cart_updations_report.rb

Defined Under Namespace

Classes: Result

Constant Summary collapse

DEFAULT_SORTABLE_ATTRIBUTE =
:product_name
HEADERS =
{ sku: :string, product_name: :string, updations: :integer, quantity_increase: :integer, quantity_decrease: :integer }
SEARCH_ATTRIBUTES =
{ start_date: :product_updated_from, end_date: :product_updated_to }
SORTABLE_ATTRIBUTES =
[:product_name, :sku, :updations, :quantity_increase, :quantity_decrease]

Constants inherited from Report

Report::TIME_SCALES

Instance Attribute Summary

Attributes inherited from Report

#current_page, #paginate, #records_per_page, #reporting_period, #search, #sortable_attribute, #sortable_type, #total_records

Instance Method Summary collapse

Methods inherited from Report

#active_record_sort, deeplink, #deeplink_properties, #generate, #get_results, #header_sorted?, #initialize, #name, #paginated?, #pagination_required?, #set_sortable_attributes, #time_scale_columns, #time_scale_columns_to_s, #time_scale_selects, #total_pages

Constructor Details

This class inherits a constructor from Spree::Report

Instance Method Details

#report_queryObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/reports/spree/cart_updations_report.rb', line 20

def report_query
  quantity_increase_sql = "CASE WHEN quantity > 0 then spree_cart_events.quantity ELSE 0 END"
  quantity_decrease_sql = "CASE WHEN quantity < 0 then spree_cart_events.quantity ELSE 0 END"

  Spree::CartEvent
    .updated
    .joins(:variant)
    .joins(:product)
    .where(created_at: reporting_period)
    .group('product_name', 'product_slug', 'spree_variants.sku')
    .select(
      'spree_products.name              as product_name',
      'spree_products.slug              as product_slug',
      'spree_variants.sku               as sku',
      'count(spree_products.name)       as updations',
      "SUM(#{ quantity_increase_sql })  as quantity_increase",
      "SUM(#{ quantity_decrease_sql })  as quantity_decrease"
    )
end