function generateCalendarData($year = 0, $month = 0) { $session = JFactory::getSession(); $userData = $_SESSION['userData']; $post = JRequest::get('post'); $get = JRequest::get('get'); if (!count($post)) { $post = $get; } if (!isset($post["hotel_id"])) { $post["hotel_id"] = JRequest::getInt('hotel_id'); } $year_start = $userData->year_start; $month_start = $userData->month_start; $day_start = 1; $year_end = $userData->year_end; $month_end = $userData->month_start; $day_end = date('t', mktime(0, 0, 0, $userData->month_start, 1, $userData->year_start)); $hotelId = $post["hotel_id"]; $currentRoom = $post["current_room"]; //dmp($currentRoom); $adults = $userData->adults; $children = $userData->children; //dmp($userData); if (isset($userData->roomGuests)) { $adults = $userData->roomGuests[$currentRoom - 1]; } $post["guest_adult"] = $adults; $post["guest_child"] = $userData->children; $post["rooms"] = $userData->rooms; if ($year != 0) { $post["year_start"] = $year; $post["year_end"] = $year; $year_start = $year; $year_end = $year; } if ($month != 0) { $post["month_start"] = $month; $post["month_end"] = $month; $month_start = $month; $month_end = $month; } $number_persons = $post["guest_adult"]; //dmp($post); $datasi = date("Y-m-d", mktime(0, 0, 0, $userData->month_start, $userData->day_start, $userData->year_start)); $dataei = date("Y-m-d", mktime(0, 0, 0, $userData->month_end, $userData->day_end, $userData->year_end)); $diff = abs(strtotime($dataei) - strtotime($datasi)); $years = floor($diff / (365 * 60 * 60 * 24)); $months = floor(($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24)); $initialNrDays = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24)); //dmp($initialNrDays); $datas = date("Y-m-d", mktime(0, 0, 0, $month_start, $day_start, $year_start)); $datae = date("Y-m-d", mktime(0, 0, 0, $month_end, $day_end + 7, $year_end)); //echo $adults." "; //dmp($adults); /* dmp($year_start); dmp($month_start); dmp($datas); dmp($datae); */ //exit; $offers = HotelService::getHotelOffers($hotelId, $datas, $datae, array(), $adults, $children); $rooms = HotelService::getHotelRooms($hotelId, $datas, $datae, array(), $adults, $children); $bookingsDays = BookingService::getNumberOfBookingsPerDay($hotelId, $datas, $datae); $hoteAvailability = HotelService::getHotelAvailabilyPerDay($hotelId, $datas, $datae); $temporaryReservedRooms = BookingService::getReservedRooms($userData->reservedItems); $temporaryReservedRooms["datas"] = $datasi; $temporaryReservedRooms["datae"] = $dataei; //dmp($temporaryReservedRooms); $roomsCalendar = HotelService::getRoomsCalendar($rooms, $initialNrDays, $adults, $children, $month_start, $year_start, $bookingsDays, $temporaryReservedRooms, $hoteAvailability); $offersCalendar = HotelService::getOffersCalendar($offers, $initialNrDays, $adults, $children, $month_start, $year_start, $bookingsDays, $temporaryReservedRooms, $hoteAvailability); //dmp($roomsCalendar); //dmp($offersCalendar); //combining the calendars $calendar = array_combine(array_merge(array_keys($roomsCalendar), array_keys($offersCalendar)), array_merge(array_values($roomsCalendar), array_values($offersCalendar))); //dmp($calendar); return $calendar; }
public static function checkRoomListingAvailability(&$rooms, $items_reserved, $datas, $datae, $confirmationId = null) { //number of reserved rooms for each room type $temporaryReservedRooms = BookingService::getReservedRooms($items_reserved); //dmp("T"); //dmp($temporaryReservedRooms); $ingoreNrRooms = !empty($confirmationId) ? 1 : 0; if (isset($rooms) && count($rooms) > 0) { foreach ($rooms as $room) { $rooms_reserved = BookingService::getNumberOfBookingsPerDay($room->hotel_id, $datas, $datae, $confirmationId); //dmp($rooms); // dmp("NR: ".$room->room_id." ".$room->nrRoomsAvailable); //dmp($room->daily); foreach ($room->daily as $day) { $totalNumberRoomsReserved = 0; //dmp($day["data"]); if (isset($rooms_reserved[$room->room_id][$day["date"]])) { $totalNumberRoomsReserved = $rooms_reserved[$room->room_id][$day["date"]]; } if (isset($temporaryReservedRooms[$room->room_id])) { $totalNumberRoomsReserved += $temporaryReservedRooms[$room->room_id]; } //dmp($totalNumberRoomsReserved); //dmp($day["nrRoomsAvailable"]); if ($day["nrRoomsAvailable"] <= $totalNumberRoomsReserved - $ingoreNrRooms) { $room->is_disabled = true; //dmp("disable"); } } } } }
public static function checkExcursionAvailability($excursions, $items_reserved, $hotel_id, $datas, $datae, $confirmationId = null) { //number of reserved rooms for each room type $excursions_reserved = BookingService::getExcursionBookingsPerDay($hotel_id, $datas, $datae, $confirmationId); $temporaryReservedExcursions = BookingService::getReservedRooms($items_reserved); //dmp("T"); //dmp($temporaryReservedExcursions); //dmp($confirmationId); $ingoreNrExcursions = !empty($confirmationId) ? 1 : 0; if (isset($excursions) && count($excursions) > 0) { foreach ($excursions as $excursion) { // dmp("NR: ".$room->room_id." ".$room->nrRoomsAvailable); //dmp($room->daily); foreach ($excursion->daily as $day) { $totalNumberExcursionsReserved = 0; //dmp($day["data"]); if (isset($excursions_reserved[$excursion->excursion_id][$day["date"]])) { $totalNumberExcursionsReserved = $excursions_reserved[$excursion->excursion_id][$day["date"]]; } if (isset($temporaryReservedExcursions[$excursion->excursion_id])) { $totalNumberExcursionsReserved += $temporaryReservedExcursions[$excursion->excursion_id]; } if ($day["nrExcursionsAvailable"] <= $totalNumberExcursionsReserved - $ingoreNrExcursions) { $excursion->is_disabled = true; } else { $excursion->capacity = $day["nrExcursionsAvailable"] - ($totalNumberExcursionsReserved - $ingoreNrExcursions); } } } } return $excursions; //exit; }