Exemplo n.º 1
0
 /**
  * Deletes a Parametrage entity.
  * 
  * @param Request $request
  * @param Parametrage $parametrage
  */
 public function deleteAction(Request $request, Parametrage $parametrage)
 {
     // TODO: Make version appear as "en cours" on delete confirmed
     $em = $this->getDoctrine()->getManager();
     if ($parametrage == null) {
         throw $this->createNotFoundException("Le réseau  " . $parametrage . getId() . " n'existe pas.");
     }
     if ($request->isMethod('GET')) {
         if ($parametrage->getDeleting()) {
             $currentVersion = $parametrage->getReseau()->getVersions()->last();
             $version = new Version();
             if (!$currentVersion->getEnCours()) {
                 $version->setEnCours('1');
                 $version->setNumero($currentVersion->getNumero() + 1);
                 $version->setReseau($parametrage->getReseau());
                 $parametrage->getReseau()->addVersion($version);
             } else {
                 $version = $currentVersion;
             }
             // On compose à nouveau les liasses qui contienent ce document
             // TODO: à mettre dans une fonction preUpdate (event doctrine)
             $ls = $parametrage->getMeElementOfLiasses();
             foreach ($ls as $param) {
                 $param->removeMyComponent($parametrage);
                 $parametrage->removeMeElementOfLiasse($param);
                 $pdf = $this->composerLiasse($param);
                 $pdf->setCurrent(1);
                 $param->addPdfSource($pdf);
                 $pdf->setParametrage($param);
             }
             $id = $parametrage->getId();
             $em->remove($parametrage);
             $em->flush();
             return new JsonResponse(array('id' => $id, 'status' => 'deleted', 'version' => $version->getNumero()));
         }
         $parametrage->setDeleting(1);
         $em->persist($parametrage);
         $em->flush();
         return new JsonResponse(array('id' => $parametrage->getId(), 'status' => 'marked'));
     }
     return $this->render('DocBundle:parametrage:show.html.twig', array('parametrage' => $parametrage));
 }