Files
sx-fc/app/models/order_item.rb
2017-06-01 09:27:37 +06:30

43 lines
1.4 KiB
Ruby

class OrderItem < ApplicationRecord
#Associations
belongs_to :order, autosave: true
#Validation
validates_presence_of :item_code, :item_name, :qty
validates :qty, numericality: { :greater_than => 0 }
validates_associated :order
#This Method - handle how items is added into order
# order_item : {
# order_item_code : "",
# item_instance_code : "",
# quantity : 0,
# option_values : [],
# sub_order_items : [],
# }
def self.processs_item (item_code, menu_name, qty,price, options, set_menu_items, order_id, item_order_by)
orderitem = OrderItem.create do |oitem|
oitem.order_id = order_id
oitem.item_code = item_code
oitem.item_name = menu_name
oitem.qty = qty
oitem.price = price
oitem.options = options
oitem.set_menu_items = set_menu_items
oitem.item_order_by = item_order_by #person who order this. * If emenu - it will be login user on the app
end
#logger.debug orderitem.to_yml
orderitem.save!
end
#Origami : Cashier : to show order items details
def self.get_order_items_details(order_id)
order_details = OrderItem.select("order_items.item_name,order_items.qty,order_items.price,(order_items.qty*order_items.price) as total_price")
.joins("left join orders on orders.id = order_items.order_id")
.where("order_items.order_id=?",order_id)
end
end