public function annulerAction(Reservation $reservation) { $user = $this->get('security.context')->getToken()->getUser(); $em = $this->getDoctrine()->getManager(); $request = $this->getRequest(); $session = $this->getRequest()->getSession(); $periode = $reservation->getPack()->getPeriode(); 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); } if ($reservation->getEtat() == 2 && !$reservation->getPack()->getPeriode()->getDepartGarantie()) { $em->persist($periode->setNombreInscription($periode->getNombreInscription() - $reservation->getNombreOccupants())); } $em->persist($reservation->setValidated(NULL)->setEtat(9)->setCommentaire($request->get('commentaire'))); $em->flush(); $this->container->get('mailerservice')->annulation($reservation, 'VO'); $session->getFlashBag()->add('success', "Réservation a été annullée avec succès "); } return $this->redirect($this->generateUrl("back_voyages_organises_reservation_consulter", array('id' => $reservation->getId()))); }