Class: SpreeReports::Reports::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/spree_reports/reports/base.rb

Direct Known Subclasses

OrdersByPeriod, SoldProducts

Instance Method Summary collapse

Instance Method Details

#excluded_user_idsObject



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/spree_reports/reports/base.rb', line 5

def excluded_user_ids
  users = []

  if SpreeReports.excluded_roles && SpreeReports.excluded_roles.any?
    users += Spree::User.joins(:spree_roles).where("spree_roles.name": SpreeReports.excluded_roles).pluck(:id)
  end

  if SpreeReports.excluded_users && SpreeReports.excluded_users.any?
    users += Spree::User.where(email: SpreeReports.excluded_users).pluck(:id)
  end
  
  users.uniq
end

#without_excluded_orders(orders) ⇒ Object



19
20
21
22
23
# File 'lib/spree_reports/reports/base.rb', line 19

def without_excluded_orders(orders)
  return orders if excluded_user_ids.none?
  excluded_order_ids = Spree::Order.where(user_id: excluded_user_ids).pluck(:id)
  orders.where.not(id: excluded_order_ids) if excluded_order_ids.any?  
end