Files
mozo-backend/app/models/supplier.rb
T
2012-08-30 11:12:23 +02:00

72 lines
1.5 KiB
Ruby

class Supplier
include SimplyStored::Couch
include Devise::Orm::SimplyStored
devise :database_authenticatable, :recoverable, :rememberable, :trackable
property :name
property :open, type: :boolean, default: false
#WIFI
property :offer_wifi
property :wifi_ssid
property :wifi_type
property :wifi_password
#has_many :orders, through: :lists
has_many :products, dependent: :destroy
has_many :product_categories, dependent: :destroy
has_many :tables, dependent: :destroy
#has_many :lists, through: :tables
has_many :orders
has_many :sections, dependent: :destroy
after_create :add_section_on_create
def active_orders
return @active_orders if @active_orders
@active_orders = Order.active_for_supplier(id)
@active_orders.include_relation(list: :table, product_orders: :order)
@active_orders
end
def active_lists
return @active_lists if @active_lists
@tables ||= active_tables
@tables.include_relation(:lists)
@active_lists = @tables.map(&:lists).flatten.select(&:active?)
@active_lists.include_relations(:table, orders: {product_orders: :product})
end
def active_tables
tables
end
def non_placed_tables
tables.reject{|t| t.section_id.present? }
end
def open?
open
end
def closed?
!open?
end
def mark_as_open!
self.open = true
save
end
def mark_as_closed!
self.open = false
save
end
private
def add_section_on_create
@section = Section.create supplier: self, title: I18n.t('section.first_section_title')
end
end