class RawgentoModels::LocalProduct
Public Class Methods
name_ilike(name)
click to toggle source
SQLite specific
# File lib/rawgento_models/local_product.rb, line 31 def self.name_ilike name where('lower(name) LIKE ?', "%#{name.downcase}%") end
Public Instance Methods
days_since_first_stock()
click to toggle source
# File lib/rawgento_models/local_product.rb, line 43 def days_since_first_stock if first_record = first_stock_record (Date.today - first_record.created_at.to_date) else 0 end end
first_stock_record()
click to toggle source
# File lib/rawgento_models/local_product.rb, line 39 def first_stock_record stock_items.order(created_at: :asc).first end
link_suggestions(limit=10)
click to toggle source
# File lib/rawgento_models/local_product.rb, line 51 def link_suggestions limit=10 guesses = [] guesses << RemoteProduct.supplied_by(self.supplier).where(name: self.name).to_a guesses << RemoteProduct.supplied_by(self.supplier).where("lower(name) like ?", "%#{self.name.downcase[0..self.name.size/2]}%") .limit(limit).to_a guesses.flatten.uniq end
out_of_stock_days_since(date)
click to toggle source
# File lib/rawgento_models/local_product.rb, line 35 def out_of_stock_days_since date stock_items.where("qty <= ? AND date >= ?", 0, date).count end