Files
sx-fc/app/models/menu_category.rb
2018-01-09 17:22:32 +06:30

65 lines
2.0 KiB
Ruby
Executable File

class MenuCategory < ApplicationRecord
# before_create :generate_menu_category_code
belongs_to :menu
has_many :children, :class_name => "MenuCategory", foreign_key: "menu_category_id"
belongs_to :parent, :class_name => "MenuCategory", foreign_key: "menu_category_id", optional: true
has_many :menu_items
validates_presence_of :code, :name, :menu, :order_by
validates_uniqueness_of :code
default_scope { order('order_by asc') }
scope :active, -> {where("is_available = 1")}
def self.destroyCategory(menu_category)
# find the sub menu item of current item
sub_menu_cat = MenuCategory.where("menu_category_id=?",menu_category.id)
if sub_menu_cat.length != 0
sub_menu_cat.each do |sub|
if destroyCategory(sub)
end
end
# find the items of current menu item
items = MenuItem.where("menu_category_id=?",menu_category.id)
items.each do |item|
abc = MenuItem.deleteRecursive(item)
end
menu_category.destroy
return true
else
items = MenuItem.where("menu_category_id=?",menu_category.id)
items.each do |item|
abc = MenuItem.deleteRecursive(item)
end
menu_category.destroy
return false
end
end
def valid_time
menu_category = MenuCategory.find(self.id)
menu = Menu.find(menu_category.menu_id)
from = menu.valid_time_from.strftime("%H:%M:%S")
to = menu.valid_time_to.strftime("%H:%M:%S")
current = Time.now.utc.getlocal.strftime("%H:%M:%S")
from = from.split(':').map { |a| a.to_i }.inject(0) { |a, b| a * 60 + b}
to = to.split(':').map { |a| a.to_i }.inject(0) { |a, b| a * 60 + b}
current = current.split(':').map { |a| a.to_i }.inject(0) { |a, b| a * 60 + b}
if current.between?(from, to)
return true
else
return nil
end
end
private
# def generate_menu_category_code
# self.code = SeedGenerator.generate_code(self.class.name, "C")
# end
end