34 lines
1.2 KiB
Ruby
34 lines
1.2 KiB
Ruby
class Api::CallWaitersController < ActionController::API
|
|
|
|
#List all active customers by name
|
|
def index
|
|
@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, shift_ids: shift_ids
|
|
# get printer info
|
|
unique_code = "CallWaiterPdf"
|
|
print_settings = PrintSetting.find_by_unique_code(unique_code)
|
|
printer = Printer::ReceiptPrinter.new(print_settings)
|
|
printer.print_call_waiter(print_settings,@table,@time,current_shop)
|
|
end
|
|
|
|
|
|
end
|