order submission and order queue submission basic done
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
class Order < ApplicationRecord
|
||||
before_create :set_order_date
|
||||
before_save :update_products_and_quantity_count
|
||||
|
||||
belongs_to :customer
|
||||
has_many :order_items, autosave: true , inverse_of: :order
|
||||
@@ -37,13 +36,10 @@ class Order < ApplicationRecord
|
||||
|
||||
self.adding_line_items
|
||||
#Add Order Table and Room relation afrer order creation
|
||||
if booking.type = "TableBooking"
|
||||
#add to table_booking_order
|
||||
tbo = TableBookingOrder.create({:table_booking_id => booking.id, :order => self})
|
||||
elsif booking.type = "RoomBooking"
|
||||
#add to room_booking_order
|
||||
rbo = RoomBookingOrder.create({:room_booking_id => booking.id, :order => self})
|
||||
end
|
||||
BookingOrder.create({:booking_id => booking.id, :order => self})
|
||||
|
||||
#Send order to queue one it done!
|
||||
process_order_queue
|
||||
|
||||
return true
|
||||
|
||||
@@ -63,8 +59,25 @@ class Order < ApplicationRecord
|
||||
if self.items
|
||||
#loop to add all items to order
|
||||
self.items.each do |item|
|
||||
self.order_items.add( OrderItem.processs_item(item, self.id, self.employee_name) )
|
||||
menu_item = MenuItem.search_by_item_code(item[:item_code])
|
||||
|
||||
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")
|
||||
set_order_items
|
||||
end
|
||||
|
||||
if (menu_item)
|
||||
|
||||
OrderItem.processs_item(menu_item[:item_instance_code], menu_item[:name],
|
||||
item[:qty], item[:options], set_order_items, self.id,
|
||||
self.employee_name)
|
||||
end
|
||||
end
|
||||
|
||||
self.item_count = self.order_items.count
|
||||
self.save!
|
||||
|
||||
return true
|
||||
else
|
||||
self.errors.add(:order_items, :blank, message: "Order items cannot be blank")
|
||||
@@ -73,6 +86,7 @@ class Order < ApplicationRecord
|
||||
|
||||
end
|
||||
|
||||
|
||||
def default_values
|
||||
self.customer = Customer.find(1) if self.customer_id.nil?
|
||||
self.source = "emenu" if self.source.nil?
|
||||
@@ -94,7 +108,7 @@ class Order < ApplicationRecord
|
||||
item_count = 0
|
||||
quantity_count = 0
|
||||
# Count number of different items
|
||||
self.item_count = item_count
|
||||
self.item_count = self.order_items.item_count
|
||||
self.quantity_count = quantity_count
|
||||
# Counter number of quantity
|
||||
end
|
||||
@@ -102,6 +116,6 @@ class Order < ApplicationRecord
|
||||
#Process order items and send to order queue
|
||||
def process_order_queue
|
||||
#Send to background job for processing
|
||||
OrderQueueProcessorJob.perform_later(:order_id => self.id)
|
||||
OrderQueueProcessorJob.perform_later(self.id)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user