Module: Spree::UserMethods
- Extended by:
- ActiveSupport::Concern
- Included in:
- LegacyUser
- Defined in:
- app/models/concerns/spree/user_methods.rb
Instance Method Summary collapse
- #auto_generate_spree_api_key ⇒ Object
- #available_store_credit_total(currency:) ⇒ Object
- #display_available_store_credit_total(currency:) ⇒ Object
-
#has_spree_role?(role_in_question) ⇒ Boolean
has_spree_role? simply needs to return true or false whether a user has a role or not.
-
#last_incomplete_spree_order(store: nil, only_frontend_viewable: true) ⇒ Spree::Order
since the customer’s last complete order.
- #total_available_store_credit ⇒ Object
- #wallet ⇒ Object
Methods included from UserPaymentSource
#default_credit_card, #payment_sources
Methods included from UserAddressBook
#bill_address=, #bill_address_attributes=, #default_address, #default_address=, #default_address_attributes=, #default_user_address, #mark_default_address, #mark_default_bill_address, #mark_default_ship_address, #persist_order_address, #remove_from_address_book, #save_in_address_book, #ship_address=, #ship_address_attributes=
Methods included from UserReporting
#average_order_value, #lifetime_value, #order_count
Methods included from DisplayMoney
Methods included from UserApiAuthentication
#clear_spree_api_key, #clear_spree_api_key!, #generate_spree_api_key, #generate_spree_api_key!
Instance Method Details
#auto_generate_spree_api_key ⇒ Object
51 52 53 54 55 56 57 |
# File 'app/models/concerns/spree/user_methods.rb', line 51 def auto_generate_spree_api_key return if !respond_to?(:spree_api_key) || spree_api_key.present? if Spree::Config.generate_api_key_for_all_roles || (spree_roles.map(&:name) & Spree::Config.roles_for_auto_api_key).any? generate_spree_api_key! end end |
#available_store_credit_total(currency:) ⇒ Object
76 77 78 79 80 |
# File 'app/models/concerns/spree/user_methods.rb', line 76 def available_store_credit_total(currency:) store_credits.to_a. select { |credit| credit.currency == currency }. sum(&:amount_remaining) end |
#display_available_store_credit_total(currency:) ⇒ Object
82 83 84 85 86 87 |
# File 'app/models/concerns/spree/user_methods.rb', line 82 def display_available_store_credit_total(currency:) Spree::Money.new( available_store_credit_total(currency: currency), currency: currency, ) end |
#has_spree_role?(role_in_question) ⇒ Boolean
has_spree_role? simply needs to return true or false whether a user has a role or not.
47 48 49 |
# File 'app/models/concerns/spree/user_methods.rb', line 47 def has_spree_role?(role_in_question) spree_roles.any? { |role| role.name == role_in_question.to_s } end |
#last_incomplete_spree_order(store: nil, only_frontend_viewable: true) ⇒ Spree::Order
since the customer’s last complete order.
61 62 63 64 65 66 67 68 69 |
# File 'app/models/concerns/spree/user_methods.rb', line 61 def last_incomplete_spree_order(store: nil, only_frontend_viewable: true) self_orders = orders self_orders = self_orders.where(frontend_viewable: true) if only_frontend_viewable self_orders = self_orders.where(store: store) if store self_orders = self_orders.where('updated_at > ?', Spree::Config.completable_order_updated_cutoff_days.days.ago) if Spree::Config.completable_order_updated_cutoff_days self_orders = self_orders.where('created_at > ?', Spree::Config.completable_order_created_cutoff_days.days.ago) if Spree::Config.completable_order_created_cutoff_days last_order = self_orders.order(:created_at).last last_order unless last_order.try!(:completed?) end |
#total_available_store_credit ⇒ Object
71 72 73 |
# File 'app/models/concerns/spree/user_methods.rb', line 71 def total_available_store_credit store_credits.reload.to_a.sum(&:amount_remaining) end |