basic layout template

This commit is contained in:
Min Zeya Phyo
2017-04-05 08:24:21 +06:30
parent bcdce092cc
commit 0ddc7bdb44
66 changed files with 7049 additions and 48 deletions

View File

@@ -3,11 +3,10 @@ class Order < ApplicationRecord
before_save :update_products_and_quantity_count
belongs_to :customer
has_many :order_items, inverse_of: :order
has_many :dining_ins
has_many :order_items, autosave: true , inverse_of: :order
#internal references attributes for business logic control
attr_accessor :items, :guest, :table_id, :new_booking, :booking_type
attr_accessor :items, :guest, :table_id, :new_booking, :booking_type, :employee_name
#Main Controller method to create new order - validate all inputs and generate new order
@@ -19,26 +18,40 @@ class Order < ApplicationRecord
# sub_order_items : [],
# }
def generate
booking = nil
if self.new_booking
booking = Booking.create({:dining_facility_id => :table_id, })
self.adding_line_items
self.save!
booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking",
:checkin_at => Time.now.utc, :checkin_by => self.employee_name,
:booking_status => "new" })
else
booking = Booking.find(self.booking_id)
#Add Order Table and Room relation afrer order creation
if booking.type = "Table"
#add to table_booking_order
tbo = TableBookingOrder.create({:table_booking => booking, :order => self})
elsif booking.type = "Room"
#add to room_booking_order
rbo = RoomBookingOrder.create({:table_booking => booking, :order => self})
end
end
booking.save!
self.default_values
if self.save!
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
return true
end
return false
end
#Main Method - to update order / add items
@@ -46,24 +59,33 @@ class Order < ApplicationRecord
end
private
def validate_api_inputs
end
def adding_line_items
if self.items
#loop to add all items to order
self.items.each do |item|
self.order_items.add( OrderItem.processs_item(item) )
self.order_items.add( OrderItem.processs_item(item, self.id, self.employee_name) )
end
return true
else
self.errors.add(:order_items, :blank, message: "Order items cannot be blank")
return false
end
end
def default_values
self.customer = Customer.find(1) if self.customer_id.nil?
self.source = "emenu" if self.source.nil?
self.order_type = "dine-in" if self.order_type.nil?
end
private
def validate_api_inputs
end
def set_order_date
self.date = Time.now.utc
end