Sha256: c4ec1c11c318e5e82f2c6a28278a122ce5a4eb97f89a2ca1cce192a60b90a882

Contents?: true

Size: 580 Bytes

Versions: 57

Compression:

Stored size: 580 Bytes

Contents

# Used by Prioritizer to adjust item quantities
# see prioritizer_spec for use cases
module Spree
  module Stock
    class Adjuster
      attr_accessor :variant, :need, :status

      def initialize(variant, quantity, status)
        @variant = variant
        @need = quantity
        @status = status
      end

      def adjust(item)
        if item.quantity >= need
          item.quantity = need
          @need = 0
        elsif item.quantity < need
          @need -= item.quantity
        end
      end

      def fulfilled?
        @need == 0
      end
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
spree_core-2.3.13 app/models/spree/stock/adjuster.rb
spree_core-2.2.14 app/models/spree/stock/adjuster.rb
spree_core-2.3.12 app/models/spree/stock/adjuster.rb
spree_core-2.2.13 app/models/spree/stock/adjuster.rb
spree_core-2.3.11 app/models/spree/stock/adjuster.rb
spree_core-2.2.12 app/models/spree/stock/adjuster.rb
spree_core-2.3.10 app/models/spree/stock/adjuster.rb
spree_core-2.3.9 app/models/spree/stock/adjuster.rb
spree_core-2.2.11 app/models/spree/stock/adjuster.rb
spree_core-2.2.10 app/models/spree/stock/adjuster.rb
spree_core-2.3.8 app/models/spree/stock/adjuster.rb
spree_core-2.3.7 app/models/spree/stock/adjuster.rb
spree_core-2.2.9 app/models/spree/stock/adjuster.rb
spree_core-2.1.12 app/models/spree/stock/adjuster.rb
spree_core-2.3.6 app/models/spree/stock/adjuster.rb
spree_core-2.2.8 app/models/spree/stock/adjuster.rb
spree_core-2.1.11 app/models/spree/stock/adjuster.rb
spree_core-2.3.5 app/models/spree/stock/adjuster.rb
spree_core-2.2.7 app/models/spree/stock/adjuster.rb
spree_core-2.1.10 app/models/spree/stock/adjuster.rb