public function createFromPassage(Passage $passage) { $rdv = $passage->getRendezVous(); if ($rdv) { throw new \Exception('Le rendez vous est déjà créé'); } $rdv = new RendezVous(); $rdv->setPassage($passage); $rdv->setTitre(sprintf("%s (%s %s)", $passage->getEtablissementInfos()->getNom(), $passage->getEtablissementInfos()->getAdresse()->getCodePostal(), $passage->getEtablissementInfos()->getAdresse()->getCommune())); $rdv->setDescription(null); $rdv->setLieu(sprintf("%s %s %s", $passage->getEtablissementInfos()->getAdresse()->getAdresse(), $passage->getEtablissementInfos()->getAdresse()->getCodePostal(), $passage->getEtablissementInfos()->getAdresse()->getCommune())); $rdv->removeAllParticipants(); foreach ($passage->getTechniciens() as $technicien) { $rdv->addParticipant($technicien); } $passage->setRendezVous($rdv); if ($passage->getDateDebut() && $passage->getDateFin()) { $rdv->setDateDebut($passage->getDateDebut()); $rdv->setDateFin($passage->getDateFin()); } return $rdv; }
/** * @Route("/calendar/add/libre", name="calendarAddLibre", options={"expose" = "true"}) */ public function calendarAddLibreAction(Request $request) { $dm = $this->get('doctrine_mongodb')->getManager(); $rdv = new RendezVous(); $rdv->setDateDebut(new \DateTime($request->get('start'))); $dateFin = clone $rdv->getDateDebut(); $dateFin = $dateFin->modify("+1 hour"); $rdv->setDateFin($dateFin); if ($request->get('technicien')) { $rdv->addParticipant($dm->getRepository('AppBundle:Compte')->findOneById($request->get('technicien'))); } $form = $this->createForm(new RendezVousType($dm), $rdv, array('action' => $this->generateUrl('calendarAddLibre'), 'method' => 'POST', 'attr' => array('id' => 'eventForm'), 'rdv_libre' => true)); $form->handleRequest($request); if (!$form->isSubmitted() || !$form->isValid()) { return $this->render('calendar/rendezVous.html.twig', array('rdv' => $rdv, 'form' => $form->createView())); } $dm->persist($rdv); $dm->flush(); return new Response(json_encode(array("success" => true))); }