Class: Spree::Adjustment
- Extended by:
- DisplayMoney
- Defined in:
- app/models/spree/adjustment.rb
Instance Method Summary collapse
- #currency ⇒ Object
- #promotion? ⇒ Boolean
-
#update!(target = adjustable) ⇒ Object
Passing a target here would always be recommended as it would avoid hitting the database again and would ensure you’re compute values over the specific object amount passed here.
Methods included from DisplayMoney
Methods inherited from Base
belongs_to_required_by_default, page, spree_base_scopes
Methods included from Preferences::Preferable
#clear_preferences, #default_preferences, #defined_preferences, #get_preference, #has_preference!, #has_preference?, #preference_default, #preference_type, #set_preference
Instance Method Details
#currency ⇒ Object
76 77 78 |
# File 'app/models/spree/adjustment.rb', line 76 def currency adjustable ? adjustable.currency : Spree::Config[:currency] end |
#promotion? ⇒ Boolean
80 81 82 |
# File 'app/models/spree/adjustment.rb', line 80 def promotion? source_type == 'Spree::PromotionAction' end |
#update!(target = adjustable) ⇒ Object
Passing a target here would always be recommended as it would avoid hitting the database again and would ensure you’re compute values over the specific object amount passed here.
87 88 89 90 91 92 93 94 |
# File 'app/models/spree/adjustment.rb', line 87 def update!(target = adjustable) return amount if closed? || source.blank? amount = source.compute_amount(target) attributes = { amount: amount, updated_at: Time.current } attributes[:eligible] = source.promotion.eligible?(target) if promotion? update_columns(attributes) amount end |