diff --git a/app/models/sale.rb b/app/models/sale.rb index 33ef6149..c5b5fa8b 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -98,6 +98,9 @@ class Sale < ApplicationRecord order.order_items.each do |item| add_item(item) + if item.set_menu_items != "[]" + add_sub_item(item.set_menu_items) + end end link_order_sale(order.id) @@ -144,7 +147,10 @@ class Sale < ApplicationRecord items.each do |item| add_item(item) - + if item.set_menu_items != "[]" + add_sub_item(item.set_menu_items) + end + #this will result in multiple orders belonging in multiple invoices - because of spilt invoices. link_order_sale(item.order_id, taxable) end @@ -181,6 +187,35 @@ class Sale < ApplicationRecord self.sale_items << sale_item end + def add_sub_item (item) + #check if the item is on promotion + JSON.parse(item).each do |item| + + #save sale item + sale_item = SaleItem.new + + #pull + instance = MenuItemInstance.find_by_item_instance_code(item["item_instance_code"]) + menu_item = instance.menu_item + + sale_item.product_code = menu_item.item_code + sale_item.item_instance_code = item["item_instance_code"] + sale_item.product_name = instance.item_instance_name + sale_item.product_alt_name = menu_item.alt_name + sale_item.account_id = menu_item.account_id + sale_item.remark = nil + + sale_item.qty = item["quantity"] + sale_item.unit_price = item["price"] + sale_item.taxable_price = sale_item.qty * sale_item.unit_price + sale_item.is_taxable = menu_item.taxable + + sale_item.price = sale_item.qty * sale_item.unit_price + + self.sale_items << sale_item + end + end + def create_saleitem_diningcharges(chargeObj, block_count, diningprice, dining_name, dining_time) sale_item = SaleItem.new sale_item.product_code = chargeObj.item_code