Ejemplo n.º 1
0
 public function actionInfo($eventId)
 {
     $event = Event::model()->findByPk($eventId);
     $defaultCityId = 4466;
     $pricesData = array();
     $this->layout = 'static';
     foreach ($event->prices as $price) {
         $pricesData[$price->city->id] = array('price' => floor($price->bestPrice), 'cityName' => $price->city->localRu, 'cityId' => $price->city->id, 'updateTime' => str_replace(' ', 'T', $price->updated));
     }
     $tours = array();
     $dataProvider = new TripDataProvider();
     $cities = array();
     foreach ($event->tours as $tour) {
         $tours[$tour->startCityId] = array();
         $dataProvider->restoreFromDb($tour->orderId);
         //echo $tour->orderId.'dsf';
         //print_r($dataProvider->getSortedCartItemsOnePerGroup(false));//die();
         $items = $dataProvider->getWithAdditionalInfo($dataProvider->getSortedCartItemsOnePerGroup(false));
         //print_r($items);die();
         $tours[$tour->startCityId] = $items;
         $tours[$tour->startCityId]['city'] = City::getCityByPk($tour->startCityId)->getAttributes();
         $eventPrice = EventPrice::model()->findByAttributes(array('eventId' => $eventId, 'cityId' => $tour->startCityId));
         if ($eventPrice) {
             $tours[$tour->startCityId]['price'] = ceil($eventPrice->bestPrice);
         }
         $cities[$tour->startCityId] = City::getCityByPk($tour->startCityId)->getAttributes();
     }
     //die();
     if (!isset($cities[$defaultCityId])) {
         foreach ($cities as $defaultCityId => $city) {
             break;
         }
     }
     //need search params
     $twoCities = array();
     $twoCities[$defaultCityId] = $cities[$defaultCityId];
     foreach ($cities as $cityId => $city) {
         if (!isset($twoCities[$cityId])) {
             $twoCities[$cityId] = $city;
             break;
         }
     }
     $pictures = array();
     foreach ($event->pictures as $picture) {
         $pictures[] = array('url' => $picture->getUrl());
     }
     $this->render('info', array('event' => $event, 'priceData' => $pricesData, 'defaultCity' => $defaultCityId, 'tours' => $tours, 'cities' => $cities, 'twoCities' => $twoCities, 'pictures' => $pictures));
 }
Ejemplo n.º 2
0
 /**
  * @param array $destinations
  *  [Х][city] - city iata code,
  *  [Х][dateFrom] - start of visiting date,
  *  [Х][dateTo] - end of visiting date,
  *
  * @param array $rooms
  *  [Х][adt]
  *  [Х][chd]
  *  [Х][chdAge]
  *  [Х][cots]
  */
 public function actionDefault($start, array $destinations, array $rooms, $format = 'json', $eventId = null)
 {
     $tourSearchParams = $this->buildSearchParams($start, $destinations, $rooms);
     if ($eventId) {
         $event = Event::model()->findByPk($eventId);
         $dataProvider = new TripDataProvider();
         foreach ($event->tours as $tour) {
             if ($tourSearchParams->getStartCityId() == $tour->startCityId) {
                 $dataProvider->restoreFromDb($tour->orderId);
                 $items = $dataProvider->getWithAdditionalInfo($dataProvider->getSortedCartItemsOnePerGroup(false));
             }
         }
     }
     $this->buildTour($tourSearchParams);
     $results = $this->searchTourVariants();
     if (isset($items)) {
         $results['items'] = $items['items'];
     }
     $this->sendWithCorrectFormat($format, $results);
     Yii::app()->end();
 }
Ejemplo n.º 3
0
 public function actionPdf($id)
 {
     $pdf = Yii::app()->pdfGenerator;
     $tsp = new TripDataProvider();
     $items = $tsp->getSortedCartItemsOnePerGroup();
     foreach ($items as $item) {
         if ($item instanceof HotelTripElement) {
             if ($item->getId() == $id) {
                 $fileNameInfo = $pdf->forHotelItem($item);
                 Yii::app()->request->sendFile($fileNameInfo['visibleName'], file_get_contents($fileNameInfo['realName']));
                 @unlink($fileNameInfo['realName']);
                 break;
             }
         } elseif ($item instanceof FlightTripElement) {
             if ($item->getId() == $id) {
                 $fileNameInfo = $pdf->forFlightItem($item);
                 Yii::app()->request->sendFile($fileNameInfo['visibleName'], file_get_contents($fileNameInfo['realName']));
                 @unlink($fileNameInfo['realName']);
                 break;
             }
         }
     }
 }
Ejemplo n.º 4
0
 public function initByOrderBookingId($orderId)
 {
     $this->currentOrderId = $orderId;
     $dataProvider = new TripDataProvider($orderId);
     $this->itemsOnePerGroup = $dataProvider->getSortedCartItemsOnePerGroup();
 }
Ejemplo n.º 5
0
 public function __construct()
 {
     $dataProvider = new TripDataProvider();
     $this->items = $dataProvider->getSortedCartItems();
     $this->itemsOnePerGroup = $dataProvider->getSortedCartItemsOnePerGroup();
 }