From 069ad167332add09bc2d7266e9605385883186cf Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 14 Aug 2017 13:42:47 +0630 Subject: [PATCH] update oqs filtring --- app/assets/javascripts/OQS.js | 8 ++-- app/controllers/oqs/home_controller.rb | 49 +++++++++++++++++++----- app/views/oqs/home/index.html.erb | 52 ++++++++++++++++++++------ 3 files changed, 84 insertions(+), 25 deletions(-) diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 801fd214..5ed26997 100644 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -31,8 +31,9 @@ $(document).ready(function(){ $(".oqs_click").on("click", function(){ $("#completed").addClass('hide') $(".oqs_append").removeClass('hide') + var oqs_id = $(this).find(".oqs-id").text(); - var url = 'oqs/get_items/'+oqs_id; + var url = 'oqs/get_items/'+oqs_id; show_details(url); }); //End Click @@ -40,15 +41,14 @@ $(document).ready(function(){ function show_details(url){ var oqs_append = $('.oqs_append'); oqs_append.empty(); - + var filter = $('.filter').text(); //Start Ajax $.ajax({ type: "GET", url: url, - data: {}, + data: {'filter':filter}, dataType: "json", success: function(data) { - for(var field in data) { var price = parseFloat(data[field].price).toFixed(2); diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb index dfe648d0..dae8b02f 100644 --- a/app/controllers/oqs/home_controller.rb +++ b/app/controllers/oqs/home_controller.rb @@ -7,7 +7,17 @@ class Oqs::HomeController < BaseOqsController # @queue_items_details = queue_items_query(false) # Query for OQS with delivery status true - @queue_completed_item = completed_order + + + @filter = params[:filter] + + @queue_completed_item = completed_order(@filter) + if !@filter.nil? + @count = queue_items_count_query(false,@filter) + @count.each do |count| + + end + end # @queue_stations_items=Array.new @@ -71,7 +81,8 @@ class Oqs::HomeController < BaseOqsController def get_items_by_oqs oqs_id = params[:id] - items = queue_items_query(false,oqs_id) + filter = params[:filter] + items = queue_items_query(false,oqs_id,filter) render :json => items.to_json end @@ -96,13 +107,14 @@ class Oqs::HomeController < BaseOqsController # Query for OQS with delivery status - def queue_items_query(status,oqs_id=nil) + def queue_items_query(status,oqs_id=nil,filter) if oqs_id == nil oqs = '' else oqs = "and assigned_order_items.order_queue_station_id = '#{oqs_id}' " end - AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, + + query = AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.id as station_id, oqs.station_name, oqs.is_active, oqpz.zone_id, df.name as zone, df.type as table_type, @@ -117,14 +129,15 @@ class Oqs::HomeController < BaseOqsController 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} AND odt.price <> 0 AND assigned_order_items.created_at >= '#{Time.now.beginning_of_day.utc}' #{oqs}") + .where("assigned_order_items.delivery_status = #{status} AND odt.price <> 0 AND assigned_order_items.created_at >= '#{Time.now.beginning_of_day.utc}' #{oqs} ") + query = query.where("df.name LIKE ? OR odt.order_id LIKE ? OR odt.item_name LIKE ? OR cus.name = '#{filter}'","%#{filter}%","%#{filter}%","%#{filter}%",) .group("assigned_order_items.assigned_order_item_id") end # Completed Order - def completed_order - AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.id as station_id, oqs.station_name, oqs.is_active, oqpz.zone_id, df.name as zone, df.type, odt.order_id, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, odt.options, cus.name as customer_name, odt.created_at") + def completed_order(filter) + query = AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.id as station_id, oqs.station_name, oqs.is_active, oqpz.zone_id, df.name as zone, df.type, odt.order_id, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, odt.options, 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 order_queue_process_by_zones as oqpz on oqpz.order_queue_station_id = oqs.id left join orders as od ON od.order_id = assigned_order_items.order_id @@ -134,12 +147,28 @@ class Oqs::HomeController < BaseOqsController 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 = true AND odt.price <> 0 AND assigned_order_items.created_at between '#{Time.now.beginning_of_day.utc}' and '#{Time.now.end_of_day.utc}'") - .group("assigned_order_items.order_id") - .limit(20) - .order("assigned_order_items.created_at") + query = query.where("df.name LIKE ? OR odt.order_id LIKE ? OR odt.item_name LIKE ? OR cus.name = '#{filter}'","%#{filter}%","%#{filter}%","%#{filter}%",) + .group("assigned_order_items.order_id") + .limit(20) + .order("assigned_order_items.created_at") # completed_order = AssignedOrderItem.group(:order_id).where('delivery_status=true'); end + def queue_items_count_query(status,filter) + query = AssignedOrderItem.select("count(odt.item_code) as total,oqs.id as station_id") + .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 AND odt.order_id = assigned_order_items.order_id + 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} AND odt.price <> 0 AND assigned_order_items.created_at >= '#{Time.now.beginning_of_day.utc}' ") + query = query.where("df.name LIKE ? OR odt.order_id LIKE ? OR odt.item_name LIKE ? OR cus.name = '#{filter}'","%#{filter}%","%#{filter}%","%#{filter}%",) + .group("oqs.id") + + end + end diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb index 3ab1cf24..81e14467 100644 --- a/app/views/oqs/home/index.html.erb +++ b/app/views/oqs/home/index.html.erb @@ -1,10 +1,26 @@
- +
+ <%= form_tag oqs_root_path, :method => :get do %> +
+ +
+ +
+ +
+<% end %> +
+
+ +
+ \ No newline at end of file