Class: Spree::Stock::AvailabilityValidator
- Inherits:
-
ActiveModel::Validator
- Object
- ActiveModel::Validator
- Spree::Stock::AvailabilityValidator
- Defined in:
- app/models/spree/stock/availability_validator.rb
Overview
Overridden from spree core to make it also check for assembly parts stock
Instance Method Summary collapse
Instance Method Details
#validate(line_item) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/models/spree/stock/availability_validator.rb', line 5 def validate(line_item) line_item.quantity_by_variant.each do |variant, variant_quantity| inventory_units = line_item.inventory_units.where(variant: variant).count quantity = variant_quantity - inventory_units next if quantity <= 0 next unless variant quantifier = Stock::Quantifier.new(variant) unless quantifier.can_supply? quantity display_name = %Q{#{variant.name}} display_name += %Q{ (#{variant.})} unless variant..blank? line_item.errors[:quantity] << Spree.t( :selected_quantity_not_available, item: display_name.inspect ) end end end |