コード例 #1
0
 public function add2Action($id, Request $request)
 {
     // On récupère l'EntityManager
     $em = $this->getDoctrine()->getManager();
     // Pour récupérer une annonce unique : on utilise find()
     $festival = $em->getRepository('GSFestivalBundle:Festival')->find($id);
     if ($festival === null) {
         throw $this->createNotFoundException("Le festival d'id " . $id . " n'existe pas.");
     }
     $registration = new Registration();
     $email = $request->getSession()->get('email');
     $person = $em->getRepository('GSPersonBundle:Person')->findOneByEmail($email);
     if ($person === null) {
         $person = new Person();
         $person->setEmail($email);
     }
     $registration->setPerson($person);
     $form = $this->createForm(RegistrationType::class, $registration, array('festival' => $festival));
     if ($form->handleRequest($request)->isValid()) {
         $form->get('level')->getData()->addRegistration($registration);
         $partner = $em->getRepository('GSFestivalBundle:Registration')->getPartner($registration);
         if (count($partner) == 1) {
             $registration->setPartner($partner[0]);
         }
         $em->persist($registration);
         $em->flush();
         $request->getSession()->getFlashBag()->add('success', 'Inscription bien enregistrée.');
         $request->getSession()->remove('email');
         return $this->redirectToRoute('gs_registration_preview', array('id' => $registration->getId()));
     }
     return $this->render('GSFestivalBundle:Registration:add.html.twig', array('festival' => $festival, 'form' => $form->createView()));
 }
コード例 #2
0
 public function load(ObjectManager $manager)
 {
     $festival = new Festival();
     $festival->setName('GSDF');
     $festival->setDescription('test');
     $festival->setLocation('Grenoble');
     $festival->setDate(new \Datetime('2016-11-10'));
     $level1 = new Level();
     $level1->setName('Flocon');
     $level1->setDescription('toto');
     $level1->setCapacity(15);
     $level1->setExtraPerson(2);
     $level1->setPrice(80.0);
     $level2 = new Level();
     $level2->setName('1ere Etoile');
     $level2->setDescription('titi');
     $level2->setCapacity(17);
     $level2->setExtraPerson(2);
     $level2->setPrice(150.0);
     for ($i = 0; $i < 15; $i++) {
         $phoneNumber = $this->container->get('libphonenumber.phone_number_util')->parse('0380581981', 'FR');
         $person = new Person();
         $person->setFirstName('Toto' . $i);
         $person->setLastName('Titi' . $i);
         $person->setEmail('bibi' . $i . '@gmail.com');
         $person->setPhoneNumber($phoneNumber);
         $registration = new Registration();
         if ($i % 2 || $i > 10) {
             $registration->setRole(True);
         } else {
             $registration->setRole(False);
         }
         $person->addRegistration($registration);
         $level1->addRegistration($registration);
     }
     for ($i = 0; $i < 15; $i++) {
         $person = new Person();
         $person->setFirstName('Tata' . $i);
         $person->setLastName('Tutu' . $i);
         $person->setEmail('baba' . $i . '@gmail.com');
         $registration = new Registration();
         if ($i % 2 && $i < 11) {
             $registration->setRole(True);
         } else {
             $registration->setRole(False);
         }
         $person->addRegistration($registration);
         $level2->addRegistration($registration);
     }
     $festival->addLevel($level1);
     $festival->addLevel($level2);
     $manager->persist($festival);
     $manager->flush();
 }
コード例 #3
0
ファイル: Level.php プロジェクト: BibiSpirit42/GSFestival
 public function addRegistration(Registration $registration)
 {
     $this->registrations[] = $registration;
     $registration->setLevel($this);
     $registration->setRemainingPayment($this->price);
     return $this;
 }
コード例 #4
0
ファイル: Person.php プロジェクト: BibiSpirit42/GSFestival
 /**
  * Add registration
  *
  * @param \GS\FestivalBundle\Entity\Registration $registration
  *
  * @return Person
  */
 public function addRegistration(\GS\FestivalBundle\Entity\Registration $registration)
 {
     $this->registrations[] = $registration;
     $registration->setPerson($this);
     return $this;
 }
コード例 #5
0
 /**
  * Set partner
  *
  * @param \GS\FestivalBundle\Entity\Person $partner
  *
  * @return Registration
  */
 public function setPartner(\GS\FestivalBundle\Entity\Registration $partner = null)
 {
     $this->partner = $partner;
     if (null === $partner->getPartner()) {
         $partner->setPartner($this);
     }
     return $this;
 }
コード例 #6
0
 public function getPossiblePartners(Registration $registration)
 {
     $qb = $this->createQueryBuilder('a');
     $qb->leftJoin('a.level', 'lvl')->addSelect('lvl')->andWhere('lvl = :lvl')->andwhere('a.status != :cancelled')->andWhere('a.role != :role')->setParameter('role', $registration->getRole())->setParameter('cancelled', 'cancelled')->setParameter('lvl', $registration->getLevel());
     return $qb->getQuery()->getResult();
 }