function create(Etablissement $etablissement, Contrat $contrat) { $passage = new Passage(); $passage->setEtablissement($etablissement); foreach ($contrat->getPrestations() as $prestationContrat) { $prestation = clone $prestationContrat; $prestation->setNbPassages(0); $passage->addPrestation($prestation); } $previousPassage = null; foreach ($contrat->getPassagesEtablissementNode($etablissement)->getPassagesSorted(true) as $p) { if ($p->getId() != $passage->getId() && count($p->getTechniciens())) { $previousPassage = $p; break; } } if ($previousPassage) { foreach ($previousPassage->getTechniciens() as $tech) { $passage->addTechnicien($tech); } } elseif ($contrat->getTechnicien()) { $passage->addTechnicien($contrat->getTechnicien()); } foreach ($contrat->getProduits() as $produitContrat) { $produit = clone $produitContrat; $produit->setNbUtilisePassage(0); $passage->addProduit($produit); } $passage->setContrat($contrat); return $passage; }
/** * @Route("/passage/visualisation/{id}", name="passage_visualisation") * @ParamConverter("passage", class="AppBundle:Passage") */ public function visualisationAction(Request $request, Passage $passage) { if ($passage->getRendezVous()) { return $this->redirectToRoute('calendarRead', array('id' => $passage->getRendezVous()->getId())); } return $this->forward('AppBundle:Calendar:calendarRead', array('passage' => $passage->getId())); }