/** * Redirect a room availability page according to customer requests. * * @param $request * * @return Website.Rooms_availability view with availability details */ function checkRoomAvailability(Request $request) { //predefined variables for the room reservation form $total_rooms_have = config('constants.CHK_ZERO'); $total_rooms = HotelInfo::value('selectable_no_of_rooms'); $kids_can = HotelInfo::value('no_of_kids'); $adults_can = HotelInfo::value('no_of_adults'); $room_types = ROOM_TYPE::get(); foreach ($room_types as $room_type) { $total_rooms_have += DB::table('ROOMS')->where('room_type_id', '=', $room_type->room_type_id)->count(); } //check if the room count exceed the available rooms if ($total_rooms > $total_rooms_have) { $total_rooms = $total_rooms_have; } //clears the hall reservation session details if there are any Session::forget(['hall_selected', 'event_date', 'total_payable']); //get the details from the form submission and store in variables $inputs = $request::all(); $check_in = $inputs['check_in']; $check_out = $inputs['check_out']; $adults = $inputs['adults']; $kids = $inputs['children']; //requested number of rooms $rooms = $inputs['ono_of_rooms']; //put the requested reservation details to the session Session::put(['check_in' => $check_in, 'check_out' => $check_out, 'adults' => $adults, 'kids' => $kids, 'rooms' => $rooms]); //clear the session if values already exists if (Session::has('room_types')) { $room_types = session('room_types'); foreach ($room_types as $room_type) { Session::forget(['room_type_name' . $room_type, 'no_of_rooms' . $room_type, 'rate' . $room_type]); Session::forget(['meal_type' . $room_type, 'rate_code' . $room_type, 'total_payable']); } Session::forget('room_types'); } $room_types = ROOM_TYPE::get(); $room_results = $this->getAvailableRoomTypeCount($check_in, $check_out, "NEW", null); $total_rooms_available = $room_results['total_rooms_available']; $room_type_available = $room_results['room_type_available']; foreach ($room_types as $room_type) { $total_rooms += $room_type->count; } //check the total rooms available with the requested total rooms if ($total_rooms_available < $rooms) { if ($total_rooms_available < config('constants.CHK_ZERO')) { $total_rooms_available = config('constants.CHK_ZERO'); } return redirect('room_packages')->with(['rooms_not_available' => 'Sorry requested no of rooms are not available.Only ' . $total_rooms_available . ' room(s) are available']); } else { return view('Website.Rooms_availability', ['room_type_available' => $room_type_available, "room_types" => $room_types, 'total_rooms' => $total_rooms, 'kids_can' => $kids_can, 'adults_can' => $adults_can]); } }
/** * This function provides the view of the rooms page with details * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function roomsView() { //this calls the clear session function in order to clear the session $this->clearSession(); $room_types = ROOM_TYPE::get(); $total_rooms_have = config('constants.CHK_ZERO'); $total_rooms = HotelInfo::value('selectable_no_of_rooms'); $kids_can = HotelInfo::value('no_of_kids'); $adults_can = HotelInfo::value('no_of_adults'); foreach ($room_types as $room_type) { $total_rooms_have += DB::table('ROOMS')->where('room_type_id', '=', $room_type->room_type_id)->count(); } //check if the room count exceed the available rooms if ($total_rooms > $total_rooms_have) { $total_rooms = $total_rooms_have; } return view('Website.Room_Packages', ["room_types" => $room_types, 'total_rooms' => $total_rooms, 'kids_can' => $kids_can, 'adults_can' => $adults_can]); }
public function updateReservationInfo(Request $request) { $inputs = $request->all(); $field = $inputs['field']; $value = $inputs['value']; if ($field == 'chk_in') { HotelInfo::where('id', '=', 1)->update(['check_in' => $value]); return response()->json(["result" => "success"]); } elseif ($field == 'chk_out') { HotelInfo::where('id', '=', 1)->update(['check_out' => $value]); return response()->json(["result" => "success"]); } elseif ($field == 'adults') { HotelInfo::where('id', '=', 1)->update(['no_of_adults' => $value]); return response()->json(["result" => "success"]); } elseif ($field == 'kids') { HotelInfo::where('id', '=', 1)->update(['no_of_kids' => $value]); return response()->json(["result" => "success"]); } elseif ($field == 'rooms') { HotelInfo::where('id', '=', 1)->update(['selectable_no_of_rooms' => $value]); return response()->json(["result" => "success"]); } elseif ($field == 'hall_time1') { $value_b = $inputs['value_b']; HotelInfo::where('id', '=', 1)->update(['hall_time_slot_1_from' => $value, 'hall_time_slot_1_to' => $value_b]); return response()->json(["result" => "success"]); } elseif ($field == 'hall_time2') { $value_b = $inputs['value_b']; HotelInfo::where('id', '=', 1)->update(['hall_time_slot_2_from' => $value, 'hall_time_slot_2_to' => $value_b]); return response()->json(["result" => "success"]); } }