diff --git a/trunk/app/Resources/views/default/pages/booking.html.twig b/trunk/app/Resources/views/default/pages/booking.html.twig index a785f4a9..d5cc2a75 100644 --- a/trunk/app/Resources/views/default/pages/booking.html.twig +++ b/trunk/app/Resources/views/default/pages/booking.html.twig @@ -663,7 +663,7 @@
Sofern Sie nicht oder nicht ausschließlich nur die deutsche Staatsbürgerschaft besitzen, können Sie die Reise nicht buchen, +
Sofern Sie nicht oder nicht ausschließlich nur die deutsche, österreichische oder schweizerische Staatsbürgerschaft besitzen, können Sie die Reise nicht buchen, da wir Sie vorher u.a. über die Einreisebestimmungen für Ihre individuelle Staatsbürgerschaft informieren müssen. Bitte nehmen Sie vor einer Buchung Kontakt mit uns auf, damit Sie nach Erhalt der Informationen entscheiden können, ob Sie die Reise buchen möchten.
diff --git a/trunk/src/AppBundle/Controller/BookingController.php b/trunk/src/AppBundle/Controller/BookingController.php index 131e82f4..be882e63 100644 --- a/trunk/src/AppBundle/Controller/BookingController.php +++ b/trunk/src/AppBundle/Controller/BookingController.php @@ -101,6 +101,8 @@ class BookingController extends Controller 'travel_date' => $travelDate, 'travel_program' => $travelProgram ]); + die(); + if ($request->getMethod() == 'POST') { $form->handleRequest($request); diff --git a/trunk/src/AppBundle/Entity/TravelPeriodRepository.php b/trunk/src/AppBundle/Entity/TravelPeriodRepository.php index 8b5ea75f..6badc57f 100644 --- a/trunk/src/AppBundle/Entity/TravelPeriodRepository.php +++ b/trunk/src/AppBundle/Entity/TravelPeriodRepository.php @@ -371,6 +371,7 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository \DateTime $startDate = null, \DateTime $endDate = null) { $currencyFactor = $travelProgram->getNettoPricesInEuro() ? 1 : $this->getCurrencyFactor(); + $counters = array(); // #TODO Consider adding travelPeriods to travelProgram in the search algorithm //foreach ($travelProgram->getPeriods() as $travelPeriod) @@ -378,9 +379,13 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository { if ($travelPeriod->getIsSeason()) { - $i = 1; foreach ($travelPeriod->getDates() as $travelPeriodDate) { + $cn = $travelPeriodDate->getId().$travelPeriod->getName(); + if(empty($counters[$cn])){ + $counters[$cn] = 1; + } + $seasonEndDate = clone $travelPeriodDate->getEndDate(); $seasonEndDate->modify('+'.$travelProgram->getProgramDuration().' day'); if ($endDate != null && $seasonEndDate > $endDate) @@ -413,6 +418,7 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository // #TODO Do we need the travel date key? $travelDateEnd = (clone $date)->modify('+'.$travelProgram->getProgramDuration().' day'); $travelDateKey = $this->createTravelDateKey($date, $travelDateEnd); + if (!$travelProgram->hasTravelDate($travelDateKey)) { $flightPeriod = null; @@ -425,7 +431,7 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository $travelProgram->addTravelDateFromSeasonTravelPeriod( $travelDateKey, $travelPeriod, - $travelPeriodDate->getId() . $travelPeriod->getName() . $i, + $travelPeriodDate->getId() . $travelPeriod->getName() . $counters[$cn], $date, $travelDateEnd, $flightPeriod, @@ -437,7 +443,7 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository // Also increment $i if the date is theoretically possible but excluded from the search request if ($isPossibleDate) { - ++$i; + ++ $counters[$cn]; } } } diff --git a/trunk/src/AppBundle/Entity/TravelProgram.php b/trunk/src/AppBundle/Entity/TravelProgram.php index c1e5db2a..0130887c 100644 --- a/trunk/src/AppBundle/Entity/TravelProgram.php +++ b/trunk/src/AppBundle/Entity/TravelProgram.php @@ -1631,7 +1631,6 @@ class TravelProgram public function addTravelDateFromSeasonTravelPeriod($key, TravelPeriod $travelPeriod, $index, \DateTime $start, \DateTime $end = null, FlightPeriod $flightPeriod = null, $currencyFactor) { - $this->assertTravelDateNotDefinedYet($key); $this->isTravelDateMapTainted = true; $this->travelDateByKey[$key] = TravelDate::createForSeasonTravelPeriod($key, $travelPeriod, $index, $start, diff --git a/trunk/src/AppBundle/Form/TravelerType.php b/trunk/src/AppBundle/Form/TravelerType.php index dad858c5..ed9e1032 100644 --- a/trunk/src/AppBundle/Form/TravelerType.php +++ b/trunk/src/AppBundle/Form/TravelerType.php @@ -7,6 +7,7 @@ namespace AppBundle\Form; use AppBundle\Entity\Traveler; +use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; @@ -34,6 +35,8 @@ class TravelerType extends AbstractType */ public function configureOptions(OptionsResolver $resolver) { + $resolver->setAllowedTypes('nationality', ['AppBundle\Entity\TravelNationality']); + $resolver->setDefaults(array( 'data_class' => 'AppBundle\Entity\Traveler' )); @@ -45,6 +48,10 @@ class TravelerType extends AbstractType */ public function buildForm(FormBuilderInterface $builder, array $options) { + + $nationality = $options['nationality']; + + $builder ->add('sex', ChoiceType::class, [ //'placeholder' => 'Geschlecht (Bitte wählen) *', @@ -57,23 +64,35 @@ class TravelerType extends AbstractType ->add('firstName') ->add('lastName') ->add('birthDate') - ->add('nationality', ChoiceType::class, [ + + + /*->add('nationality', ChoiceType::class, [ 'choices' => self::$NATIONALITY_CHOICES, 'constraints' => [ new NotNull(), new Choice(['choices' => self::$NATIONALITY_CHOICES]) ], 'required' => true, - ]) + ])*/ ->add('acceptEntryRequirements', CheckboxType::class, ['required' => true]) - - ; /* , StDateType::class, [ 'format' => 'dd.MM.yyyy' ] */ + + $builder->add('nationality', EntityType::class, [ + 'placeholder' => 'Nationalität (Bitte wählen) *', + 'class' => 'AppBundle\Entity\TravelNationality', + 'choices' => $nationality->getNationality(), + 'constraints' => [ + new NotNull(), + new Choice([ + 'choices' => $nationality->getNationality() + ] + )] + ]); } }