public function annulerAction(BilletterieReservation $reservation) { $user = $this->get('security.context')->getToken()->getUser(); $em = $this->getDoctrine()->getManager(); $request = $this->getRequest(); $session = $this->getRequest()->getSession(); if ($user->getId() == $reservation->getResponsable()->getId()) { foreach ($reservation->getReglements() as $reglement) { $piece = $reglement->getPiece(); $em->persist($piece->setMontant($piece->getMontant() + $reglement->getMontant())->setRegle(FALSE)->setDateReglement(NULL)); $em->remove($reglement); } $em->persist($reservation->setValidated(NULL)->setEtat(9)->setCommentaire($request->get('commentaire'))); $em->flush(); $this->container->get('mailerservice')->annulation($reservation, 'B'); $session->getFlashBag()->add('success', "Réservation a été annullée avec succès "); } return $this->redirect($this->generateUrl("back_billetterie_reservation_consultation", array('id' => $reservation->getId()))); }