Sha256: cdc18e6501ffc0a0095289784138f4c8aadebc9b7ae0536bfe769ebaca9d45e6
Contents?: true
Size: 854 Bytes
Versions: 3
Compression:
Stored size: 854 Bytes
Contents
module Spree module Stock class AvailabilityValidator < ActiveModel::Validator def validate(line_item) if shipment = line_item.target_shipment units = shipment.inventory_units_for(line_item.variant) return if units.count > line_item.quantity quantity = line_item.quantity - units.count else quantity = line_item.quantity end quantifier = Stock::Quantifier.new(line_item.variant_id) 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(:out_of_stock, :scope => :order_populator, :item => display_name.inspect) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems