/** * @Route("/nueva-inscripcion/{participanttype}", name="participant_new") * Muestra pantalla de nueva inscripción */ public function newParticipantAction(Request $request, \AppBundle\Entity\ParticipantType $participanttype) { $siteManager = $this->container->get('ritsiga.site.manager'); $convention = $siteManager->getCurrentSite(); $user = $this->getUser(); $registration = $this->getDoctrine()->getRepository('AppBundle:Registration')->findOneBy(array('user' => $user, 'convention' => $convention)); $user = $this->getUser(); if (!$registration) { return $this->redirectToRoute('sylius_flow_start', array('scenarioAlias' => 'asamblea')); } if ($registration->getStatus() != Registration::STATUS_OPEN) { return $this->redirectToRoute('registration'); } $participant = new Participant(); $participant->setRegistration($registration); $form = $this->createForm($this->get('ritsiga.participant.form.type'), $participant); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $num_participants = $this->getDoctrine()->getRepository('AppBundle:Participant')->getNumParticipationsTypesAvailables($registration, $participanttype); if ($participanttype && $participanttype->getNumParticipants() > $num_participants) { $participant->setParticipantType($participanttype); $em = $this->getDoctrine()->getManager(); $em->persist($participant); $em->flush(); return $this->redirectToRoute('registration'); } else { $this->addFlash('warning', $this->get('translator')->trans('Sorry, the seats are already occupied')); return $this->redirectToRoute('registration'); } } return $this->render(':frontend/registration:participant.html.twig', array('user' => $user, 'registration' => $registration, 'form' => $form->createView())); }
/** * @Route("/new/{ticket}/ticket", name="participant_new") * Muestra pantalla de nueva inscripción */ public function newParticipantAction(Request $request, Ticket $ticket) { $registration = $this->getRegistration(); if (!$registration) { return $this->redirectToRoute('sylius_flow_start', array('scenarioAlias' => 'asamblea')); } if ($registration->getStatus() != Registration::STATUS_OPEN) { return $this->redirectToRoute('registration'); } $this->denyAccessUnlessGranted(['SEATS_AVAILABLE', 'REGISTRATION_OPEN'], $ticket); $participant = new Participant(); $participant->setRegistration($registration); $form = $this->createForm($this->get('ritsiga.participant.form.type'), $participant); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $participant->setTicket($ticket); $em = $this->getDoctrine()->getManager(); $em->persist($participant); $em->flush(); return $this->redirectToRoute('registration'); } return $this->render(':frontend/registration:participant.html.twig', array('registration' => $registration, 'form' => $form->createView())); }
/** * @Route("/registro", name="registration") * Muestra pantalla de edición del registro */ public function registrationAction(Request $request) { $siteManager = $this->container->get('ritsiga.site.manager'); $convention = $siteManager->getCurrentSite(); $registration = $this->getRegistration(); $user = $this->getUser(); if (!$registration) { return $this->redirectToRoute('sylius_flow_start', array('scenarioAlias' => 'asamblea')); } $participant = new Participant(); $types = $this->getDoctrine()->getRepository('AppBundle:ParticipantType')->findParticipationsTypesAvailables($convention); $types_availables = array(); if ($types) { foreach ($types as $type) { $num_participants = $this->getDoctrine()->getRepository('AppBundle:Participant')->getNumParticipationsTypesAvailables($registration, $type); if ($type && $type->getNumParticipants() > $num_participants) { array_push($types_availables, $type); } } } $participant = new Participant(); $participant->setRegistration($registration); $form = $this->createForm($this->get('ritsiga.participant.form.type'), $participant); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $participant_type = $this->getDoctrine()->getRepository('AppBundle:ParticipantType')->findOneBy(array('id' => $form["participant_type"]->getData())); $num_participants = $this->getDoctrine()->getRepository('AppBundle:Participant')->getNumParticipationsTypesAvailables($registration, $participant_type); if ($participant_type && $participant_type->getNumParticipants() > $num_participants) { $participant->setParticipantType($participant_type); $em = $this->getDoctrine()->getManager(); $em->persist($participant); $em->flush(); } else { $this->addFlash('warning', $this->get('translator')->trans('Sorry, the seats are already occupied')); } } if ($registration->getStatus() == Registration::STATUS_OPEN) { return $this->render(':frontend/registration/status:registration_open.html.twig', array('user' => $user, 'registration' => $registration, 'types' => $types_availables, 'form' => $form->createView())); } if ($registration->getStatus() == Registration::STATUS_CONFIRMED) { return $this->render(':frontend/registration/status:registration_confirmed.html.twig', array('user' => $user, 'registration' => $registration, 'entity_bank' => $this->container->getParameter('entity_bank'), 'organization' => $this->container->getParameter('organization'), 'iban' => $this->container->getParameter('iban'), 'amount' => $registration->getAmount())); } if ($registration->getStatus() == Registration::STATUS_CANCELLED) { return $this->render(':frontend/registration/status:registration_cancelled.html.twig', array('user' => $user, 'registration' => $registration)); } if ($registration->getStatus() == Registration::STATUS_PAID) { $this->addFlash('info', $this->get('translator')->trans('El registro se encuentra pagado y confirmado')); return $this->render(':frontend/registration/status:registration_paid.html.twig', array('user' => $user, 'registration' => $registration, 'entity_bank' => $this->container->getParameter('entity_bank'), 'organization' => $this->container->getParameter('organization'), 'iban' => $this->container->getParameter('iban'), 'amount' => $registration->getAmount())); } }