Ejemplo n.º 1
0
 /**
  * Solo el usuario creador de la inscripción podrá descargar la factura si:
  * - Está pagada.
  * - Están publicadas.
  * - Tiene número de factura.
  *
  * @param string               $attribute
  * @param Participant          $object
  * @param UserInterface|string $user
  *
  * @return bool
  */
 protected function isGranted($attribute, $object, $user = null)
 {
     if (!$user instanceof UserInterface) {
         return false;
     }
     $registration = $object->getRegistration();
     if ($registration->getStatus() !== Registration::STATUS_PAID) {
         return false;
     }
     if (!$registration->getConvention()->isPublishedInvoices()) {
         return false;
     }
     if (empty($object->getInvoiceNumber())) {
         return false;
     }
     return $user == $registration->getUser();
 }
 public function generateInvoice(Participant $participant, &$filename)
 {
     $filename = sprintf('factura-%s-%d-%s.pdf', $participant->getRegistration()->getConvention()->getSlug(), $participant->getRegistration()->getId(), $participant->getSlug());
     $html = $this->twig->render('themes/invoice/invoice.html.twig', array('participant' => $participant, 'registration' => $participant->getRegistration()));
     return $this->loggableGenerator->getOutputFromHtml($html);
 }
 /**
  * @Route("/{id}/certificate", name="acreditation_download")
  */
 public function downloadAcreditationAction(Participant $participant)
 {
     $registration = $participant->getRegistration();
     $this->denyAccessUnlessGranted('REGISTRATION_OWNER', $registration);
     return new Response($this->get('ritsiga.business.document_generator')->generateCredentials($participant, $filename), 200, array('Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment; filename="' . $filename . '"'));
 }
Ejemplo n.º 4
0
 /**
  * @Route("/borrar_inscripcion/{id}", name="participant_delete")
  * Borra la inscripción enviada por argumento
  */
 public function deleteParticipantAction(Participant $participant)
 {
     $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));
     if ($registration->getStatus() == Registration::STATUS_OPEN && $participant->getRegistration() == $registration) {
         $em = $this->getDoctrine()->getManager();
         $em->remove($participant);
         $em->flush();
     }
     return $this->redirectToRoute('registration');
 }