/** * 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 . '"')); }
/** * @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'); }