menu and menu item categories

This commit is contained in:
Min Zeya Phyo
2017-04-15 17:33:45 +06:30
parent 355f4fadb0
commit 63c5c97f24
24 changed files with 303 additions and 39 deletions

View File

@@ -8,40 +8,49 @@ class Employee < ApplicationRecord
def self.login(emp_id, password)
user = Employee.find_by_emp_id(emp_id).authenticate(password)
Rails.logger.debug user
user = Employee.find_by_emp_id(emp_id)
if (user)
user.generate_token
user.session_expiry = DateTime.now.utc + 30.minutes
user.session_last_login = DateTime.now.utc
user.save
user.authenticate(password)
return user
if (user)
user.generate_token
user.session_expiry = DateTime.now.utc + 30.minutes
user.session_last_login = DateTime.now.utc
user.save
return user
end
end
return nil
end
def self.authenticate_by_token(session_token)
user = Employee.find_by_token_session(session_token)
if user && user.session_expiry.utc > DateTime.now.utc
#Extend the login time each time authenticatation take place
user.session_expiry = DateTime.now.utc + 30.minutes
user.save
return true
else
return false
if (session_token)
user = Employee.find_by_token_session(session_token)
if user && user.session_expiry.utc > DateTime.now.utc
#Extend the login time each time authenticatation take place
user.session_expiry = DateTime.now.utc + 30.minutes
user.save
return true
else
return false
end
end
return false
end
def self.logout(session_token)
user = Employee.find_by_token_session(session_token)
if user
user.token_session = nil
user.session_expiry = nil
user.save
if (session_token)
user = Employee.find_by_token_session(session_token)
if user
user.token_session = nil
user.session_expiry = nil
user.save
end
end
end

View File

@@ -3,4 +3,23 @@ class Menu < ApplicationRecord
validates_presence_of :name,:is_active, :valid_days, :valid_time_from, :valid_time_to
#Default Scope to pull the active version only
default_scope { where(is_active: true).order("created_at desc") }
def self.current_menu
today = DateTime.now
day_of_week = today.wday
menus = Menu.where("is_active = true and '#{today.strftime("%H:%M")}' between TIME(valid_time_from) and TIME(valid_time_to)")
current_menu = nil
#Loop through the menu which is valid days - get the first menu out and return result
menus.each do |menu|
if menu.valid_days.include?(day_of_week.to_s)
current_menu = menu
break
end
end
return current_menu
end
end

View File

@@ -1,5 +1,5 @@
class MenuItem < ApplicationRecord
belongs_to :menu_category
belongs_to :menu_category, :optional => true
has_many :menu_item_instances
belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true
has_many :children, :class_name => "MenuItem", foreign_key: "menu_item_id"