Files
sx-fc/app/controllers/origami/movetable_controller.rb
Thein Lin Kyaw 5d9281e196 fix timezone
2023-02-10 14:50:30 +06:30

139 lines
5.4 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(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = ? and sale_status != 'new'",Time.current.strftime('%Y-%m-%d'))
@orders = Order.where("DATE_FORMAT(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = ? and status != 'billed'",Time.current.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(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = '#{Time.current.strftime('%Y-%m-%d')}' OR DATE_FORMAT(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = '#{Date.current.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(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = '#{Time.current.strftime('%Y-%m-%d')}' OR DATE_FORMAT(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = '#{Date.current.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 = Time.current
# @shop = @shop
# 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