Sha256: 3c4526038ddecf842a01eb14db32d89adb6dfa1315ca26d63974e260f3e87026

Contents?: true

Size: 660 Bytes

Versions: 50

Compression:

Stored size: 660 Bytes

Contents

module Spree
  module Stock
    class Quantifier
      attr_reader :stock_items

      def initialize(variant)
        @variant = variant
        @stock_items = Spree::StockItem.joins(:stock_location).where(:variant_id => @variant, Spree::StockLocation.table_name =>{ :active => true})
      end

      def total_on_hand
        if @variant.should_track_inventory?
          stock_items.sum(:count_on_hand)
        else
          Float::INFINITY
        end
      end

      def backorderable?
        stock_items.any?(&:backorderable)
      end

      def can_supply?(required)
        total_on_hand >= required || backorderable?
      end

    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
spree_core-2.4.10 app/models/spree/stock/quantifier.rb
spree_core-2.3.13 app/models/spree/stock/quantifier.rb
spree_core-2.2.14 app/models/spree/stock/quantifier.rb
spree_core-2.4.9 app/models/spree/stock/quantifier.rb
spree_core-2.3.12 app/models/spree/stock/quantifier.rb
spree_core-2.2.13 app/models/spree/stock/quantifier.rb
spree_core-2.4.8 app/models/spree/stock/quantifier.rb
spree_core-2.3.11 app/models/spree/stock/quantifier.rb
spree_core-2.2.12 app/models/spree/stock/quantifier.rb
spree_core-2.4.7 app/models/spree/stock/quantifier.rb
spree_core-2.3.10 app/models/spree/stock/quantifier.rb
spree_core-2.4.6 app/models/spree/stock/quantifier.rb
spree_core-2.3.9 app/models/spree/stock/quantifier.rb
spree_core-2.2.11 app/models/spree/stock/quantifier.rb
spree_core-2.2.10 app/models/spree/stock/quantifier.rb
spree_core-2.3.8 app/models/spree/stock/quantifier.rb
spree_core-2.4.5 app/models/spree/stock/quantifier.rb
spree_core-2.4.4 app/models/spree/stock/quantifier.rb
spree_core-2.3.7 app/models/spree/stock/quantifier.rb
spree_core-2.4.3 app/models/spree/stock/quantifier.rb