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)); }
/** * @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(); }
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; } } } }
public function initByOrderBookingId($orderId) { $this->currentOrderId = $orderId; $dataProvider = new TripDataProvider($orderId); $this->itemsOnePerGroup = $dataProvider->getSortedCartItemsOnePerGroup(); }
public function __construct() { $dataProvider = new TripDataProvider(); $this->items = $dataProvider->getSortedCartItems(); $this->itemsOnePerGroup = $dataProvider->getSortedCartItemsOnePerGroup(); }