/**
  * Route qui génére le livret en bdd
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function genererAction()
 {
     $odm = $this->get('doctrine_mongodb')->getManager();
     $idApprenti = $this->getUser()->getId();
     $livret = new Livret();
     $livret->genererLivret($idApprenti);
     $odm->persist($livret);
     $odm->flush();
     return $this->indexAction();
 }
 public function importCSVAction(Request $request)
 {
     $csvFile = new CSVFile();
     $form = $this->createForm(new CSVFileType(), $csvFile);
     $form->handleRequest($request);
     if ($request->getMethod() == "POST") {
         $file = $csvFile->getCsvFile();
         if ($file->getClientOriginalExtension() != "csv") {
             return $this->render('UtilisateurBundle:Default:importCSV.html.twig', array('form' => $form->createView()));
         }
         // Generate a unique name for the file before saving it
         $fileName = 'Utilisateur.' . $file->getClientOriginalExtension();
         // Move the file to the directory where signatures are stored
         $csvDir = $this->container->getParameter('kernel.root_dir') . '/../web/uploads/csv';
         $file->move($csvDir, $fileName);
         // Update the 'signature' property to store the new file name
         // instead of its contents
         $csvFile->setCsvFile($fileName);
         $odm = $this->get('doctrine_mongodb')->getManager();
         //Parser csv
         if (($handle = fopen($csvDir . '/' . $fileName, "r")) !== FALSE) {
             while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                 $num = count($data);
                 $data[0] = ucwords($data[0]);
                 $data[1] = ucwords($data[1]);
                 $utilisateur = new Utilisateur();
                 $utilisateur->setUsername($data[0] . "." . $data[1]);
                 $utilisateur->setPrenom($data[0]);
                 $utilisateur->setNom($data[1]);
                 $utilisateur->setEmail($data[2]);
                 $utilisateur->setRoles(array($data[3]));
                 $utilisateur->setPlainPassword($data[4]);
                 if ($data[3] !== "ROLE_RD") {
                     if ($data[3] == "ROLE_TUTEUR") {
                         for ($i = 5; $i < $num; $i++) {
                             $utilisateur->setApprentis(array($data[$i]));
                         }
                     } else {
                         if ($data[3] == "ROLE_APPRENTI") {
                             $utilisateur->setTuteur(array($data[5]));
                             $utilisateur->setClasse($data[6]);
                         }
                     }
                 }
                 $utilisateur->setEnabled(true);
                 //Persister l'utilisateur
                 $odm->persist($utilisateur);
                 $odm->flush();
                 if ($data[3] == "ROLE_APPRENTI") {
                     $user = $odm->getRepository("UtilisateurBundle:Utilisateur")->findOneBy(array("email" => $data[2]));
                     //Générer le livret de l'utilisateur
                     $livret = new Livret();
                     $livret->genererLivret($user->getId());
                     //Persister le livret
                     $odm->persist($livret);
                     $odm->flush();
                 }
             }
             fclose($handle);
         }
         $this->associerTuteur();
         return $this->redirect($this->generateUrl("utilisateur_homepage"));
     }
     return $this->render('UtilisateurBundle:Default:importCSV.html.twig', array('form' => $form->createView()));
 }