Sha256: b0c99bef3f7f90fa19097e4193fe74c01e1fc19cc2dab56ef1d95a77e7a6470f

Contents?: true

Size: 1.09 KB

Versions: 15

Compression:

Stored size: 1.09 KB

Contents

Spree::Order.class_eval do
  attr_accessible :coupon_code
  attr_accessor :coupon_code

  # Tells us if there if the specified promotion is already associated with the order
  # regardless of whether or not its currently eligible.  Useful because generally
  # you would only want a promotion to apply to order no more than once.
  def promotion_credit_exists?(promotion)
    !! adjustments.promotion.reload.detect { |credit| credit.originator.promotion.id == promotion.id }
  end

  def products
    line_items.map {|li| li.variant.product}
  end

  unless self.method_defined?('update_adjustments_with_promotion_limiting')
    def update_adjustments_with_promotion_limiting
      update_adjustments_without_promotion_limiting
      return if adjustments.promotion.eligible.none?
      most_valuable_adjustment = adjustments.promotion.eligible.max{|a,b| a.amount.abs <=> b.amount.abs}
      ( adjustments.promotion.eligible - [most_valuable_adjustment] ).each{|adjustment| adjustment.update_attribute_without_callbacks(:eligible, false)}
    end
    alias_method_chain :update_adjustments, :promotion_limiting
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
spree_promo-1.0.7 app/models/spree/order_decorator.rb
spree_promo-1.0.6 app/models/spree/order_decorator.rb
spree_promo-1.1.1 app/models/spree/order_decorator.rb
spree_promo-1.1.0 app/models/spree/order_decorator.rb
spree_promo-1.0.4 app/models/spree/order_decorator.rb
spree_promo-1.1.0.rc2 app/models/spree/order_decorator.rb
spree_promo-1.1.0.rc1 app/models/spree/order_decorator.rb
spree_promo-1.0.3 app/models/spree/order_decorator.rb
spree_promo-1.0.2 app/models/spree/order_decorator.rb
spree_promo-1.0.1 app/models/spree/order_decorator.rb
spree_promo-1.0.0 app/models/spree/order_decorator.rb
spree_promo-1.0.0.rc4 app/models/spree/order_decorator.rb
spree_promo-1.0.0.rc3 app/models/spree/order_decorator.rb
spree_promo-1.0.0.rc2 app/models/spree/order_decorator.rb
spree_promo-1.0.0.rc1 app/models/spree/order_decorator.rb