51 lines
2.0 KiB
Ruby
51 lines
2.0 KiB
Ruby
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
|
|
assigned_item_id = params[:id]
|
|
assigned_item=AssignedOrderItem.find(assigned_item_id)
|
|
assigned_item.delivery_status=true
|
|
assigned_item.save
|
|
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("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.order_queue_stations_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
|
|
|