Ejemplo n.º 1
0
echo $booking->id;
?>
</h1>
<p>
Данные перелета:
<ul>
    <li>Тип: <?php 
echo $voyage->isComplex() ? 'Сложный' : (count($voyage->flights) == 2 ? 'Туда - Обратно' : 'Прямой');
?>
</li>
    <li>Направление:<div style="white-space:nowrap;">
        <?php 
foreach ($voyage->flights as $flight) {
    ?>
            <div style='color: #ff0000;white-space:nowrap;'><?php 
    echo UtilsHelper::dateToPointDate($flight->departureDate);
    ?>
</div>
            <div style='color: #0000ff;white-space:nowrap;'><?php 
    echo $flight->departureCity->localRu;
    ?>
 -
            <?php 
    echo $flight->arrivalCity->localRu;
    ?>
;</div>
        <?php 
}
?>
        </div>
    </li>
Ejemplo n.º 2
0
 /**
  * @param FlightBookingParams $oFlightBookingParams
  * @return FlightBookingResponse
  * @throws CException
  */
 public function FlightBooking(FlightBookingParams $oFlightBookingParams)
 {
     if (!$oFlightBookingParams instanceof FlightBookingParams) {
         throw new CException(Yii::t('application', 'Parameter oFlightBookingParams not type of FlightBookingParams'));
     }
     $aParams = array('Request' => array('BookFlight' => array('FlightId' => $oFlightBookingParams->flightId, 'BookingCodes' => array('BookingCode' => array('Code' => 'Q', 'SegNumber' => '1')), 'Agency' => array('Name' => 'Easy', 'Telephone' => array('Type' => 'A', 'PhoneNumber' => '5745698'), 'Address' => array('City' => 'Saint-Petersburg')), 'Travellers' => array('Traveller' => array(array('Type' => 'ADT', 'Num' => '1', 'PersonalInfo' => array('DateOfBirth' => '01.01.1985', 'Nationality' => 'RU', 'Gender' => 'M', 'FirstName' => 'Aleksandr', 'LastName' => 'Kovalev'), 'DocumentInfo' => array('DocType' => 'М', 'DocNum' => 'asdawe131', 'CountryCode' => 'RU', 'DocElapsedTime' => '24.03.2026')), array('Type' => 'ADT', 'Count' => '1'))))), 'Source' => array('ClientId' => Yii::app()->params['GDSNemo']['agencyId'], 'APIKey' => Yii::app()->params['GDSNemo']['agencyApiKey'], 'Language' => 'RU', 'Currency' => 'RUB'));
     if ($oFlightBookingParams->checkValid()) {
         $aTraveler = array();
         $iNum = 1;
         foreach ($oFlightBookingParams->passengers as $passenger) {
             //VarDumper::dump($passenger);die();
             //$oTraveller = array();
             $oTraveller['Type'] = Yii::app()->params['aPassegerTypes'][$passenger->type];
             $oTraveller['Num'] = $iNum;
             $oTraveller['IsContact'] = $iNum == 1 ? true : false;
             $oTraveller['PersonalInfo'] = array();
             $oTraveller['PersonalInfo']['DateOfBirth'] = $passenger->passport->birthday;
             $oTraveller['PersonalInfo']['Nationality'] = Country::getCountryByPk($passenger->passport->countryId)->code;
             $oTraveller['PersonalInfo']['Gender'] = $passenger->passport->genderId == 1 ? 'M' : 'F';
             $oTraveller['PersonalInfo']['FirstName'] = $passenger->passport->firstName;
             $oTraveller['PersonalInfo']['LastName'] = $passenger->passport->lastName;
             $oTraveller['DocumentInfo'] = array();
             $oTraveller['DocumentInfo']['DocType'] = isset(self::$passportTypesMap[$passenger->passport->documentTypeId]) ? self::$passportTypesMap[$passenger->passport->documentTypeId] : 'P';
             $oTraveller['DocumentInfo']['DocNum'] = ($passenger->passport->series ? $passenger->passport->series : '') . $passenger->passport->number;
             $oTraveller['DocumentInfo']['CountryCode'] = Country::getCountryByPk($passenger->passport->countryId)->code;
             $oTraveller['DocumentInfo']['DocElapsedTime'] = UtilsHelper::dateToPointDate($passenger->passport->expiration);
             $oTraveller['ContactInfo'] = array();
             $oTraveller['ContactInfo']['EmailID'] = $oFlightBookingParams->contactEmail;
             $oTraveller['ContactInfo']['Telephone'] = array();
             $oTraveller['ContactInfo']['Telephone']['Type'] = 'M';
             $oTraveller['ContactInfo']['Telephone']['PhoneNumber'] = $oFlightBookingParams->phoneNumber;
             $aTraveler[] = $oTraveller;
             $iNum++;
         }
         $aParams['Request']['BookFlight']['Travellers']['Traveller'] = $aTraveler;
         $aParams['Request']['BookFlight']['Travellers']['Traveller'] = UtilsHelper::normalizeArray($aParams['Request']['BookFlight']['Travellers']['Traveller']);
     } else {
         throw new CException(Yii::t('application', 'Data in parameter oFlightBookingParams not valid'));
     }
     $response = self::request('BookFlight', $aParams);
     $flightBookingResponse = new FlightBookingResponse();
     if (isset($response->Response->Error)) {
         $status = 'error';
         $flightBookingResponse->status = 2;
         $flightBookingResponse->responseStatus = ResponseStatus::ERROR_CODE_EXTERNAL;
         $flightBookingResponse->addError('error', $response->Response->Error);
     } else {
         if (isset($response->Response->BookFlight->Status)) {
             $status = $response->Response->BookFlight->Status;
         } elseif (isset($response->Error->_)) {
             $status = 'error';
             $flightBookingResponse->addError($response->Error->Code, $response->Error->_);
         } else {
             $status = 'error';
             if (GDSNemoSoapClient::$lastCurlError) {
                 $flightBookingResponse->addError('connection error', GDSNemoSoapClient::$lastCurlError);
             }
         }
     }
     if ($status == 'booked') {
         $flightBookingResponse->pnr = $response->Response->BookFlight->Code;
         $flightBookingResponse->expiration = strtotime($response->Response->BookFlight->Flight->PricingInfo->PassengerFare->LastTicketDateTime->_);
         $flightBookingResponse->nemoBookId = $response->Response->BookFlight->ID;
         $flightBookingResponse->status = 1;
     } else {
         $flightBookingResponse->status = 2;
         $flightBookingResponse->responseStatus = ResponseStatus::ERROR_CODE_EXTERNAL;
         $flightBookingResponse->addError('error', 'Status is:' . $status);
     }
     return $flightBookingResponse;
 }