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 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") end end