emenu api integrated
This commit is contained in:
@@ -32,7 +32,7 @@ class Employee < ApplicationRecord
|
||||
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.session_expiry = user.session_expiry.utc + 30.minutes
|
||||
user.save
|
||||
return true
|
||||
else
|
||||
|
||||
@@ -4,9 +4,9 @@ class MenuCategory < ApplicationRecord
|
||||
belongs_to :parent, :class_name => "MenuCategory", foreign_key: "menu_category_id", optional: true
|
||||
has_many :menu_items
|
||||
|
||||
validates_presence_of :name
|
||||
validates_presence_of :name, :menu, :code, :order_by
|
||||
|
||||
default_scope { order('order_by asc') }
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ class Order < ApplicationRecord
|
||||
has_many :assigned_order_items
|
||||
|
||||
#internal references attributes for business logic control
|
||||
attr_accessor :items, :guest, :table_id, :new_booking, :booking_type, :employee_name
|
||||
attr_accessor :items, :guest, :table_id, :new_booking, :booking_type, :employee_name, :booking_id
|
||||
|
||||
|
||||
#Main Controller method to create new order - validate all inputs and generate new order
|
||||
@@ -25,7 +25,9 @@ class Order < ApplicationRecord
|
||||
:checkin_at => Time.now.utc, :checkin_by => self.employee_name,
|
||||
:booking_status => "new" })
|
||||
else
|
||||
booking = Booking.find(self.booking_id)
|
||||
if (self.booking_id.to_i > 0 )
|
||||
booking = Booking.find(self.booking_id)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -41,7 +43,7 @@ class Order < ApplicationRecord
|
||||
#Send order to queue one it done!
|
||||
process_order_queue
|
||||
|
||||
return true
|
||||
return true, booking
|
||||
|
||||
end
|
||||
|
||||
@@ -59,8 +61,8 @@ class Order < ApplicationRecord
|
||||
if self.items
|
||||
#loop to add all items to order
|
||||
self.items.each do |item|
|
||||
menu_item = MenuItem.search_by_item_code(item[:item_code])
|
||||
|
||||
menu_item = MenuItem.search_by_item_code(item[:item_instance_code])
|
||||
Rails.logger.debug menu_item
|
||||
set_order_items = nil
|
||||
##If menu Item set item - must add child items to order as well, where price is only take from menu_item
|
||||
if (menu_item[:type] == "SetMenuItem")
|
||||
@@ -69,8 +71,8 @@ class Order < ApplicationRecord
|
||||
|
||||
if (menu_item)
|
||||
|
||||
OrderItem.processs_item(menu_item[:item_instance_code], menu_item[:name],
|
||||
item[:qty],item[:price], item[:options], set_order_items, self.id,
|
||||
OrderItem.processs_item(menu_item[:item_code], menu_item[:name],
|
||||
item[:quantity],menu_item[:price], item[:options], set_order_items, self.id,
|
||||
self.employee_name)
|
||||
end
|
||||
end
|
||||
@@ -87,9 +89,9 @@ class Order < ApplicationRecord
|
||||
end
|
||||
|
||||
def update_items_status_to_billed(items)
|
||||
if (items)
|
||||
if (items.nil?)
|
||||
##Update the order status to ensure that reflect the stage
|
||||
order.order_items.each do |item|
|
||||
self.order_items.each do |item|
|
||||
item.order_item_status = "billed"
|
||||
item.save
|
||||
end
|
||||
|
||||
@@ -31,7 +31,7 @@ class Sale < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def generate_invoice_from_order (order_no, sale_id, requested_by)
|
||||
def generate_invoice_from_order (order_id, sale_id, requested_by)
|
||||
taxable = true
|
||||
#if sale_id is exsit and validate
|
||||
#add order to that invoice
|
||||
@@ -45,32 +45,34 @@ class Sale < ApplicationRecord
|
||||
else
|
||||
#if this is new sale generate_receipt_no
|
||||
generate_receipt_no
|
||||
order = Order.find(order_id)
|
||||
|
||||
#Default - Values
|
||||
self.tax_type = "execlusive"
|
||||
|
||||
self.requested_by = requested_by
|
||||
self.requested_at = DateTime.now.utc
|
||||
self.customer_id = order.customer_id
|
||||
|
||||
order = Order.find(order_no)
|
||||
Rails.logger.debug "Order -> #{order.id} | order_status -> #{order.status}"
|
||||
if order
|
||||
self.customer_id = order.customer_id
|
||||
Rails.logger.debug "Order -> #{order.id} | Items Count -> #{order.order_items.count}"
|
||||
|
||||
order.order_items.each do |item|
|
||||
add_item(item)
|
||||
end
|
||||
|
||||
link_order_sale(order.id)
|
||||
|
||||
end
|
||||
|
||||
link_order_sale(order.id)
|
||||
|
||||
self.save!
|
||||
#compute summary
|
||||
compute
|
||||
|
||||
#Update the order items that is billed
|
||||
order.update_items_status_to_billed
|
||||
order.update_items_status_to_billed(nil)
|
||||
|
||||
return true, self.id
|
||||
end
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
class TaxProfile < ApplicationRecord
|
||||
default_scope { order('order_by asc') }
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user