class Origami::CheckInProcessController < BaseOrigamiController def check_in_process lookup_checkout_time = Lookup.collection_of("checkout_time") today = Time.now.utc.getlocal checkout_at = Time.now.utc.getlocal if !lookup_checkout_time.empty? lookup_checkout_time.each do |checkout_time| arr_time = checkout_time[0].split("-") start_time = Time.parse(arr_time[0].strip).utc.getlocal.strftime("%H:%M%p") end_time = Time.parse(arr_time[1].strip).utc.getlocal.strftime("%H:%M%p") if start_time <= checkout_at.strftime("%H:%M%p") && checkout_at.strftime("%H:%M%p") <= end_time checkout_at = checkout_at + (checkout_time[1]).to_i.minutes end end if checkout_at.strftime("%Y-%m-%d %H:%M%p") > today.strftime("%Y-%m-%d %H:%M%p") @dining_facility = DiningFacility.find(params[:dining_id]) # if @dining_facility.type == "Table" # type = "TableBooking" # else # type = "RoomBooking" # end @booking = Booking.create({:dining_facility_id => params[:dining_id],:type => "TableBooking", :checkin_by=>current_login_employee.name,:checkin_at => Time.now.utc,:checkout_at =>checkout_at, :booking_status => "assign", :reserved_at => checkout_at, :reserved_by => current_login_employee.name }) cashier_terminal = CashierTerminal.find_by_id(@dining_facility.zone_id) if @booking.save! @dining_facility.status = "occupied" @dining_facility.save! end if ENV["SERVER_MODE"] != "cloud" #no print in cloud server printer = PrintSetting.find_by_unique_code("CheckInOutPdf") unique_code = "CheckInOutPdf" booking = Booking.find_by_booking_id(@booking.booking_id) table = DiningFacility.find(params[:dining_id]) # print when complete click order_queue_printer = Printer::OrderQueuePrinter.new(printer) if !printer.nil? order_queue_printer.print_check_in_out(printer, cashier_terminal, booking, table) end end end end respond = {:status => 'ok'} respond_to do |format| format.json { render json: respond } end end end