/** * * get rooms * * @access public * @param * @return */ public function __getRooms() { parent::load_model("OWS_rooms"); $this->roomList = array(); $result = $this->CI->ows_information->QueryHotelInformation(); $roomList = $result["HotelInformation"]["HotelExtendedInformation"]["FacilityInfo"]["GuestRooms"]["GuestRoom"]; foreach ($roomList as $room) { $roomObject = new OWS_rooms($room["RoomDescription"]["Text"]["TextElement"]["!"], $room["!code"], $room["!maxOccupancy"]); $this->roomList[] = $roomObject; } return $this->roomList; }
/** * * detail availabilty * * @access protected * @param * @return */ public function detail_availability($StartDate, $EndDate, $totalNumberOfGuests, $numberOfChildren, $numberOfRooms, $roomTypeCode = "ALL", $ratePlanCode = "", $availReqType = "Room", $invBlockCode = "", $promotionCode = '') { parent::load_model("OWS_rooms"); parent::load_model("OWS_rates"); $this->roomList = array(); $roomOccupancy = $totalNumberOfGuests + $numberOfChildren; $data = array(); $data["summaryOnly"] = "false"; $data["availReqType"] = $availReqType; $data["roomTypeCode"] = $roomTypeCode; $data["ratePlanCode"] = $ratePlanCode; $data["StartDate"] = $StartDate; $data["EndDate"] = $EndDate; $data["numberOfRooms"] = $numberOfRooms; //$data["roomOccupancy"] = $totalNumberOfGuests; $data["totalNumberOfGuests"] = $totalNumberOfGuests; $data["numberOfChildren"] = $numberOfChildren; $data["promotionCode"] = $promotionCode; $data["invBlockCode"] = $invBlockCode; $data["qualifyingIdValue"] = ""; $data["qualifyingIdType"] = ""; $resultArray = $this->CI->ows_availability->Availability($data); if ($resultArray["success"]) { try { $result = $resultArray["response"]; if ($data["roomTypeCode"] == "ALL") { $rooms = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RoomTypes"]["RoomType"]; } else { $rooms = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RoomTypes"]; } $rooms_rates = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RoomRates"]["RoomRate"]; $rooms_ratePlans = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RatePlans"]["RatePlan"]; //check if requested for a group code if (empty($invBlockCode)) { $single_plan = FALSE; $ratePlans = array(); foreach ($rooms_ratePlans as $room_ratePlan) { if (!is_array($room_ratePlan) || !array_key_exists("!ratePlanCode", $room_ratePlan)) { $single_plan = TRUE; break; } $ratePlans[$room_ratePlan["!ratePlanCode"]] = $room_ratePlan; } if ($single_plan) { $rooms_ratePlans = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RatePlans"]; foreach ($rooms_ratePlans as $room_ratePlan) { if (!is_array($room_ratePlan) || !array_key_exists("!ratePlanCode", $room_ratePlan)) { $single_plan = TRUE; break; } $ratePlans[$room_ratePlan["!ratePlanCode"]] = $room_ratePlan; } } $single_rate = FALSE; $rates = array(); foreach ($rooms_rates as $room_rate) { if (!is_array($room_rate) || !array_key_exists("!ratePlanCode", $room_rate)) { $single_rate = TRUE; break; } $ratePlanObject = new OWS_rates($room_rate["!ratePlanCode"], "", "CancellationDateTime", $ratePlans[$room_rate["!ratePlanCode"]]["RatePlanDescription"]["Text"], $room_rate["Total"]["!"], $room_rate["Total"]["!currencyCode"]); $rates[$room_rate["!roomTypeCode"]][] = $ratePlanObject; } if ($single_rate) { $rooms_rates = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RoomRates"]; foreach ($rooms_rates as $room_rate) { $cancellation = $ratePlans[$room_rate["!ratePlanCode"]]["AdditionalDetails"]["AdditionalDetail"][1]["AdditionalDetailDescription"]["Text"]; /* $cancellation = $this->CI->ny_core->__get_config("reservation/cancellation/default"); $non_rd = str_replace(" ", "", $this->CI->ny_core->__get_config("reservations/rates/nonrefundable")); $non_rd_array = explode(',', $non_rd); if(is_array($non_rd_array) && sizeof($non_rd_array) > 0) { foreach($non_rd_array as $non_rd_single) { if($room_rate["!ratePlanCode"] == $non_rd_single) { $cancellation = "Non Refundable Rate"; break; } } } else { if($room_rate["!ratePlanCode"] == $non_rd) { $cancellation = "<b>Non Refundable Rate</b>"; break; } } */ $ratePlanObject = new OWS_rates($room_rate["!ratePlanCode"], "", $cancellation, $ratePlans[$room_rate["!ratePlanCode"]]["RatePlanDescription"]["Text"], $room_rate["Total"]["!"], $room_rate["Total"]["!currencyCode"]); $rates[$room_rate["!roomTypeCode"]][] = $ratePlanObject; } } } else { $rooms_rates = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RoomRates"]["RoomRate"]; $rooms_ratePlans = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RatePlans"]; $ratePlans = array(); foreach ($rooms_ratePlans as $room_ratePlan) { $ratePlans[$invBlockCode] = $room_ratePlan; } $rates = array(); $single_rate = FALSE; foreach ($rooms_rates as $room_rate) { if (!is_array($room_rate) || !array_key_exists("!suppressRate", $room_rate)) { $single_rate = TRUE; break; } $ratePlanObject = new OWS_rates("", $ratePlans[$invBlockCode]["!hold"], $ratePlans[$invBlockCode]["CancellationDateTime"], $ratePlans[$invBlockCode]["RatePlanDescription"]["Text"], $room_rate["Total"]["!"], $room_rate["Total"]["!currencyCode"], $invBlockCode); $rates[$room_rate["!roomTypeCode"]][] = $ratePlanObject; } if ($single_rate) { $rooms_rates = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RoomRates"]; foreach ($rooms_rates as $room_rate) { $cancellation = $ratePlans[$invBlockCode]["AdditionalDetails"]["AdditionalDetail"][1]["AdditionalDetailDescription"]["Text"]; /* $cancellation = $this->CI->ny_core->__get_config("reservation/cancellation/gcode"); $non_rd = str_replace(" ", "", $this->CI->ny_core->__get_config("reservations/rates/nonrefundable")); $non_rd_array = explode(',', $non_rd); if(is_array($non_rd_array) && sizeof($non_rd_array) > 0) { foreach($non_rd_array as $non_rd_single) { if($invBlockCode == $non_rd_single) { $cancellation = "Non Refundable Rate"; break; } } } else { if($invBlockCode == $non_rd) { $cancellation = "<b>Non Refundable Rate</b>"; break; } } */ $ratePlanObject = new OWS_rates("", "", $cancellation, $ratePlans[$invBlockCode]["RatePlanDescription"]["Text"], $room_rate["Total"]["!"], $room_rate["Total"]["!currencyCode"], $invBlockCode); $rates[$room_rate["!roomTypeCode"]][] = $ratePlanObject; } } } $resultArray["ratePlan"] = $ratePlanObject; $single_room = FALSE; foreach ($rooms as $room) { if (!is_array($room) || !array_key_exists("!roomTypeCode", $room)) { $single_room = TRUE; break; } $rate = array(); if (array_key_exists($room["!roomTypeCode"], $rates)) { $rate = $rates[$room["!roomTypeCode"]]; } $roomObject = new OWS_rooms($room["RoomTypeDescription"]["Text"], $room["!roomTypeCode"], '', $rate, '', ''); $this->roomList = $roomObject; } if ($single_room) { $rooms = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["RoomTypes"]; foreach ($rooms as $room) { /* if(!is_array($room) || array_key_exists("!roomTypeCode", $room)) { $resultArray["success"] = FALSE; $resultArray["err_message"] = "No Rooms Available on the dates provided. Contact us for more info"; die("test"); break; } */ $rate = array(); if (array_key_exists($room["!roomTypeCode"], $rates)) { $rate = $rates[$room["!roomTypeCode"]]; } $roomObject = new OWS_rooms($room["RoomTypeDescription"]["Text"], $room["!roomTypeCode"], '', $rate, '', ''); $this->roomList = $roomObject; } } //return $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]; $resultArray["roomList"] = $this->roomList; } catch (Exception $ex) { $resultArray["success"] = FALSE; $resultArray["err_message"] = "No Rooms Available on the dates provided. Contact us for more info"; } if (key_exists("0", $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["ExpectedCharges"]["ChargesForPostingDate"])) { $ExpectedCharges = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["ExpectedCharges"]["ChargesForPostingDate"][0]["TaxesAndFees"]["Charges"]; } else { $ExpectedCharges = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["ExpectedCharges"]["ChargesForPostingDate"]["TaxesAndFees"]["Charges"]; } $resultArray["ExpectedCharges"] = array(); foreach ($ExpectedCharges as $charge) { //if($charge["Amount"]["!"] != "0") $resultArray["ExpectedCharges"][] = $charge; } $resultArray["Totals"]["TotalRoomRateAndPackages"] = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["ExpectedCharges"]["!TotalRoomRateAndPackages"]; $resultArray["Totals"]["TotalTaxesAndFees"] = $result["AvailResponseSegments"]["AvailResponseSegment"]["RoomStayList"]["RoomStay"]["ExpectedCharges"]["!TotalTaxesAndFees"]; $resultArray["Totals"]["Total"] = $resultArray["Totals"]["TotalRoomRateAndPackages"] + $resultArray["Totals"]["TotalTaxesAndFees"]; } unset($resultArray["response"]); return $resultArray; }
/** * * fetch booking * * @access protected * @param * @return */ public function FetchBooking($ConfirmationNumber) { $data["ConfirmationNumber"] = $ConfirmationNumber; parent::load_model("OWS_rooms"); $resultArray = $this->CI->ows_reservation->FetchBooking($data); if ($resultArray["success"]) { $resultArray["reservationsList"] = array(); try { $reservation = $resultArray["response"]["HotelReservation"]; $resultReservation["id"] = $reservation["UniqueIDList"]["UniqueID"]["0"]; $resultReservation["TimeSpan"] = $reservation["RoomStays"]["RoomStay"]["TimeSpan"]; $resultReservation["Total"] = $reservation["RoomStays"]["RoomStay"]["Total"]["!"]; $resultReservation["TaxesAndFees"] = $reservation["RoomStays"]["RoomStay"]["ExpectedCharges"]["!TotalTaxesAndFees"]; $resultReservation["roomFee"] = $reservation["RoomStays"]["RoomStay"]["ExpectedCharges"]["!TotalRoomRateAndPackages"]; $room = $reservation["RoomStays"]["RoomStay"]["RoomTypes"]["RoomType"]; $resultReservation["GuestCounts"] = $reservation["RoomStays"]["RoomStay"]["GuestCounts"]["GuestCount"]; $resultReservation["Room"] = new OWS_rooms($room["RoomTypeDescription"]["Text"], $room["!roomTypeCode"], '', '', '', ''); $resultReservation["status"] = $reservation["!reservationStatus"]; $resultReservation["Payment"] = $reservation["RoomStays"]["RoomStay"]["Guarantee"]["GuaranteesAccepted"]["GuaranteeAccepted"]["GuaranteeCreditCard"]; $resultReservation["Payment"]["cardNumber"] = "***" . substr($resultReservation["Payment"]["cardNumber"], -4, 4); $resultReservation["ratePlan"] = $reservation["RoomStays"]["RoomStay"]["RatePlans"]["RatePlan"]; if (!key_exists("RatePlanDescription", $resultReservation["ratePlan"])) { $resultReservation["ratePlan"]["RatePlanDescription"] = array("Text" => "Group Code: " . $room["!invBlockCode"]); } $StartDate = explode("T", $resultReservation["TimeSpan"]["StartDate"], 2); $EndDate = explode("T", $resultReservation["TimeSpan"]["EndDate"], 2); $StartDate = date("Y-m-d", strtotime($StartDate[0])); $EndDate = date("Y-m-d", strtotime($EndDate[0])); $resultReservation["core_totals"]["tax"] = 0; $resultReservation["core_totals"]["total"] = $resultReservation["Total"]; /* $resultReservation["core_totals"] = $this->CI->ny_core->__get_total_tax( $room, $resultReservation["roomFee"], $resultReservation["TaxesAndFees"], GetDays($StartDate,$EndDate) ); */ if (key_exists("CancelTerm", $reservation["RoomStays"]["RoomStay"])) { $resultReservation["cancelTerm"] = $reservation["RoomStays"]["RoomStay"]["CancelTerm"]; } $resultArray["reservationsList"] = $resultReservation; } catch (Exception $ex) { } } unset($resultArray["response"]); return $resultArray; }