public function getExtraOptions() { $userData = UserDataService::getUserData(); $roomReserved = $userData->reservedItems[count($userData->reservedItems) - 1]; $roomReservedInfo = explode("|", $roomReserved); //dmp($userData); $extraOptions = ExtraOptionsService::getHotelExtraOptions($userData->hotelId, $userData->start_date, $userData->end_date, array(), $roomReservedInfo[1], $roomReservedInfo[0]); return $extraOptions; }
public function generateReservationSummary($reservationData, $checkAvailability = true) { //generate data for rooms $startDate = $reservationData->userData->start_date; $endDate = $reservationData->userData->end_date; $hotelId = $reservationData->userData->hotelId; $currency = $reservationData->userData->currency; $discountCode = $reservationData->userData->discount_code; $reservedItems = $reservationData->userData->reservedItems; $roomsPrices = array(); if (isset($reservationData->userData->room_prices)) { $roomsPrices = explode(",", $reservationData->userData->room_prices); } if (isset($reservationData->userData->roomCustomPrices)) { $roomsPrices = $reservationData->userData->roomCustomPrices; } //dmp($reservationData->userData->roomGuests); $selectedRooms = $this->getSelectedRooms($reservedItems, $roomsPrices, $hotelId, $startDate, $endDate, $reservationData->userData->roomGuests, $reservationData->userData->roomGuestsChildren, $discountCode, $checkAvailability, $reservationData->userData->confirmation_id); $roomsInfo = $this->getReservationDetailsRooms($reservationData->userData, $selectedRooms, $currency); BookingService::setRoomAvailability($selectedRooms, array(), $hotelId, $startDate, $endDate, $reservationData->userData->confirmation_id); $nrRooms = count($selectedRooms); $roomNotAvailable = array(); $showDiscounts = false; foreach ($selectedRooms as $room) { //dmp($room); if ($room->is_disabled) { $roomNotAvailable[] = $room; } //dmp($room->hasDiscounts); if ($room->hasDiscounts) { $showDiscounts = true; } } //exit; //generate extra options $extraOptionsInfo = null; $extraOptionIds = isset($reservationData->userData->extraOptionIds) ? $reservationData->userData->extraOptionIds : null; //dmp($extraOptionIds); $extraOptions = array(); if (is_array($extraOptionIds) && count($extraOptionIds) > 0) { foreach ($extraOptionIds as $key => $value) { if (strlen($value) > 1) { $extraOption = explode("|", $value); $extraOptions[$key] = $extraOption; } } } //micod //Mi código modificado para poder aceptar la cotización de niños en el pasaje aereo en Extras //------------------------------------------------------------------------------------------- //unset($_SESSION["ver"]); if (count($extraOptions, COUNT_RECURSIVE) == 17) { $_SESSION["extras"] = $extraOptions; //echo "<script> alert('TRUE'); </script>"; $verificar = true; } else { //echo "<script> alert('FALSE'); </script>"; $verificar = false; } //dmp($_SESSION["extras"]); //dmp($_SESSION["ver"]); $selectedExtraOptions = array(); if ($verificar == true) { if (isset($_SESSION["extras"]) && count($_SESSION["extras"]) > 0) { $selectedExtraOptions = ExtraOptionsService::getHotelExtraOptions($hotelId, $startDate, $endDate, $_SESSION["extras"], 0, 0); $extraOptionsInfo = $this->getReservationDetailsExtraOptions($selectedExtraOptions, $_SESSION["extras"], $nrRooms, $currency); /*if ($_SESSION["ver"] == false){ $_SESSION["ver"] = false; }else{ }*/ $_SESSION["ver"] = true; //echo "<script> alert('Entro en TRUE'); </script>"; } } if ($verificar == false) { if (isset($extraOptions) && count($extraOptions) > 0) { $selectedExtraOptions = ExtraOptionsService::getHotelExtraOptions($hotelId, $startDate, $endDate, $extraOptions, 0, 0); $extraOptionsInfo = $this->getReservationDetailsExtraOptions($selectedExtraOptions, $extraOptions, $nrRooms, $currency); //echo "<script> alert('Entro en FALSE'); </script>"; //$_SESSION["ver"] = false; if ($_SESSION["ver"] == true) { if (isset($_SESSION["extras"]) && count($_SESSION["extras"]) > 0) { $selectedExtraOptions = ExtraOptionsService::getHotelExtraOptions($hotelId, $startDate, $endDate, $_SESSION["extras"], 0, 0); $extraOptionsInfo = $this->getReservationDetailsExtraOptions($selectedExtraOptions, $_SESSION["extras"], $nrRooms, $currency); //echo "<script> alert('Entro en el que queríamos'); </script>"; //unset($_SESSION["ver"]); } } } } //------------------------------------------------------------------------------------------- //dmp($selectedExtraOptions); //generate course/excursions $excursionsInfo = null; $selectedExcursions = null; if ($reservationData->appSettings->enable_excursions && count($reservationData->userData->excursions) > 0) { $excursionData = $reservationData->userData->excursions; if (!is_array($reservationData->userData->excursions)) { $excursionData = explode(",", $reservationData->userData->excursions); } $selectedExcursions = ExcursionsService::getSelectedExcursions($excursionData, $reservedItems, $hotelId, $startDate, $endDate, $reservationData->userData->roomGuests, $reservationData->userData->roomGuestsChildren, $discountCode, $checkAvailability, $reservationData->userData->confirmation_id); $excursionsInfo = $this->getReservationDetailsExcursions($reservationData->userData, $selectedExcursions, $currency); } $costData = $this->getReservationCostData($selectedRooms); //LA CUOTA A PAGAR!!!!!!!! $guestDetails = array(); if (isset($reservationData->userData->guestDetails)) { $guestDetails = $reservationData->userData->guestDetails; } $taxes = TaxService::getTaxes($hotelId); $reservationDetails = $this->getReservationDetails($reservationData, $roomsInfo, $extraOptionsInfo, $excursionsInfo, $taxes, $guestDetails, $currency, $costData); $reservationDetails->rooms = $selectedRooms; $reservationDetails->roomsInfo = $roomsInfo; $reservationDetails->extraOptions = $selectedExtraOptions; $reservationDetails->extraOptionsInfo = $extraOptionsInfo; //dmp($extraOptions); $reservationDetails->roomNotAvailable = $roomNotAvailable; $reservationDetails->showDiscounts = $showDiscounts; $reservationDetails->costData = $costData; $reservationDetails->excursions = $selectedExcursions; $reservationDetails->excursionsInfo = $excursionsInfo; return $reservationDetails; }