Ejemplo n.º 1
0
 public function toArray(ObjectManager $om)
 {
     $data = array();
     $roomsTransformer = new RoomsToStringTransformer();
     $servicesTransformer = new ServicesToStringTransformer($om);
     $data['searchcriteria'] = $this->searchString;
     $data['startdate'] = $this->datePax->startingDate->format('Y-m-d');
     $data['enddate'] = $this->datePax->endingDate->format('Y-m-d');
     $data['roomsstring'] = $roomsTransformer->transform($this->datePax->getSelectedRooms());
     $data['accentCard'] = $this->accentCard;
     $data['flexible'] = $this->flexible_dates ? 1 : 0;
     $data['servicesstring'] = $servicesTransformer->transform($this->services);
     $data['budgetmin'] = $this->budget_min;
     $data['budgetmax'] = $this->budget_max;
     $data['brands'] = $this->brands;
     $data['radius'] = $this->radius;
     $data['nbAdults'] = $this->getNbAdults();
     $data['nbChildren'] = $this->getNbChildren();
     $data['nbRooms'] = $this->datePax->getNbRooms();
     $data['geolocationLat'] = $this->geolocationLat;
     $data['geolocationLng'] = $this->geolocationLng;
     return $data;
 }
Ejemplo n.º 2
0
 /**
  * @Route("/process", name="process_advanced_search_form")
  * @Method("POST")
  */
 public function processAdvancedFormAction(Request $request)
 {
     $searchData = $this->get('seh_search_fullsearch_data');
     $searchForm = $this->createForm('seh_search_fullsearch', $searchData);
     $session = $this->get('session');
     $searchForm->submit($request);
     if ($searchForm->isValid()) {
         $searchDataSession = $this->getSearchData();
         $searchString = $searchData->searchString;
         if ($searchData->searchMapId != '' && $searchData->comeFromSearchMap) {
             $session->set('searchmapId', $searchData->searchMapId);
             $locations = array('cities' => array(), 'departments' => array(), 'regions' => array(), 'countries' => array());
             foreach (explode(',', $searchData->searchMapId) as $hotelId) {
                 /** @var Hotel $hotel */
                 $hotel = $this->getRepository('SehBundle:Hotel')->find($hotelId);
                 if ($hotel) {
                     $locations['cities'][$hotel->getCity()->getId()] = $hotel->getCity()->getName();
                     if ($hotel->getDepartment()) {
                         $locations['departments'][$hotel->getDepartment()->getId()] = $hotel->getDepartment()->getName();
                     }
                     $locations['regions'][$hotel->getRegion()->getId()] = $hotel->getRegion()->getName();
                     $locations['countries'][$hotel->getCountry()->getId()] = $hotel->getCountry()->getName();
                 }
             }
             if (count($locations['cities']) == 1) {
                 $location = array_shift($locations['cities']);
                 $searchString = $location;
             } elseif (count($locations['departments']) == 1) {
                 $location = array_shift($locations['departments']);
                 $searchString = $location;
             } elseif (count($locations['regions']) == 1) {
                 $location = array_shift($locations['regions']);
                 $searchString = $location;
             } elseif (count($locations['countries']) == 1) {
                 $location = array_shift($locations['countries']);
                 $searchString = $location;
             }
             $session->get('search.data', $searchDataSession);
         }
         if (!$searchData->comeFromSearchMap && $searchDataSession) {
             $searchDataSession->setSearchMapId('');
         }
         if ('' === $searchString) {
             $searchString = 'no-search-string';
         }
         $roomsTransformer = new RoomsToStringTransformer();
         $roomsAsString = $roomsTransformer->transform($searchData->datePax->getSelectedRooms());
         $servicesTransformer = new ServicesToStringTransformer($this->getDoctrine()->getManager());
         $servicesAsString = $servicesTransformer->transform($searchData->services);
         $startDate = $searchData->datePax->startingDate->format('Y-m-d');
         $endDate = $searchData->datePax->endingDate->format('Y-m-d');
         $parameters = array('searchcriteria' => $searchString, 'startdate' => $startDate, 'enddate' => $endDate, 'roomsstring' => $roomsAsString, 'flexible' => !$searchData->flexible_dates ? '0' : '1', 'servicesstring' => $servicesAsString);
         if ($searchData->accentCard) {
             $parameters['accentCard'] = $searchData->accentCard;
         }
         $route = 'search_form_process_full';
         $brandsTransformer = new BrandsToStringTransformer($this->getDoctrine()->getManager());
         $brands = $brandsTransformer->transform($searchData->brands);
         $parameters = array_merge($parameters, array('budgetmin' => $searchData->budget_min, 'budgetmax' => $searchData->budget_max, 'brands' => '' != $brands ? $brands : 'nobrand', 'radius' => $searchData->radius));
         $parameters['searchcriteria'] = str_replace('/', '##-##', $parameters['searchcriteria']);
         return $this->redirect($this->generateUrl($route, $parameters));
     }
     $session->set('form.search.errors', $this->getFormErrorsAsArray($searchForm));
     return $this->redirect($this->getRequest()->headers->get('referer'));
 }