/**
  *
  * Tela de importação de arquivo CSV com registros de Computadores
  */
 public function importarcsvAction(Request $request)
 {
     $form = $this->createFormBuilder()->add('arquivocsv', 'file', array('label' => 'Arquivo', 'attr' => array('accept' => '.csv')))->getForm();
     if ($request->isMethod('POST')) {
         $form->bindRequest($request);
         if ($form['arquivocsv']->getData() instanceof \Symfony\Component\HttpFoundation\File\UploadedFile) {
             // Executa a importação do arquivo - grava no diretório web/upload/migracao
             $dirMigracao = realpath(dirname(__FILE__) . '/../../../../web/upload/migracao/');
             $fileName = 'Comp_U' . $this->getUser()->getIdUsuario() . 'T' . time() . '.csv';
             $form['arquivocsv']->getData()->move($dirMigracao, $fileName);
             $em = $this->getDoctrine()->getManager();
             // Abre o arquivo salvo e começa a rotina de importação dos dados do CSV
             $csv = file($dirMigracao . '/' . $fileName);
             foreach ($csv as $k => $v) {
                 // Valida a linha
                 $v = explode(';', trim(str_replace(array('"', '\\N'), '', $v)));
                 if (count($v) != 13) {
                     continue;
                 }
                 $so = $this->getDoctrine()->getRepository('CacicCommonBundle:So')->find((int) $v[1]);
                 $rede = $this->getDoctrine()->getRepository('CacicCommonBundle:Rede')->findOneByTeIpRede($v[2]);
                 $comp = new Computador();
                 if ($so) {
                     $comp->setIdSo($so);
                 }
                 if ($rede) {
                     $comp->setIdRede($rede);
                 }
                 $comp->setTeNodeAddress($v[0]);
                 $comp->setTePalavraChave($v[3]);
                 $comp->setTeIpComputador($v[4]);
                 $comp->setDtHrInclusao($v[5] ? new \Datetime($v[5]) : null);
                 $comp->setDtHrUltAcesso($v[6] ? new \Datetime($v[6]) : null);
                 $comp->setTeVersaoCacic($v[7]);
                 $comp->setTeVersaoGercols($v[8]);
                 $comp->setDtHrColetaForcadaEstacao($v[9] ? new \Datetime($v[9]) : null);
                 $comp->setTeNomesCurtosModulos($v[10]);
                 $comp->setIdConta($v[11]);
                 $comp->setNmComputador($v[12]);
                 $em->persist($comp);
             }
             $em->flush();
             // Persiste os dados dos Computadores
             $this->get('session')->getFlashBag()->add('success', 'Importação realizada com sucesso!');
         } else {
             $this->get('session')->getFlashBag()->add('error', 'Arquivo CSV inválido!');
         }
         return $this->redirect($this->generateUrl('cacic_migracao_computador'));
     }
     return $this->render('CacicCommonBundle:Computador:importarcsv.html.twig', array('form' => $form->createView()));
 }