class Oqs::HomeController < BaseOqsController def index queue_stations=OrderQueueStation.all @queue_items_details = queue_items_query(0) @queue_completed_item = queue_items_query(1) @queue_stations_items=Array.new # Calculate Count for each station tab queue_stations.each do |que| i=0 @queue_items_details.each do |qid| if qid.station_name == que.station_name i=i+1 end end @queue_stations_items.push({:station_name => que.station_name, :is_active => que.is_active ,:item_count => i }) end @queue_stations_items end # Get Order items def get_order_items items = [] table_name = params[:table_id] status = params[:status] dining = DiningFacility.find_by_name(table_name); # oqpz = OrderQueueProcessByZone.find_by_zone_id(dining.zone_id) # if status == "" # AssignedOrderItem.where("order_queue_station_id=#{ oqpz.order_queue_station_id } AND delivery_status=0").find_each do |aoi| # oi = OrderItem.find_by_item_code(aoi.item_code) # items.push(oi) # end # else # AssignedOrderItem.where("order_queue_station_id=#{ oqpz.order_queue_station_id } AND delivery_status=1").find_each do |aoi| # oi = OrderItem.find_by_item_code(aoi.item_code) # items.push(oi) # end # end booking = Booking.find_by_dining_facility_id(dining.id) BookingOrder.where("booking_id='#{ booking.booking_id }'").find_each do |bo| order=Order.find(bo.order_id) order.order_items.each do |oi| items.push(oi) end end # booking_id = dining.get_new_booking # BookingOrder.where("booking_id='#{ booking_id }'").find_each do |bo| # order=Order.find(bo.order_id); # order.order_items.each do |oi| # items.push(oi) # end # end render :json => items.to_json end def show end # update delivery status when complete click def update_delivery_status removed_item = [] assigned_item_id = params[:id] assigned_item=AssignedOrderItem.find(assigned_item_id) assigned_items=AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); # update delivery status for completed same order items assigned_items.each do |ai| ai.delivery_status=true ai.save removed_item.push(ai.assigned_order_item_id) end render :json => removed_item.to_json end # Query for OQS with status def queue_items_query(status) # AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.station_name, oqs.is_active, df.name as zone, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, cus.name as customer_name, odt.created_at") # .joins(" left join order_queue_process_by_zones as oqpz ON oqpz.order_queue_station_id = assigned_order_items.order_queue_station_id # left join dining_facilities as df on df.zone_id = oqpz.zone_id # left join order_queue_stations as oqs ON oqs.id = assigned_order_items.order_queue_station_id # left join orders as od ON od.order_id = assigned_order_items.order_id # left join order_items as odt ON odt.item_code = assigned_order_items.item_code # left join customers as cus ON cus.customer_id = od.customer_id") # .where("assigned_order_items.delivery_status = #{status}") # .group("assigned_order_items.assigned_order_item_id") # .order("odt.item_name DESC") AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.station_name, oqs.is_active, df.name as zone, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, cus.name as customer_name, odt.created_at") .joins(" left join order_queue_stations as oqs on oqs.id = assigned_order_items.order_queue_station_id left join orders as od ON od.order_id = assigned_order_items.order_id left join order_items as odt ON odt.item_code = assigned_order_items.item_code left join customers as cus ON cus.customer_id = od.customer_id left join booking_orders as bo on bo.order_id = assigned_order_items.order_id left join bookings as bk on bk.booking_id = bo.booking_id left join dining_facilities as df on df.id = bk.dining_facility_id") .where("assigned_order_items.delivery_status = #{status}") .group("assigned_order_items.assigned_order_item_id") end end