From 8897f1d0528b6cb4bf64fe3fa79f81bfb95f1d82 Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 11 Oct 2018 10:22:35 +0630 Subject: [PATCH] multiple zone with cashier terminal call waiter noti --- app/assets/javascripts/channels/call_waiter.js | 14 +++++++++----- app/controllers/api/call_waiters_controller.rb | 12 +++++++++++- app/controllers/origami/home_controller.rb | 5 +++-- app/controllers/origami/rooms_controller.rb | 5 +++-- app/views/layouts/origami.html.erb | 2 +- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/channels/call_waiter.js b/app/assets/javascripts/channels/call_waiter.js index ed1fa0d3..512b2602 100644 --- a/app/assets/javascripts/channels/call_waiter.js +++ b/app/assets/javascripts/channels/call_waiter.js @@ -10,14 +10,18 @@ App.call_waiter = App.cable.subscriptions.create('CallWaiterChannel', { var hostname = location.hostname.trim(); if(data.from == "" || hostname == data.from) { - table = data.table - time = data.time - + table = data.table; + time = data.time; // for Notificaiotn message - var element = "#notify-wrapper" + var class_name = ""; + if(data.shift_ids != "" && data.shift_ids!=null){ + if(data.shift_ids.length == 1){ + class_name = ".shift_" + data.shift_ids; + } + } + var element = "#notify-wrapper" + class_name; var animateEnter = ""; var animateExit = ""; - if (time == 'print_error') { var colorName = "alert-danger"; var placementFrom = "center"; diff --git a/app/controllers/api/call_waiters_controller.rb b/app/controllers/api/call_waiters_controller.rb index 9c6ad974..066fa30c 100644 --- a/app/controllers/api/call_waiters_controller.rb +++ b/app/controllers/api/call_waiters_controller.rb @@ -5,13 +5,23 @@ class Api::CallWaitersController < ActionController::API @table_id = params[:dining_id] @time = params[:time] @table = DiningFacility.find(@table_id) + shift_ids = [] + #for multiple zone with terminal + multiple_zone = CashierTerminalByZone.where("zone_id = #{@table.zone_id}") + multiple_zone.each do |zone| + shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{zone.cashier_terminal_id}").first + if !shift.nil? + shift_ids.push(shift.id) + end + end + # CallWaiterJob.perform_later(@table,@time) if ENV["SERVER_MODE"] == 'cloud' from = request.subdomain + "." + request.domain else from = "" end - ActionCable.server.broadcast "call_waiter_channel",table: @table,time:@time,from: from + ActionCable.server.broadcast "call_waiter_channel",table: @table,time:@time,from: from, shift_ids: shift_ids # get printer info @shop = Shop.first unique_code = "CallWaiterPdf" diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 44b3e1e3..8b767fa2 100755 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -11,8 +11,8 @@ class Origami::HomeController < BaseOrigamiController @customers = Customer.pluck("customer_id, name") @shop = shop_detail - @occupied_table = DiningFacility.where("status='occupied'").count; - # @shift = ShiftSale.current_open_shift(current_user.id) + @occupied_table = DiningFacility.where("status='occupied'").count + @shift = ShiftSale.current_open_shift(current_user.id) end # origami table detail @@ -24,6 +24,7 @@ class Origami::HomeController < BaseOrigamiController @complete = Sale.completed_sale("cashier") @orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc') @customers = Customer.pluck("customer_id, name") + @shift = ShiftSale.current_open_shift(current_user.id) @status_order = "" @status_sale = "" diff --git a/app/controllers/origami/rooms_controller.rb b/app/controllers/origami/rooms_controller.rb index abdd8842..80eb5641 100755 --- a/app/controllers/origami/rooms_controller.rb +++ b/app/controllers/origami/rooms_controller.rb @@ -4,7 +4,7 @@ class Origami::RoomsController < BaseOrigamiController @rooms = Room.unscoped.all.active.order('status desc') @complete = Sale.completed_sale("cashier") @orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc') - # @shift = ShiftSale.current_open_shift(current_user.id) + @shift = ShiftSale.current_open_shift(current_user.id) @webview = false if check_mobile @webview = true @@ -23,7 +23,8 @@ class Origami::RoomsController < BaseOrigamiController @orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc') @customers = Customer.pluck("customer_id, name") @room = DiningFacility.find(params[:room_id]) - + @shift = ShiftSale.current_open_shift(current_user.id) + @status_order = "" @status_sale = "" @sale_array = Array.new diff --git a/app/views/layouts/origami.html.erb b/app/views/layouts/origami.html.erb index 744ab87a..83081cbf 100755 --- a/app/views/layouts/origami.html.erb +++ b/app/views/layouts/origami.html.erb @@ -42,7 +42,7 @@ -
+