Exemplo n.º 1
0
 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;
 }