headers->set('Content-Type', 'text/csv'); return $response; } /** * generar Csv. * * @Route("/generarCsv", name="ajax_generarCsv") * @Method("POST") */ public function ajaxGenerarCsvAction(Request $request) { $nombres_campos = array("idOpsu","identificacion","primerApellido","segundoApellido","primerNombre","segundoNombre","nacionalidad", "genero","estadoCivil","fechaNac","anoGrado","trabaja","estadoRes","telefono","correoElectronico","discapacidad","etnia", "ramaEduc","promNotas","programaAsig","codPrograma","aldeaAsig","periodoAsig","Errores" ); $candidatosNoCargados =json_decode($request->get('candidatosNoCargados'),true); //die(dump($candidatosNoCargados)); // foreach ($candidatosNoCargados as $arregloCandidato ){ // foreach ($arregloCandidato as $clave => $valor ){ // //unset($valor[23]); // if(is_object($valor)){ // $cand[]= $clave; // }else{ // $cand[]=$valor; // } // //// die(dump($cand)); // } // } //die(dump($cand)); foreach ($candidatosNoCargados as $clave => $valor ){ unset($valor[23]); $cand[$clave]=$valor; //die(dump($cand)); //break; } //die(dump($cand)); //die(dump(json_decode($request->get('candidatosNoCargados'),true))); //die(dump($request->get('candidatosNoCargados'))); //$candidatosNoCargados =array(json_decode($request->get('candidatosNoCargados'),true)); //$data[0]= array("1167132","17301568","ALcides","SOLANO","ANA","VIRGINIA","V","F","S","2/17/1986","2003","N","Distrito Capital","4142196033","jacinta.mami@hotmail.com","No Posee1","No Poseee","Educación Comercial, Comercio y Servicios Administrativos","13.50000000","Gestión Ambiental","123","Caracas","II-2016"); //$candidatosNoCargados[1]= array("1167132","17301568","ALcides","SOLANO","ANA","VIRGINIA","V","F","S","2/17/1986","2003","N","Distrito Capital","4142196033","jacinta.mami@hotmail.com","No Posee1","No Poseee","Educación Comercial, Comercio y Servicios Administrativos","13.50000000","Gestión Ambiental","123","Caracas","II-2016"); //die(dump($candidatosNoCargados)); //$candidatosNoCargados[]= array("1167132","17301568","ALcides","SOLANO","ANA","VIRGINIA","V","F","S","2/17/1986","2003","N","Distrito Capital","4142196033","jacinta.mami@hotmail.com","No Posee1","No Poseee","Educación Comercial, Comercio y Servicios Administrativos","13.50000000","Gestión Ambiental","123","Caracas","II-2016"); //$candidatosNoCargados[]= array($cand); //die(dump($candidatosNoCargados)); //die(dump(array("arregloJson"=>$cand,"arregloText"=>$candidatosNoCargados))); $response = $this->get('ubv.csv_constructor'); $response = new CsvResponse($cand,200, $nombres_campos); $response->setFilename("data.csv"); //die(dump($response->getFilename())); //$archivo = $path=$this->get('kernel')->getRootDir() . '/../web'; //die(dump($response->getContent())); return $response; } /** * Lists all Candidato entities. * * @Route("/", name="candidato_index") * @Method("GET") */ public function indexAction() { $em = $this->getDoctrine()->getManager(); $candidatos = $em->getRepository('UBVSurUbvBundle:Candidato')->findAll(); return $this->render('candidato/index.html.twig', array( 'candidatos' => $candidatos, )); } /** * Lists all Candidato a Cargar. * * @Route("/cargar_candidatos", name="candidato_resumen") * @Method("POST") */ public function resumenCargaMasivaAction(Request $request) { //die(dump($request)); // $aspiranteTipo = $request->request->get('candidato_carga_masiva')["aspiranteTipo"]; $form = $this->createForm('UBV\SurUbvBundle\Form\CandidatoCargaMasivaType'); $form->handleRequest($request); $em = $this->getDoctrine()->getManager(); //die(dump($form['file']->getData())); $file=$form['file']->getData(); $aspiranteTipo = $form['aspiranteTipo']->getData(); $rutaListaCandidatos = $file->getPathname(); $candidatosNoCargados = array(); $candidatosCargados = array(); $candidatosExistentes = array(); if (($archivo = fopen($rutaListaCandidatos, "r")) !== FALSE) { $nombres_campos = array("idOpsu","identificacion","primerApellido","segundoApellido","primerNombre","segundoNombre","nacionalidad", "genero","estadoCivil","fechaNac","anoGrado","trabaja","estadoRes","telefono","correoElectronico","discapacidad","etnia", "ramaEduc","promNotas","programaAsig","codPrograma","aldeaAsig","periodoAsig","aspiranteTipo"); $num_campos = count($nombres_campos); $indice = 0; while(($datos = fgetcsv($archivo , 1000 , "," )) !== FALSE) { array_push($datos, $aspiranteTipo); $candidato = $this->arrayCandidatos($nombres_campos, $num_campos, $datos); if(in_array(null, $candidato,true) === true){ $errores = ''; foreach($candidato as $clave => $valor){ if(is_null($valor)){ $error = $clave; if(empty($errores)){ $errores = $error; }else{ $errores = $errores .' - '.$error; } $candidato["Errores"] = $errores; } } $datos[]= $candidato["Errores"]; $candidatosNoCargadosCsv[]=$datos; $candidatosNoCargadosTwig[]=$candidato; //die(dump($candidatosNoCargadosTwig)); }else{ //die(dump($candidato)); $estatusProc = $this->GuardarCandidatoAction($candidato); if($estatusProc === true){ $candidatosCargados[] = $candidato; }else{ $candidatosExistentes[] = $candidato; } } } return $this->render('candidato/resultadoCarga.html.twig', array( 'candidatosCargados' => $candidatosCargados, 'candidatosNoCargadosTwig' => $candidatosNoCargadosTwig, 'candidatosNoCargadosCsv' => $candidatosNoCargadosCsv, 'candidatosExistentes' => $candidatosExistentes, )); } } private function GuardarCandidatoAction($candidato){ $em = $this->getDoctrine()->getManager(); //die(dump($candidato["periodoAsig"])); $existe = $em->getRepository('UBVSurUbvBundle:Candidato')->findCandidatoByIdenProg($candidato); if($existe === false){ $candidatoNuevo = new Candidato(); $candidatoNuevo->setIdOpsu($candidato["idOpsu"]); $candidatoNuevo->setIdentificacion($candidato["identificacion"]); $candidatoNuevo->setPrimerApellido($candidato["primerApellido"]); $candidatoNuevo->setSegundoApellido($candidato["segundoApellido"]); $candidatoNuevo->setPrimerNombre($candidato["primerNombre"]); $candidatoNuevo->setSegundoNombre($candidato["segundoNombre"]); $candidatoNuevo->setDocumentoIdentidadTipo($candidato["nacionalidad"]); $candidatoNuevo->setGenero($candidato["genero"]); $candidatoNuevo->setEstadoCivil($candidato["estadoCivil"]); $candidatoNuevo->setAnoGrado(new \DateTime($candidato["anoGrado"]."-01-01")); $candidatoNuevo->setFechaNacimiento(new \DateTime($candidato["fechaNac"])); $candidatoNuevo->setTrabaja($candidato["trabaja"]); $candidatoNuevo->setEstado($candidato["estadoRes"]); $candidatoNuevo->setTelefono($candidato["telefono"]); $candidatoNuevo->setCorreo($candidato["correoElectronico"]); $candidatoNuevo->setDiscapacidad($candidato["discapacidad"]); $candidatoNuevo->setEtnia($candidato["etnia"]); $candidatoNuevo->setPromedioNota($candidato["promNotas"]); $candidatoNuevo->setPrograma($candidato["programaAsig"]); $candidatoNuevo->setAldea($candidato["aldeaAsig"]); $candidatoNuevo->setPeriodoAcademico($candidato["periodoAsig"]); $candidatoNuevo->setAspiranteTipo($candidato["aspiranteTipo"]); $candidatoNuevo->setCorreoTipo($candidato["correoTipo"]); $candidatoNuevo->setTelefonoCodigoArea($candidato["telefonoCodigoArea"]); $candidatoNuevo->setAspiranteEstatus($candidato["aspiranteEstatus"]); $em->persist($candidatoNuevo); $em->flush(); return true; }else{ return false; } } /** * cargar Candidatos por lotes. * * @Route("/cargaMasiva", name="candidato_carga") * @Method({"GET", "POST"}) */ public function cargaMasivaAction(Request $request) { $form = $this->createForm('UBV\SurUbvBundle\Form\CandidatoCargaMasivaType'); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); die(dump($form['file']->getData())); $file=$form['file']->getData(); $aspiranteTipo = $form['aspiranteTipo']->getData(); $rutaListaCandidatos = $file->getPathname(); if (($archivo = fopen($rutaListaCandidatos, "r")) !== FALSE) { $nombres_campos = array("idOpsu","identificacion","primerApellido","segundoApellido","primerNombre","segundoNombre","nacionalidad", "genero","estadoCivil","fechaNac","anoGrado","trabaja","estadoRes","telefono","correoElectronico","discapacidad","etnia", "ramaEduc","promNotas","programaAsig","codPrograma","aldeaAsig","periodoAsig","aspiranteTipo"); $num_campos = count($nombres_campos); //die(dump($num_campos)); $indice = 0; while(($datos = fgetcsv($archivo , 1000 , "," )) !== FALSE) { array_push($datos, $aspiranteTipo); //die(dump($datos)); $candidato = $this->arrayCandidatos($nombres_campos, $num_campos, $datos); if(isset($candidato)){ $candidatosCargados[] = $candidato; }else{ for ($i = 0; $i < $num_campos; $i++) { $NoCargado[$nombres_campos[$i]] = $datos[$i]; $candidatosNoCargados[$indice]=$NoCargado; }$indice = $indice + 1; } } // foreach($candidatosCargados as $candidatoCargado){ // $candidatoNuevo = new Candidato(); // $candidatoNuevo->setIdOpsu($candidatoCargado["idOpsu"]); // $candidatoNuevo->setIdentificacion($candidatoCargado["identificacion"]); // $candidatoNuevo->setPrimerApellido($candidatoCargado["primerApellido"]); // $candidatoNuevo->setSegundoApellido($candidatoCargado["segundoApellido"]); // $candidatoNuevo->setPrimerNombre($candidatoCargado["primerNombre"]); // $candidatoNuevo->setSegundoNombre($candidatoCargado["segundoNombre"]); // $candidatoNuevo->setDocumentoIdentidadTipo($candidatoCargado["nacionalidad"]); // $candidatoNuevo->setGenero($candidatoCargado["genero"]); // $candidatoNuevo->setEstadoCivil($candidatoCargado["estadoCivil"]); // $candidatoNuevo->setAnoGrado(new \DateTime($candidatoCargado["anoGrado"]."-01-01")); // $candidatoNuevo->setFechaNacimiento(new \DateTime($candidatoCargado["fechaNac"])); // $candidatoNuevo->setTrabaja($candidatoCargado["trabaja"]); // $candidatoNuevo->setEstado($candidatoCargado["estadoRes"]); // $candidatoNuevo->setTelefono($candidatoCargado["telefono"]); // $candidatoNuevo->setCorreo($candidatoCargado["correoElectronico"]); // $candidatoNuevo->setDiscapacidad($candidatoCargado["discapacidad"]); // $candidatoNuevo->setEtnia($candidatoCargado["etnia"]); // $candidatoNuevo->setPromedioNota($candidatoCargado["promNotas"]); // $candidatoNuevo->setPrograma($candidatoCargado["programaAsig"]); // $candidatoNuevo->setAldea($candidatoCargado["aldeaAsig"]); // $candidatoNuevo->setPeriodoAsignado($candidatoCargado["periodoAsig"]); // $candidatoNuevo->setAspiranteTipo($candidatoCargado["aspiranteTipo"]); // $candidatoNuevo->setCorreoTipo($candidatoCargado["correoTipo"]); // $candidatoNuevo->setTelefonoCodigoArea($candidatoCargado["telefonoCodigoArea"]); // $candidatoNuevo->setAspiranteEstatus($candidatoCargado["aspiranteEstatus"]); // // $em->persist($candidatoNuevo); // // } // $em->flush(); } //$response = $this->get('ubv.csv_constructor'); //response = new CsvResponse($candidatosNoCargados,200, $nombres_campos); //$response->setFilename("data.csv"); //$archivo = $path=$this->get('kernel')->getRootDir() . '/../web'; //die(dump($response->getContent())); //return $response; // $this->forward('UBVSurUbvBundle:Candidato:resumenCargaMasiva',array( // 'candidatosCargados'=>$candidatosCargados, // 'candidatosNoCargados'=>$candidatosNoCargados)); //return $this->redirectToRoute('candidato_index'); return $this->redirectToRoute('candidato_resumen',array( 'candidatosCargados' => $candidatosCargados, 'candidatosNoCargados' => $candidatosNoCargados,)); // return $this->render('candidato/resultadoCarga.html.twig', array( // 'candidatosCargados' => $candidatosCargados, // 'candidatosNoCargados' => $candidatosNoCargados, // )); //return $this->redirectToRoute('candidato_carga_resumen',array($candidatosCargados,$candidatosNoCargados)); } return $this->render('candidato/cargaMasiva.html.twig', array( //'candidato' => $candidato, 'form' => $form->createView(), )); } private function arrayCandidatos($nombres_campos, $num_campos, $datos){ for ($i = 0; $i < $num_campos; $i++) { $candidato[$nombres_campos[$i]] = $datos[$i]; } $em = $this->getDoctrine()->getManager(); $datosCandidatos = $em->getRepository('UBVSurUbvBundle:Candidato')->findDatosParaCandidatos($candidato); //die(dump($datosCandidatos)); return $datosCandidatos; } /** * Creates a new Candidato entity. * * @Route("/new", name="candidato_new") * @Method({"GET", "POST"}) */ public function newAction(Request $request) { $candidato = new Candidato(); $form = $this->createForm('UBV\SurUbvBundle\Form\CandidatoType', $candidato); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($candidato); $em->flush(); return $this->redirectToRoute('candidato_show', array('id' => $candidato->getId())); } return $this->render('candidato/new.html.twig', array( 'candidato' => $candidato, 'form' => $form->createView(), )); } /** * Finds and displays a Candidato entity. * * @Route("/{id}", name="candidato_show") * @Method("GET") */ public function showAction(Candidato $candidato) { $deleteForm = $this->createDeleteForm($candidato); return $this->render('candidato/show.html.twig', array( 'candidato' => $candidato, 'delete_form' => $deleteForm->createView(), )); } /** * Displays a form to edit an existing Candidato entity. * * @Route("/{id}/edit", name="candidato_edit") * @Method({"GET", "POST"}) */ public function editAction(Request $request, Candidato $candidato) { $deleteForm = $this->createDeleteForm($candidato); $editForm = $this->createForm('UBV\SurUbvBundle\Form\CandidatoType', $candidato); $editForm->handleRequest($request); if ($editForm->isSubmitted() && $editForm->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($candidato); $em->flush(); return $this->redirectToRoute('candidato_edit', array('id' => $candidato->getId())); } return $this->render('candidato/edit.html.twig', array( 'candidato' => $candidato, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView(), )); } /** * Deletes a Candidato entity. * * @Route("/{id}", name="candidato_delete") * @Method("DELETE") */ public function deleteAction(Request $request, Candidato $candidato) { $form = $this->createDeleteForm($candidato); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->remove($candidato); $em->flush(); } return $this->redirectToRoute('candidato_index'); } /** * Creates a form to delete a Candidato entity. * * @param Candidato $candidato The Candidato entity * * @return \Symfony\Component\Form\Form The form */ private function createDeleteForm(Candidato $candidato) { return $this->createFormBuilder() ->setAction($this->generateUrl('candidato_delete', array('id' => $candidato->getId()))) ->setMethod('DELETE') ->getForm() ; } }