class Origami::QuickServiceController < ApplicationController # before_action :set_dining, only: [:detail] before_action :check_user def check_user if current_user.nil? redirect_to root_path end end def index today = DateTime.now day = Date.today.wday @menus = [] @menu = [] @zone = Zone.all @customer = Customer.all @tables = Table.active.order('status desc') @rooms = Room.active.order('status desc') @cashier_type = "quick_service" display_type = Lookup.find_by_lookup_type("display_type") if !display_type.nil? && display_type.value.to_i == 2 @display_type = display_type.value else @display_type = nil end #checked quick_service only @quick_service_only = Lookup.collection_of('quickservice_add_order').any? { |x| x == ["quickserviceaddorder", "1"] } lookup_dine_in = Lookup.collection_of('quickservice_add_order') # puts 'lookup_dine_in!!!!' # puts lookup_dine_in if !lookup_dine_in.empty? lookup_dine_in.each do |dine_in| if dine_in[0].downcase == "quickserviceaddorder" if dine_in[1] == '1' @quick_service_only = true end end end end @inclusive_tax,@exclusive_tax =TaxProfile.calculate_tax("quick_service") render "origami/addorders/detail" end def modify_order @cashier_type = "quick_service" today = DateTime.now day = Date.today.wday # if params[:menu] == "true" @menus = [] @menu = [] # else # @menus = Menu.all # @menu = MenuCategory.active.where("menu_id =#{@menus[0].id}").order('order_by asc') # end if params[:id].include? "BKI" @table_id = nil @table = nil @booking = Booking.find(params[:id]) else @table_id = params[:id] @table = DiningFacility.find(@table_id) @booking = @table.get_booking end @sale_id = @booking.sale_id if @booking @booking_id = @booking.booking_id @obj_order = @booking.orders.first @customer = @obj_order.customer @date = @obj_order.created_at @order_items = @booking.order_items end render "origami/addorders/detail" end def update_modify_order booking = Booking.find(params[:booking_id]) sale = booking.sale if sale && sale.sale_status != 'new' render :json => { :status => false } end is_extra_time = false extra_time = '' cashier_type = "quick_service" items_arr = [] JSON.parse(params[:order_items]).each { |i| i["item_instance_code"] = i["item_instance_code"].downcase.to_s if i["item_instance_code"].include? "ext" is_extra_time = true arr_exts = i["item_instance_code"].split("_") if arr_exts[1].match(/^(\d)+$/) time = arr_exts[1].to_i*60*i["quantity"].to_i extra_time = Time.at(time) end end if i["parent_order_item_id"] items = {"order_item_id": i["order_item_id"],"item_instance_code": i["item_instance_code"],"quantity": i["quantity"],"parent_order_item_id": i["parent_order_item_id"],"options": i["options"]} else items = {"order_item_id": i["order_item_id"],"item_instance_code": i["item_instance_code"],"quantity": i["quantity"],"options": i["options"]} end items_arr.push(items) } # begin order = Order.new order.source = params[:order_source] order.order_type = params[:order_type] order.customer_id = params[:customer_id].present? ? params[:customer_id] : walkin.customer_id # for no customer id from mobile order.items = items_arr order.guest = params[:guest_info] order.table_id = params[:table_id] # this is dining facilities's id order.waiters = current_login_employee.name order.employee_name = current_login_employee.name order.is_extra_time = is_extra_time order.extra_time = extra_time order.new_booking = false order.booking_id = booking.booking_id if order.generate if sale Sale.add_to_existing_pending_invoice(nil, sale.sale_id, booking) render :json => { :status => true, :data => sale } else render :json => { :status => true, :data => 'OK' } end else render :json => { :status => false } end end def get_menu_category () if (params[:id]) #Pull this menu @menu = MenuCategory.find_by_id(params[:id]) return @menu else MenuCategory.current_menu end end def get_menu_sub_category () id = params[:id] if (id) #Pull this menu @sub_menu = MenuCategory.where("menu_category_id = #{id}").active return @sub_menu end end def get_all_product() @product = Product.all end # render json for http status code def return_json_status_with_code(code, msg) render status: code, json: { message: msg, booking_id: booking_id }.to_json end def check_order_with_table(table_id) table = DiningFacility.find(table_id) if table booking = table.get_current_booking if booking if !booking.sale_id.nil? if booking.sale.sale_status == "completed" || booking.sale.sale_status == "new" @order.new_booking = true return false end else @order.new_booking = false @order.booking_id = booking.booking_id return false end end end end def check_user if current_user.nil? redirect_to root_path end end # this can always true def check_order_with_booking(booking) if booking.sale.sale_status == "completed" || booking.sale.sale_status == "new" @order.new_booking = true return false else @order.new_booking = false @order.booking_id = params[:booking_id] return false end end end