/**
* @Route("/taches/edition/{slug}")
* @Template()
*/
public function editAction($slug, Request $request)
{
if (!empty($slug)) {
$session = $request->getSession();
//0 valeur par defaut si vide
$id_user = $session->get('user', 0);
if ($id_user == 0) {
$request->getSession()->getFlashBag()->add('error', 'OULAH ! Il s\'est passé un truc pas net O.o. Tu t\'es déco ?');
return $this->redirect($this->generateUrl('corvee_taches_homepage', array()));
}
$em = $this->getDoctrine()->getManager();
$tache = $em->getRepository('Corvees\\TachesBundle\\Entity\\Tache')->findOneBySlug($slug);
if (!empty($tache)) {
$user = $em->getRepository('Corvees\\TachesBundle\\Entity\\User')->find($id_user);
$tache->setFkIntervenant($user);
$tache->setDateEffectue(new \Datetime());
$form = $this->get('form.factory')->create(new TacheEditType(), $tache);
if ($form->handleRequest($request)->isValid()) {
$difference = $tache->getDateCreation()->diff($tache->getDateEffectue());
$difference = $difference->format("%Y-%m-%d %H:%i:%s");
$difference = new \DateTime($difference);
$tache->setTemps($difference);
$em = $this->getDoctrine()->getManager();
$em->persist($tache);
$em->flush();
$request->getSession()->getFlashBag()->add('notice', 'Tache bien enregistrée.');
return $this->redirect($this->generateUrl('corvee_taches_homepage', array()));
}
return array('form' => $form->createView(), 'tache' => $tache, 'route' => 'formulaire_tache_edit');
}
}
}