class Origami::CheckInProcessController < BaseOrigamiController

	def check_in_process
		lookup_checkout_time = Lookup.collection_of("checkout_time")
		today = Time.current
		checkout_at = Time.current

		if !lookup_checkout_time.empty?
			lookup_checkout_time.each do |checkout_time|
				arr_time = checkout_time[0].split("-")
				start_time = Time.zone.parse(arr_time[0].strip).strftime("%H:%M%p")
				end_time = Time.zone.parse(arr_time[1].strip).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.current, :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
