if (@booking) json.success true json.booking_id @booking.booking_id json.status @booking.booking_status if Sale.exists?(@booking.sale_id) json.sale_status Sale.find(@booking.sale_id).sale_status else json.sale_status "" end json.checkin_at @booking.checkin_at.strftime("%d-%m-%Y") json.checkin_by @booking.checkin_by json.table_name @booking.dining_facility.name if @booking.type == "TableBooking" json.table_id @booking.dining_facility_id else json.room_id @booking.dining_facility_id end @total_amount = 0.00 @total_tax = 0.00 # For YGN BBQ adult_count = 0 child_count = 0 adult_spent = 0 child_spent = 0 # End YGN BBQ if @booking.booking_orders order_items = [] @booking.booking_orders.each do |bo| order = Order.find(bo.order_id) if (order.status == "new") order_items = order_items + order.order_items end end json.order_items order_items do |item| total_set_menu = 0 # For YGN BBQ if item.item_code.include? ("PSA_") adult_count += item.qty adult_spent += (item.price * item.qty) end if item.item_code.include? ("PSC_") child_count += item.qty child_spent += (item.price * item.qty) end # End YGN BBQ json.order_items_id item.order_items_id json.order_id item.order_id json.item_code item.item_code json.item_instance_code item.item_instance_code json.item_name item.item_name json.set_menu_items item.set_menu_items json.price item.price json.qty item.qty json.options item.options json.remark item.remark json.item_status item.order_item_status #start set menu item price if !item.set_menu_items.nil? && item.set_menu_items != '[]' JSON.parse(item.set_menu_items).each do |item_instance| total_set_menu += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f end end #end set menu item price @total_amount = @total_amount + (item.price * item.qty) + total_set_menu end end # For YGN BBQ # if adult_count > 0 # json.per_adult_spent adult_spent + ((adult_spent/adult_count) * 0.05) # else json.per_adult_spent 0 # end # if child_count > 0 # json.per_child_spent child_spent + ((child_spent/child_count) * 0.05) # else json.per_child_spent 0 # end # End YGN BBQ #total tax calculation @total_tax_amount = 0 @service_rate = 0 @commercial_rate = 0 @service_charges = 0.00 @commercial_tax = 0.00 @total_taxable = @total_amount if !@tax_profile.nil? @tax_profile.each do |tax| total_tax_amount = 0 if tax.inclusive total_tax_amount = (@total_taxable / ((100 + tax.rate)/ tax.rate)) else total_tax_amount = (@total_taxable * tax.rate / 100) end if @shop.calc_tax_order @total_taxable = @total_taxable + total_tax_amount end if tax.name.strip.downcase.include? ("service") @service_rate = tax.rate.to_i @service_charges = total_tax_amount else @commercial_rate = tax.rate.to_i @commercial_tax = total_tax_amount end end @total_tax_amount = @service_charges + @commercial_tax end #total tax calculation json.sub_total @total_amount if @service_rate.to_i > 0 json.service_rate @service_rate json.service_charges @service_charges end if @commercial_rate.to_i > 0 json.commercial_rate @commercial_rate json.commercial_tax @commercial_tax end json.total @total_amount + @total_tax_amount else json.success false end