<?php
namespace Aviatur\SearchBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Aviatur\TwigBundle\Services\TwigFolder;
use Aviatur\GeneralBundle\Services\AviaturChangeCoin;
use Aviatur\TrainBundle\Services\SearchTrainCookie;
class TrainController extends AbstractController {
public function indexAction(SessionInterface $session, ManagerRegistry $registry, SearchTrainCookie $searchTrainCookie, AviaturChangeCoin $aviaturChangeCoin, TwigFolder $twigFolder) {
$em = $registry->getManager();
$cookieLastSearch = $searchTrainCookie->searchTrainCookie();
$agencyId = $session->get('agencyId');
$agency = $em->getRepository(\Aviatur\AgencyBundle\Entity\Agency::class)->find($agencyId);
$validateChange = $aviaturChangeCoin->validateChangeCoin('train');
$promoType = '';
$promoTypeMain = '-main';
$promoTypeRecommendations = '-recommendations';
if($session->has('whitemark') === true){
$promoType = '_' . $session->get('whitemark');
}
$agenciesExcluded = ['Aviatur S.A.S.', 'Aviatur S.A.S. Metasearch', 'Aval', 'Aviacaribbean', 'Aviatur - WorldPay', 'Aviatur Carnaval BAQ MB', 'Aviatur Colombia', 'Aviatur Colombia EN', 'Aviatur Colombia ES', 'Aviatur Ecoturismo', 'Aviatur Kioskos', 'Aviatur Metasearch Mexico', 'Aviatur Mexico', 'Aviatur Mexico QA', 'Aviatur Mobile', 'Aviatur PinBus', 'Aviatur - Pruebas', 'BabyMarket', 'Buceo Colombia', 'Cielos Abiertos', 'Corona Aviatur', 'Directo a la Playa', 'Experiencias Jet-Set', 'Great Vibes', 'Landing visa', 'Lufthansa City Center', 'Megatours', 'Octopus Agents', 'Octopus Marcas Blancas', 'Octopus Travel QA', 'Panturismo Marcas Blancas', 'Parque Tayrona', 'Representaciones Pasabordo WM', 'Rokatur Marcas Blancas', 'RollingTrips', 'Star World', 'Swissandina', 'Takentours', 'TerraNet Marcas Blancas', 'Turiscol Ltda.', 'Aviatur S.A.', 'Union de Representaciones', 'Union de Representaciones - Whitemark', 'Virtuoso', 'Claro', 'WeCare', 'Octopus Travel Ltda.', 'Aviatur Site', 'Aviatur S.A.S. - BBVA', 'Aviatur Welcome Beds'];
$agencyPromoId = 172;
$validationAgencyFolder = false;
foreach ($agenciesExcluded as $agencyExcluded) {
if ($agencyExcluded === $agency->getName()) {
$agencyPromoId = $session->get('agencyId');
$validationAgencyFolder = true;
}
}
$homePromoList = $em->getRepository(\Aviatur\EditionBundle\Entity\HomePromoList::class)->findOneBy(['type' => '__train'.$promoType, 'agency' => $agencyPromoId]);
if ($homePromoList != null) {
$homePromoTitle = $homePromoList->getTitle();
$homePromoSubtitle = $homePromoList->getSubtitle();
$homePromos = $em->getRepository(\Aviatur\EditionBundle\Entity\HomePromo::class)->findByHomePromoList($homePromoList, ['date' => 'DESC']);
} else {
$homePromoTitle = null;
$homePromoSubtitle = null;
$homePromos = [];
}
$homePromoListMain = $em->getRepository(\Aviatur\EditionBundle\Entity\HomePromoList::class)->findOneBy(["type" => '__train'.$promoTypeMain, "agency" => $agencyPromoId]);
if ($homePromoListMain != null) {
$homePromoMainTitle = $homePromoListMain->getTitle();
$homePromoMainSubtitle = $homePromoListMain->getSubtitle();
$homePromosMain = $em->getRepository(\Aviatur\EditionBundle\Entity\HomePromo::class)->findByHomePromoList($homePromoListMain, ['date' => 'DESC']);
} else {
$homePromoMainTitle = null;
$homePromoMainSubtitle = null;
$homePromosMain = [];
}
$homePromoListRecommendations = $em->getRepository(\Aviatur\EditionBundle\Entity\HomePromoList::class)->findOneBy(["type" => '__train'.$promoTypeRecommendations, "agency" => $agencyPromoId]);
if ($homePromoListRecommendations != null) {
$homePromoRecommendationsTitle = $homePromoListRecommendations->getTitle();
$homePromoRecommendationsSubtitle = $homePromoListRecommendations->getSubtitle();
$homePromosRecommendations = $em->getRepository(\Aviatur\EditionBundle\Entity\HomePromo::class)->findByHomePromoList($homePromoListRecommendations, ['date' => 'DESC']);
} else {
$homePromoRecommendationsTitle = null;
$homePromoRecommendationsSubtitle = null;
$homePromosRecommendations = [];
}
$agencyFolder = $twigFolder->twigFlux();
return $this->render($twigFolder->twigExists('@AviaturTwig/' . $agencyFolder . '/Search/Train/trainSearch_index.html.twig'), ["cookieLastSearch" => $cookieLastSearch, 'homePromos' => $homePromos, 'titlePromo' => $homePromoTitle, 'subtitlePromo' => $homePromoSubtitle, 'promoType' => '__train', 'homePromosMain' => $homePromosMain, 'titlePromoMain' => $homePromoMainTitle, 'subtitlePromoMain' => $homePromoMainSubtitle, 'promoTypeMain' => '__train'.$promoTypeMain, 'homePromosRecommendations' => $homePromosRecommendations, 'titlePromoRecommendations' => $homePromoRecommendationsTitle, 'subtitlePromoRecommendations' => $homePromoRecommendationsSubtitle, 'promoTypeRecommendations' => '__train'.$promoTypeRecommendations, 'validationAgencyFolder' => $validationAgencyFolder]);
}
}