139 lines
5.1 KiB
Ruby
Executable File
139 lines
5.1 KiB
Ruby
Executable File
class Origami::MovetableController < BaseOrigamiController
|
|
|
|
authorize_resource :class => false
|
|
|
|
def move_dining
|
|
@webview = check_mobile
|
|
|
|
@tables = Table.all.active.order('status desc')
|
|
@rooms = Room.all.active.order('status desc')
|
|
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
|
|
@orders = Order.where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
|
|
@dining = DiningFacility.find(params[:dining_id])
|
|
|
|
@status_order = ""
|
|
@status_sale = ""
|
|
@sale_array = Array.new
|
|
|
|
@dining_booking = @dining.bookings.active.where("DATE_FORMAT(created_at,'%Y-%m-%d') = '#{DateTime.now.strftime('%Y-%m-%d')}' OR DATE_FORMAT(created_at,'%Y-%m-%d') = '#{Date.today.prev_day}' ")
|
|
|
|
@dining_booking.each do |booking|
|
|
if booking.sale_id.nil?
|
|
@order_items = Array.new
|
|
if booking.booking_status != 'moved'
|
|
booking.booking_orders.each do |booking_order|
|
|
order = Order.find(booking_order.order_id)
|
|
@obj_order = order
|
|
@customer = order.customer
|
|
@date = order.created_at
|
|
@booking= booking
|
|
if order.status == 'new'
|
|
order.order_items.each do |item|
|
|
@order_items.push(item)
|
|
end
|
|
end
|
|
|
|
accounts = @customer.tax_profiles
|
|
@account_arr =[]
|
|
accounts.each do |acc|
|
|
account = TaxProfile.find_by_id(acc)
|
|
if !account.nil?
|
|
@account_arr.push(account)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
@status_order = 'order'
|
|
# else
|
|
# sale = Sale.find(booking.sale_id)
|
|
# if sale.sale_status != "completed" && sale.sale_status != "waste" && sale.sale_status != "spoile"
|
|
# @sale_array.push(sale)
|
|
# if @status_order == 'order'
|
|
# @status_order = 'sale'
|
|
# end
|
|
# @booking= booking
|
|
# @date = sale.created_at
|
|
# @status_sale = 'sale'
|
|
# @obj_sale = sale
|
|
# @customer = sale.customer
|
|
# accounts = @customer.tax_profiles
|
|
# @account_arr =[]
|
|
# accounts.each do |acc|
|
|
# account = TaxProfile.find_by_id(acc)
|
|
# @account_arr.push(account)
|
|
# end
|
|
# end
|
|
end
|
|
end
|
|
end
|
|
|
|
def moving
|
|
change_to = params[:change_to] #new
|
|
change_from = params[:change_from] #original
|
|
|
|
# bookings = Booking.where('dining_facility_id=?',change_from)
|
|
|
|
bookings = Booking.where("((DATE_FORMAT(created_at,'%Y-%m-%d') = '#{DateTime.now.strftime('%Y-%m-%d')}' OR DATE_FORMAT(created_at,'%Y-%m-%d') = '#{Date.today.prev_day}')) AND dining_facility_id='#{change_from}'")
|
|
|
|
booking_array = Array.new
|
|
order_items = Array.new
|
|
if !bookings.nil?
|
|
bookings.each do | booking |
|
|
if booking.sale_id.nil? && booking.booking_status != 'moved'
|
|
booking_array.push(booking)
|
|
end
|
|
|
|
booking.booking_orders.each do |booking_order|
|
|
order = Order.find(booking_order.order_id)
|
|
if order.status == 'new'
|
|
oqs = OrderQueueStation.new
|
|
oqs.process_order(order, change_from, order.source, 'move',change_to,current_user.name)
|
|
# order.order_items.each do |order_item|
|
|
# order_items.push(order_item)
|
|
# end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
@get_type = Booking.update_dining_facility(booking_array,change_to,change_from)
|
|
|
|
# if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
|
|
# # get printer info
|
|
# @from = (DiningFacility.find(change_from)).name
|
|
# @to = (DiningFacility.find(change_to)).name
|
|
# @type = (DiningFacility.find(change_to)).type
|
|
# @moved_by = @current_user.name
|
|
# @date = DateTime.now
|
|
# @shop = Shop.first
|
|
# unique_code = "MoveTablePdf"
|
|
# pdf_no = PrintSetting.where(:unique_code => unique_code).count
|
|
# #print_settings = PrintSetting.find_by_unique_code(unique_code)
|
|
# printer_array = []
|
|
# printer_array = PrintSetting.where(:unique_code => unique_code)
|
|
|
|
# for i in 0..pdf_no
|
|
# if i != pdf_no
|
|
# print_settings = printer_array[i]
|
|
# printer = Printer::ReceiptPrinter.new(print_settings)
|
|
# printer.print_move_table(print_settings,@to,@from ,@shop,@date,@type,@moved_by,order_items)
|
|
# end
|
|
# end
|
|
# end
|
|
|
|
type = 'move'
|
|
from = getCloudDomain #get sub domain in cloud mode
|
|
ActionCable.server.broadcast "order_channel",table: change_from,type:type,from:from ,change_to:change_to
|
|
end
|
|
|
|
#get cloud domain
|
|
def getCloudDomain
|
|
from = ""
|
|
if ENV["SERVER_MODE"] == 'cloud'
|
|
from = request.subdomain + "." + request.domain
|
|
end
|
|
|
|
return from
|
|
end
|
|
end
|