Sha256: d2946b2feb0efe581786d50933c405206be6d0d21cba317df321487d8cb613a6

Contents?: true

Size: 1.91 KB

Versions: 4

Compression:

Stored size: 1.91 KB

Contents

module Caboose
  class VariantLimit < ActiveRecord::Base
    self.table_name = 'store_variant_limits'
    
    belongs_to :variant
    belongs_to :user    
    attr_accessible :id   ,
      :variant_id         ,
      :user_id            ,
      :min_quantity_value ,
      :min_quantity_func  ,
      :max_quantity_value ,
      :max_quantity_func  ,
      :current_value
      
    def min_quantity
      return self.min_quantity_value if self.min_quantity_func.nil? || self.min_quantity_func.strip.length == 0      
      return eval(self.min_quantity_func)            
    end
    
    def max_quantity      
      return self.max_quantity_value if self.max_quantity_func.nil? || self.max_quantity_func.strip.length == 0      
      return eval(self.max_quantity_func)            
    end

    def quantity_message      
      if self.min_quantity == 0 && self.max_quantity == 0
        return "You are not allowed to purchase this item."
      end
      if self.max_quantity
        if self.min_quantity && self.min_quantity > 0
          return "You are allowed to purchase between #{self.min_quantity} and #{self.max_quantity} of this item."
        else
          return "You are allowed to purchase up to #{self.max_quantity} of this item."
        end
      end
      if self.min_quantity && self.min_quantity > 0
        return "You must purchase at least #{self.min_quantity} of this item." 
      end
      return nil
    end
    
    def no_purchases_allowed
      return self.min_quantity == 0 && self.max_quantity == 0
    end
    
    def qty_within_range(qty)
      return false if self.min_quantity && qty < self.min_quantity
      return false if self.max_quantity && qty > self.max_quantity
      return true
    end
    
    def qty_too_low(qty)
      return self.min_quantity && qty < self.min_quantity
    end
    
    def qty_too_high(qty)
      return self.max_quantity && qty > self.max_quantity
    end
          
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
caboose-cms-0.9.31 app/models/caboose/variant_limit.rb
caboose-cms-0.9.30 app/models/caboose/variant_limit.rb
caboose-cms-0.9.29 app/models/caboose/variant_limit.rb
caboose-cms-0.9.28 app/models/caboose/variant_limit.rb