/** * @Security("has_role('ROLE_USER')") * @ParamConverter("colonieMere", options={"mapping": {"colonie_id" : "id"}}) */ public function diviserAction(Colonie $colonieMere, Request $request) { if (!$this->getUser()->canDisplayExploitation($colonieMere->getRuche()->getRucher()->getExploitation()) || !$colonieMere->canBeDivisee()) { throw new NotFoundHttpException('Page inexistante.'); } $colonie = $colonieMere->diviser($this->getDoctrine()->getRepository('KGBeekeepingManagementBundle:Origine')->findOneByLibelle("Division")); $form = $this->createForm(new DiviserType($colonieMere), $colonie); if ($form->handleRequest($request)->isValid()) { $colonieMere->getRuche()->getCorps()->diviser($colonie->getRuche()->getCorps()->getNbnourriture(), $colonie->getRuche()->getCorps()->getNbcouvain()); // La date du remérage est la même que celle de la création de la colonie $colonie->getRemerages()[0]->setDate($colonie->getDateColonie()); // La date de la reine est la même que celle de la création de la colonie $colonie->getRemerages()[0]->getReine()->setAnneeReine($colonie->getDateColonie()); $em = $this->getDoctrine()->getManager(); $em->persist($colonie); $em->persist($colonieMere); $em->flush(); $flash = $this->get('braincrafted_bootstrap.flash'); $flash->success('Colonie divisée avec succès'); return $this->redirect($this->generateUrl('kg_beekeeping_management_view_rucher', array('rucher_id' => $colonie->getRuche()->getRucher()->getId()))); } return $this->render('KGBeekeepingManagementBundle:Colonie:diviser.html.twig', array('form' => $form->createView(), 'colonieMere' => $colonieMere)); }