Sha256: 1da1d104470d6dc61ae0736039c5e68168ea8d4e31103fb7abc2187430662cbd

Contents?: true

Size: 738 Bytes

Versions: 30

Compression:

Stored size: 738 Bytes

Contents

module Spree
  module Stock
    class AvailabilityValidator < ActiveModel::Validator
      def validate(line_item)
        unit_count = line_item.inventory_units.size
        return if unit_count >= line_item.quantity
        quantity = line_item.quantity - unit_count

        quantifier = Stock::Quantifier.new(line_item.variant)

        unless quantifier.can_supply? quantity
          variant = line_item.variant
          display_name = %Q{#{variant.name}}
          display_name += %Q{ (#{variant.options_text})} unless variant.options_text.blank?

          line_item.errors[:quantity] << Spree.t(:selected_quantity_not_available, :scope => :order_populator, :item => display_name.inspect)
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
spree_core-2.2.14 app/models/spree/stock/availability_validator.rb
spree_core-2.2.13 app/models/spree/stock/availability_validator.rb
spree_core-2.2.12 app/models/spree/stock/availability_validator.rb
spree_core-2.4.7 app/models/spree/stock/availability_validator.rb
spree_core-2.3.10 app/models/spree/stock/availability_validator.rb
spree_core-2.4.6 app/models/spree/stock/availability_validator.rb
spree_core-2.3.9 app/models/spree/stock/availability_validator.rb
spree_core-2.2.11 app/models/spree/stock/availability_validator.rb
spree_core-2.2.10 app/models/spree/stock/availability_validator.rb
spree_core-2.3.8 app/models/spree/stock/availability_validator.rb
spree_core-2.4.5 app/models/spree/stock/availability_validator.rb
spree_core-2.4.4 app/models/spree/stock/availability_validator.rb
spree_core-2.3.7 app/models/spree/stock/availability_validator.rb
spree_core-2.4.3 app/models/spree/stock/availability_validator.rb
spree_core-2.2.9 app/models/spree/stock/availability_validator.rb
spree_core-2.4.2 app/models/spree/stock/availability_validator.rb
spree_core-2.3.6 app/models/spree/stock/availability_validator.rb
spree_core-2.2.8 app/models/spree/stock/availability_validator.rb
spree_core-2.4.1 app/models/spree/stock/availability_validator.rb
spree_core-2.4.0 app/models/spree/stock/availability_validator.rb