src/Aviatur/DocumentationBundle/Controller/DefaultController.php line 17

Open in your IDE?
  1. <?php
  2. namespace Aviatur\DocumentationBundle\Controller;
  3. use Aviatur\DocumentationBundle\Entity\Documentation;
  4. use Aviatur\DocumentationBundle\Models;
  5. use Aviatur\DocumentationBundle\Services\DocumentationService;
  6. use Aviatur\GeneralBundle\Services\AviaturErrorHandler;
  7. use Aviatur\GeneralBundle\Services\AviaturWebService;
  8. use Aviatur\TwigBundle\Services\TwigFolder;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  12. class DefaultController extends AbstractController
  13. {
  14.     public function searchAction()
  15.     {
  16.         return $this->redirect(
  17.             $this->generateUrl(
  18.                 'aviatur_search_documentation',
  19.                 []
  20.             )
  21.         );
  22.     }
  23.     public function indexAction(SessionInterface $sessionDocumentationService $documentationServiceAviaturWebService $webServiceTwigFolder $twigFolder$id)
  24.     {
  25.         $em $this->getDoctrine()->getManager();
  26.         $agency $em->getRepository(\Aviatur\AgencyBundle\Entity\Agency::class)->find($session->get('agencyId'));
  27.         $infoDocumentation $documentationService->documentationInfo($session->get('agencyId'));
  28.         $safeUrl 'https://'.$agency->getDomain();
  29.         $router $this->get('router');
  30.         $documentationModel = new Models\DocumentationModel();
  31.         $xmlTemplate $documentationModel->getXml($id);
  32.         $documentationRepository $em->getRepository(\Aviatur\DocumentationBundle\Entity\Documentation::class)->getInfoDocDate($id);
  33.         $searchCss = ['http://travel.aviatur.com/templates/aviatur/css/template.css''http://www.aviatur.com/templates/aviatur/css/template.css''http://aviatur.com/templates/aviatur/css/template.css'];
  34. //        $replaceCss = array('http://190.66.17.238/templates/aviatur/css/template.css', 'http://190.66.17.238/templates/aviatur/css/template.css', 'http://190.66.17.238/templates/aviatur/css/template.css');
  35.         $error 0;
  36.         if (empty($documentationRepository)) {
  37.             $response $webService->callWebService('GENERALLAVE''dummy|http://www.aviatur.com.co/dummy/'$xmlTemplate);
  38.             $documentationEntity = new Documentation();
  39.             $documentationEntity->setIataCode($id);
  40.             $documentationEntity->setInfoDocumentation(base64_encode(json_encode($response)));
  41.             $documentationEntity->setCreationDate(new \DateTime());
  42.             $em->persist($documentationEntity);
  43.             $em->flush();
  44.             $response simplexml_load_string(str_replace($searchCss''$response->asXML()));
  45.         } else {
  46.             $documentationEntity $documentationRepository[0]['infoDocumentation'];
  47.             $response json_decode(base64_decode($documentationEntity), true);
  48.             if (isset($response['RESULTADO'])) {
  49.                 $response '<h5 class="error">No se encuentra Información del pais seleccionado</h5>';
  50.                 $error 1;
  51.             } else {
  52.                 $response str_replace($searchCss''$response[0]);
  53.             }
  54.         }
  55.         $uri $router->generate('aviatur_documentation_homepage', ['id' => $id]);
  56.         if ('BQ' == $id) {
  57.             $nameCountry 'Islas Países Bajos';
  58.         } elseif ('GP' == $id) {
  59.             $nameCountry 'Ultramar Francia';
  60.         } elseif ('CD' == $id) {
  61.             $nameCountry 'Congo';
  62.         } elseif ('VG' == $id) {
  63.             $nameCountry 'Islas Vírgenes';
  64.         } elseif ('VI' == $id) {
  65.             $nameCountry 'Islas Vírgenes EEUU';
  66.         } else {
  67.             $dataCity $em->getRepository(\Aviatur\SearchBundle\Entity\SearchCities::class)->findBy(['countrycode' => $id], ['id' => 'ASC'], 1);
  68.             if (!empty($dataCity)) {
  69.                 foreach ($dataCity as $data) {
  70.                     $nameCountry $data->getCountry();
  71.                 }
  72.             } else {
  73.                 $nameCountry $id;
  74.             }
  75.         }
  76.         $variables = [
  77.             'error' => $error,
  78.             'safeUrl' => $safeUrl,
  79.             'id' => $id,
  80.             'url' => $safeUrl.$uri,
  81.             'name' => $nameCountry,
  82.         ];
  83.         $agencyFolder $twigFolder->twigFlux();
  84.         return $this->render($twigFolder->twigExists('@AviaturTwig/'.$agencyFolder.'/Documentation/Default/index.html.twig'), ['response' => $response'variables' => $variables'infoDocumentation' => $infoDocumentation]);
  85.     }
  86.     public function sendMailAction(Request $requestAviaturWebService $webService, \Swift_Mailer $mailerAviaturErrorHandler $errorHandler)
  87.     {
  88.         $server $request->server;
  89.         $email $request->request->get('email');
  90.         $id $request->request->get('id');
  91.         $documentationModel = new Models\DocumentationModel();
  92.         $xmlTemplate $documentationModel->getXml($id);
  93.         $response $webService->callWebService('GENERALLAVE''dummy|http://www.aviatur.com.co/dummy/'$xmlTemplate);
  94. //        $mailInfo = print_r($response, true);
  95.         $message = (new \Swift_Message())
  96.                 ->setContentType('text/html')
  97.                 ->setFrom(['cliente.com@aviatur.com.co' => 'Documentación Aviatur'])
  98.                 ->setTo($email)
  99.                 ->setSubject('Documentación')
  100.                 ->setBody($response);
  101.         $mailer->send($message);
  102.         return $this->redirect($errorHandler->errorRedirectNoEmail($server->get('HTTP_REFERER'), 'Mensaje Enviado''Se ha enviado informacion al correo '.$email));
  103.     }
  104.     public function documentationAction(Request $requestAviaturWebService $webServiceTwigFolder $twigFolder)
  105.     {
  106.         $em $this->getDoctrine()->getManager();
  107.         $fullRequest $request;
  108.         $request $fullRequest->request;
  109.         $codeCity $request->get('codeCity');
  110.         if (strlen($codeCity) < 3) {//Receive country code
  111.             $country $codeCity;
  112.         } else {//Receive City code
  113.             $city $em->getRepository(\Aviatur\GeneralBundle\Entity\City::class)->findOneByIatacode($codeCity);
  114.             $countryObject $em->getRepository(\Aviatur\GeneralBundle\Entity\Country::class)->findOneByCode($city->getCountryStateCode());
  115.             $country $countryObject->getIataCode();
  116.         }
  117.         $documentationModel = new Models\DocumentationModel();
  118.         $xmlTemplate $documentationModel->getXml($country);
  119.         $agencyFolder $twigFolder->twigFlux();
  120.         $response $webService->callWebService('GENERALLAVE''dummy|http://www.aviatur.com.co/dummy/'$xmlTemplate);
  121.         $error 0;
  122.         if (isset($response->RESULTADO)) {
  123.             $response '<h5><font color="red">No se encuentra información del país seleccionado</font></h5>';
  124.             $error 1;
  125.         }
  126.         $urlDetail $twigFolder->twigExists('@AviaturTwig/'.$agencyFolder.'/General/Templates/info_documentation.html.twig');
  127.         return $this->render($urlDetail, ['response' => $response]);
  128.     }
  129. }