<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use App\Entity\Recluta;
use App\Entity\ReclutaProceso;
//use App\Entity\ReclutaProcesoPregunta;
use App\Entity\TestReclutaProcesoPregunta;
use App\Entity\NmclDominioLocalizacion;
use Symfony\Contracts\Translation\TranslatorInterface;
use App\Enum\VolverPresentarseEnum;
use App\Enum\CausaNoIdoneoEnum;
class AspirantesController extends RegistrantesController
{
protected $procesoActivo = null;
public function registroLineaAction()
{
$em = $this ->em;
$allow=true;
$msg='';
if (!$this->procesoActivo)
{
$this->procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
}
$procesoActivo = $this->procesoActivo;
if (!$procesoActivo)
{
$allow=false;
$msg = 'No hay ningĂșn proceso activo para el registro';
}
else
{
$hoy = new \DateTime();
if ($hoy<$procesoActivo->getFechaInicioRegistro() || $hoy>$procesoActivo->getFechaFinRegistro())
{
$allow=false;
$msg = 'El perĂodo de registro es desde '.$procesoActivo->getFechaInicioRegistro()->format('d/m/Y H:m').' hasta '.$procesoActivo->getFechaFinRegistro()->format('d/m/Y H:m');
}
}
if (!$allow)
{
return $this->render('Aspirantes/registroenlinea.html.twig',
array('allow'=>$allow, 'msg'=>$msg, 'tiempoTest'=>0, 'distintivo'=>''));
}
$regiones = $em->getRepository('App\\Entity\\NmclDominioLocalizacion')
->createQueryBuilder('r')
->leftJoin('r.nivelLocalizacion','nivel')
->leftJoin('nivel.localizacion','localizacion')
->where('localizacion.id=1')
->andWhere('nivel.nivel=1')
->orderBy('r.valor')
->getQuery()->getResult();
$provincias = $em->getRepository('App\\Entity\\NmclDominioLocalizacion')
->createQueryBuilder('r')
->leftJoin('r.nivelLocalizacion','nivel')
->leftJoin('nivel.localizacion','localizacion')
->where('localizacion.id=1')
->andWhere('nivel.nivel=2')
->orderBy('r.valor')
->getQuery()->getResult();
$cantones = $em->getRepository('App\\Entity\\NmclDominioLocalizacion')
->createQueryBuilder('r')
->leftJoin('r.nivelLocalizacion','nivel')
->leftJoin('nivel.localizacion','localizacion')
->where('localizacion.id=1')
->andWhere('nivel.nivel=3')
->orderBy('r.valor')
->getQuery()->getResult();
$parroquias = $em->getRepository('App\\Entity\\NmclDominioLocalizacion')
->createQueryBuilder('r')
->leftJoin('r.nivelLocalizacion','nivel')
->leftJoin('nivel.localizacion','localizacion')
->where('localizacion.id=1')
->andWhere('nivel.nivel=4')
->orderBy('r.valor')
->getQuery()->getResult();
$tiempoTest = $procesoActivo->getMinutosTest();
/* $preguntasProcesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamientoPregunta')
->createQueryBuilder('r')
->leftJoin('r.proceso', 'proceso')
->leftJoin('r.pregunta', 'pregunta')
->where('proceso.activo=true')
->select('pregunta.id')
->getQuery()->getDql();
$preguntasTest = $em->getRepository('App\\Entity\\PreguntaTest')
->createQueryBuilder('p')
->leftJoin('p.etapa', 'etapa')
->orderBy('etapa.orden')
->where('p.id in ('.$preguntasProcesoActivo.')')
->getQuery()->getResult();
*/
$preguntasTest = $em->getRepository('App\\Entity\\TestPregunta')
->createQueryBuilder('p')
->innerJoin('p.criterio', 'criterio')
->innerJoin('criterio.eje', 'eje')
->innerJoin('eje.sistema', 'sistema')
->innerJoin('sistema.proceso', 'proceso')
->where('proceso.activo = true')
->getQuery()->getResult();
shuffle($preguntasTest);
return $this->render(
'Aspirantes/registroenlinea.html.twig',
array(
'allow' => $allow, 'regiones'=>$regiones, 'provincias'=>$provincias,
'cantones' => $cantones,'parroquias'=>$parroquias,
// 'centrosMovilizacion' => $centrosMovilizacion,
'preguntas' => $preguntasTest,
'tiempoTest' => $tiempoTest,
'distintivo' => '',
'proceso' => $procesoActivo,
)
);
}
public function verificaIdentidadAction($identificacion)
{
$data = array('ok'=>true, 'idoneo'=>true);
$em = $this ->em;
if (!$this->procesoActivo)
{
$this->procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
}
$procesoActivo = $this->procesoActivo;
$recluta = $em->getRepository('App\\Entity\\Recluta')->findOneBy(array('identificacion'=>$identificacion));
if ($recluta)
{
$ret = $this->puedeRegistrarse($recluta, $procesoActivo);
// $data['idoneo'] = true; //WILLY: Usar esta linea para probar sin usar los servicios
$data['idoneo'] = $ret['ok'];
$data['msg'] = $ret['msg'];
$data['causa'] = $ret['causa'];
$data['reclutaID']=$recluta->getId();
$data['procesoId'] = $ret['procesoId'];
/*if($ret['causa']=='registrado')
return $this->redirect($this->generateUrl('crud_plain_show', array('routeClassName'=>'reclutaproceso', 'id'=>$ret['procesoId'])));
*/
$data['cedula']=$recluta->getIdentificacion();
$data['nombres']=$recluta->getNombres();
$data['apellidoP']=$recluta->getApellidoPaterno();
$data['apellidoM']=$recluta->getApellidoMaterno();
$data['edad']=$recluta->getEdad();
$data['edadString']=$recluta->getEdadString();
$data['sexo']=$recluta->getSexo();
$data['estadoCivil']=$recluta->getEstadoCivil();
$data['estatura']=$recluta->getEstatura();
$data['telefono']=$recluta->getTelefono();
$data['telefonoEmergencias']=$recluta->getTelefonoEmergencias();
$data['email']=$recluta->getEmail();
$data['fechaNacimiento']=$recluta->getFechaNacimiento()->format('d/m/Y');
$data['paisNacimiento']=$recluta->getPaisNacimiento();
$data['email']=$recluta->getEmail();
$data['telefono']=$recluta->getTelefono();
if ($recluta->getLugarNacimiento())
{
$data['parroquiaNacimiento']=$recluta->getLugarNacimiento();
$data['cantonNacimiento']=$data['parroquiaNacimiento']->getDominioPadre();
$data['provinciaNacimiento']=$data['cantonNacimiento']->getDominioPadre();
$data['regionNacimiento']=$data['provinciaNacimiento']->getDominioPadre();
$data['parroquiaNacimiento']=$data['parroquiaNacimiento']->__toString();
$data['cantonNacimiento']=$data['cantonNacimiento']->__toString();
$data['provinciaNacimiento']=$data['provinciaNacimiento']->__toString();
$data['regionNacimiento']=$data['regionNacimiento']->__toString();
}
}
if ($data['idoneo'])
{
// if (true) //WILLY: Usar esta lĂnea para probar sin usar los servicios
if ($this->verificaIdentidad($data, $identificacion, $procesoActivo->getFechaAcuartelamiento()))
{
// if (true) //WILLY: Usar esta lĂnea para probar sin usar los servicios
if (false)
{
$data['cedula'] = $identificacion;
$data['nombres'] = 'nombres';
$data['fechaNacimiento'] = '04/12/1972';
$data['edad'] = '20';
$data['edadString'] = 'edadString';
$data['lugarNacimientoStr'] = 'lugarNacimientoStr';
$data['sexo'] = 'Masculino';
$data['estadoCivil'] = 'estadoCivil';
$data['paisNacimiento'] = 'paisNacimiento';
}
$data['reclutaID'] = $this->salvaRecluta($data);
// if (false) //WILLY: Usar esta lĂnea para probar sin usar los servicios
if (!$this->edadValida($data['fechaNacimiento'], $procesoActivo))
{
$data['idoneo']=false;
$data['causa']= CausaNoIdoneoEnum::EDAD;
$data['volverPresentarse']='PROXIMO';
$data['msg']=$this->translator->trans('noidoneo.causa.edad',array(),'crud');
$data['fechaResultado'] = new \DateTime();
}
$this->salvaReclutaProceso($data);
}
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function verificaAntecedentesAction($identificacion)
{
$data = array('ok'=>true, 'idoneo'=>true, 'cedula'=>$identificacion);
$em = $this ->em;
if (!$this->procesoActivo)
{
$this->procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
}
$proceso = $this->procesoActivo;
$reclutaBajas = $em->getRepository('App\\Entity\\ReclutaBajas')->findOneBy(array('identificacion' => $identificacion));
$bajasPermitidas = $proceso->getBajasPermitidas();
if ($reclutaBajas && $reclutaBajas->getNumeroBajas() > $bajasPermitidas)
{
$data['ok']=true;
$data['idoneo']=false; //no tiene antecedentes
$data['msg']=$this->translator->trans('noidoneo.causa.bajas',array(),'crud');
$data['antecedente'] = 5; //pendiente
}
else
{
/*** BEGIN CONSULTAR SERVICIO WEB POLICIA NACIONAL ***/
$data['ok']=true; //se pudo comunicar con el ws
$data['idoneo']=true; //no tiene antecedentes
$data['antecedente'] =0; //NO tiene problemas
// $this->callPolice($identificacion, $data, false); //WILLY usar esta linea para probar sin consumir el servicio
$this->callPolice($identificacion, $data, true);
}
if ($data['ok'])
{
$data['fechaConsultaAntecedentes'] = new \DateTime();
if (!$data['idoneo'])
{
$data['resultadosAntecedentes'] = json_encode($data['antecedente']);
$data['causaRechazo'] = CausaNoIdoneoEnum::POLICIA;
$data['fechaResultado'] = new \DateTime();
$data['volverPresentarse']='PROXIMO';
}
$this->salvaReclutaProceso($data);
unset($data['resultadosAntecedentes']);
unset($data['fechaConsultaAntecedentes']);
unset($data['causaRechazo']);
unset($data['fechaResultado']);
unset($data['volverPresentarse']);
}
else
{
$data['msg']= $this->translator->trans('noidoneo.causa.network.policia',array(),'crud');
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function verificaEstudiosAction($identificacion)
{
$data = array('ok'=>true, 'cedula'=>$identificacion);
/*** BEGIN CONSULTAR SERVICIO WEB MIN EDUCACION ***/
$data['ok']=true; //se pudo comunicar con el ws
$data['estudios'] = array();
//$data['estudios'][]=array('anno'=>2013, 'institucion'=>'Colegio XXX', 'titulo'=>'Ingenieron mecĂĄnico');
/*** END CONSULTAR SERVICIO WEB MIN EDUCACION ***/
// $this->callMinEducacion($identificacion, $data, false); //WILLY usar esta lĂnea para probar sin consumir el servicio
$this->callMinEducacion($identificacion, $data);
if ($data['ok'])
{
$data['resultadosEstudios'] = json_encode($data['estudios']);
$data['fechaConsultaEstudios'] = new \DateTime();
$this->salvaReclutaProceso($data);
unset($data['resultadosEstudios']);
unset($data['fechaConsultaEstudios']);
}
else
{
$data['msg']=$this->translator->trans('noidoneo.causa.network.educacion',array(),'crud');
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
private function puedeRegistrarse($recluta, $proceso)
{
$em = $this ->em;
$ret = array();
$ret['procesoId']=0;
//buscar al recluta en procesos con resultado NUNCA MĂS
$procesoRecluta = $em->getRepository('App\\Entity\\ReclutaProceso')
->createQueryBuilder('r')
->leftJoin('r.recluta', 'recluta')
->where('recluta.id=:RECLUTA')
->andwhere('r.idoneo=false')
->andwhere('r.volverPresentarse=:TEXTO')
->setParameter('RECLUTA',$recluta->getId())
->setParameter('TEXTO','NUNCA')
->getQuery()->getOneOrNullResult();
if ($procesoRecluta)
{
$ret['ok']=false;
$ret['causa']='nunca';
$ret['msg']=$this->translator->trans('noidoneo.causa.nunca',array(),'crud');
return $ret;
}
//buscar al recluta en el proceso activo
$procesoRecluta = $em->getRepository('App\\Entity\\ReclutaProceso')
->createQueryBuilder('r')
->leftJoin('r.procesoReclutamiento', 'proceso')
->leftJoin('r.recluta', 'recluta')
->where('recluta.id=:RECLUTA')
->andWhere('proceso.activo=true')
->setParameter('RECLUTA',$recluta->getId())
->getQuery()->getOneOrNullResult();
if ($procesoRecluta)
{
if ($procesoRecluta->getIdoneo())
{
if ($procesoRecluta->getFechaResultado())
{
$ret['ok']=false;
$ret['msg'] = $this->translator->trans('noidoneo.causa.aceptado',array(),'crud');
$ret['causa']='aceptado';
}
else
if ($procesoRecluta->getTurno())
{
$ret['ok']=false;
$ret['msg'] = $this->translator->trans('noidoneo.causa.registrado',array(),'crud');
$ret['causa']='registrado';
$ret['procesoId']=$procesoRecluta->getId();
}
else
{
$ret['ok']=true;
$ret['msg'] = 'YA REGISTRADO';
$ret['causa']=null;
}
}
else
{
if ($procesoRecluta->getFechaResultado())
{
if ($procesoRecluta->getVolverPresentarse()==VolverPresentarseEnum::MISMO)
{
$ret['ok']=true;
$ret['msg'] = '';
$ret['causa']=null;
}
elseif ($procesoRecluta->getVolverPresentarse()==VolverPresentarseEnum::PROXIMO)
{
$ret['ok']=false;
$ret['msg'] = $this->translator->trans('noidoneo.causa.proxproceso',array(),'crud');
$ret['causa']='proxproceso';
}
}
else
{
$ret['ok']=true;
$ret['causa']=null;
$ret['msg']='NO IDONEO';
}
}
return $ret;
}
//buscar al recluta en procesos anteriores del mismo año del activo con resultado no idoneo confirmado
//(a) En el mismo proceso (b) En siguiente proceso
/*$procesoRecluta = $em->getRepository('App\\Entity\\ReclutaProceso')
->createQueryBuilder('r')
->leftJoin('r.procesoReclutamiento', 'proceso')
->leftJoin('r.recluta', 'recluta')
->where('recluta.id=:RECLUTA')
->andWhere('proceso.activo=false')
->andWhere('r.idoneo=false')
->andWhere('r.fechaResultado is not null')
->andWhere('proceso.anno=:ANNO')
->setParameter('RECLUTA',$recluta->getId())
->setParameter('ANNO',$proceso->getAnno())
->getQuery()->getOneOrNullResult();
if ($procesoRecluta && $procesoRecluta->getVolverPresentarse()->getValue()==VolverPresentarseEnum::PROXIMO)
{
$ret['ok']=false;
$ret['msg'] = $this->translator->trans('noidoneo.causa.proxproceso');
$ret['causa']='proxproceso';
return $ret;
}*/
$ret['ok']=true;
$ret['causa']=null;
$ret['msg']='';
return $ret;
}
private function edadValida($fechaNacimiento, $proceso)
{
$minEdad = 18;
$maxEdadAnnos = 22;
$maxEdadMeses = 11;
$maxEdadDias = 29;
$fechaAcuartelamiento= date_format($proceso->getfechaAcuartelamiento(),'d/m/Y');
$edad=$this->calculaEdad($fechaAcuartelamiento, $fechaNacimiento);
$edad = explode('/',$edad);
return ($edad[0]>=$minEdad && $edad[0]<$maxEdadAnnos); // && ($edad[0]=$maxEdadAnnos && $edad[1]<=$maxEdadMeses && $edad[2]<=$maxEdadDias));
}
public function registroSalvarEncuestaAction()
{
try
{
$data = $this->request->get('encuesta');
$id = $this->salvaReclutaProceso($data);
$data = array('ok'=>true, 'id'=>$id);
}
catch (\RuntimeException $e)
{
$data = array('ok'=>false, 'msg'=>'No se pudo grabar la operaciĂłn. Intente nuevamente mĂĄs tarde. '.$e->getMessage());
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function registroSalvarAction()
{
try
{
$data = $this->request->get('form');
$id = $this->salvaReclutaProceso($data);
$this->salvaRespuestas($data);
if ($data['gameover']=='completed' || $data['intentos']==3)
$data = array('ok'=>true, 'id'=>$id);
else
$data = array('ok'=>false, 'id'=>$id);
}
catch (\RuntimeException $e)
{
$data = array('ok'=>false, 'msg'=>'No se pudo grabar la operaciĂłn. Intente nuevamente mĂĄs tarde.');
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function salvaReclutaAction()
{
$data = $this->request->get('recluta');
$this->salvaRecluta($data);
//validar cupos para el sexo
$ret = array('ok'=>true, 'hayCupos' => false);
if (isset($data['sexo']))
{
$em = $this ->em;
if (!$this->procesoActivo)
{
$this->procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
}
$procesoActivo = $this->procesoActivo;
$fecha = $procesoActivo->getFechaAcuartelamiento();
$fechaFin = $procesoActivo->getFechaFinDias();
$htmlFechas = '';
$htmlCentros = '';
while ($fecha<=$fechaFin)
{
$centros = $this->getCentrosConCupo($fecha, $data['sexo']);
if ($centros)
{
$ret['hayCupos'] = true;
$htmlFechas .= '<option value="'.$fecha->format('Y-m-d').'">'.$this->dateToTxt($fecha).'</option>';
if (!$htmlCentros)
{
$htmlCentros = $centros;
}
}
$fecha->add(new \DateInterval('P1D'));
}
$ret['fechas'] = $htmlFechas;
$ret['centros'] = $htmlCentros;
}
$data = new Response(json_encode($ret));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function dateToTxt($field)
{
// $date = date_format($field, 'Y-m-d');
if($field){
$diaSemana = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Såbado'];
$diaSemana = $diaSemana[$field->format('w')];
$mes = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
$mes = $mes[$field->format('n')-1];
return $diaSemana.' '.date_format($field,'d').' de '.$mes.' del '.date_format($field,'Y');
}else{
return 'NO DEFINIDO';
}
}
public function getCentrosConCupoAction($fecha, $sexo)
{
//validar cupos para el sexo y fecha
$fecha = new \DateTime($fecha);
$data = ['centros' => $this->getCentrosConCupo($fecha, $sexo)];
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
private function getCentrosConCupo($fecha, $sexo)
{
$em = $this ->em;
$conn = $em->getConnection();
if (!$this->procesoActivo)
{
$this->procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
}
$procesoActivo = $this->procesoActivo;
$dias = 2;//$procesoActivo->getDuracion();
if ($sexo=='Masculino')
{
$field = 'cupo_masculino';
}
else
{
$field = 'cupo_femenino';
}
//$sql = "select distinct cm.id as id, prc.nombre_lugar ||' - '|| cm.direccion_acuartelamiento as nombre from proceso_reclutamiento_lugar_base prc inner join centro_movilizacion cm on cm.id = prc.lugar where prc.proceso=".$procesoActivo->getId()." and ceiling(prc.".$field."/".$dias.".0)>(select count(rp.id) from recluta_proceso rp inner join recluta rec on rec.id=rp.recluta where prc.proceso=rp.proceso and rp.proceso=".$procesoActivo->getId()." and prc.lugar=rp.centro_movilizacion and rec.sexo='".$sexo."' and rp.fecha_asignacion<='".$fecha->format('Y-m-d H:i:s')."') order by prc.nombre_lugar ||' - '|| cm.direccion_acuartelamiento";
$sql = "select distinct cm.id as id, prc.nombre_lugar ||' - '|| cm.direccion_acuartelamiento as nombre from proceso_reclutamiento_lugar_base prc inner join centro_movilizacion cm on cm.id = prc.lugar where prc.proceso=".$procesoActivo->getId()." and prc.".$field.">(select count(rp.id) from recluta_proceso rp inner join recluta rec on rec.id=rp.recluta where prc.proceso=rp.proceso and rp.proceso=".$procesoActivo->getId()." and prc.lugar=rp.centro_movilizacion and rec.sexo='".$sexo."' and rp.fecha_asignacion<='".$fecha->format('Y-m-d H:i:s')."') order by prc.nombre_lugar ||' - '|| cm.direccion_acuartelamiento";
$this->logger->info('*********RESULTADO CUPO'.$sql);
$query = $conn->executeQuery($sql);
// $query->execute();
$prc = $query->fetchAllAssociative();
$html = '';
if (!empty($prc))
{
$html .= '<option value="">-- Seleccione --</option>';
foreach ($prc as $centro)
{
$html .= '<option value="'.$centro['id'].'">'.$centro['nombre'].'</option>';
}
}
return $html;
}
private function salvaRecluta($data)
{
$em = $this ->em;
$recluta = $em->getRepository('App\\Entity\\Recluta')->findOneBy(array('identificacion'=>$data['cedula']));
if (!$recluta)
{
$recluta= new Recluta();
$recluta->setIdentificacion($data['cedula']);
$recluta->setNombres($data['nombres']);
$recluta->setFechaRegistro(new \DateTime());
if($data['fechaNacimiento'])
$recluta->setFechaNacimiento(\DateTime::createFromFormat('d/m/Y', $data['fechaNacimiento']));
$recluta->setEstadoCivil($data['estadoCivil']);
$recluta->setPaisNacimiento($data['paisNacimiento']);
if (isset($data['parroquiaNacimiento']) && $data['parroquiaNacimiento'])
{
/*$parroquia = $em->getRepository('App\\Entity\\NmclDominioLocalizacion')
->createQueryBuilder('r')
->leftJoin('r.nivelLocalizacion','nivel')
->leftJoin('nivel.localizacion','localizacion')
->where('localizacion.id=1')
->andWhere('nivel.nivel=4')
->andWhere('upper(r.valor)=:VALOR')
->setParameter('VALOR',strtoupper($data['parroquiaNacimiento']))
->getQuery()->getOneOrNullResult();
*/
$parroquia = $em->getRepository('App\\Entity\\NmclDominioLocalizacion')
->createQueryBuilder('r')
->leftJoin('r.nivelLocalizacion','nivel')
->leftJoin('nivel.localizacion','localizacion')
->leftJoin('r.dominioPadre','dominioPadre')
->where('localizacion.id=1')
->andWhere('nivel.nivel=4')
->andWhere('upper(r.valor)=:VALOR')
->setParameter('VALOR',strtoupper($data['provinciaNacimiento']))
->andWhere('upper(dominioPadre.valor)=:VALOR2')
->setParameter('VALOR2',strtoupper($data['parroquiaNacimiento']))
->getQuery()->getOneOrNullResult();
if($parroquia)
$recluta->setLugarNacimiento($parroquia);
}
$recluta->setLugarNacimientoStr($data['lugarNacimientoStr']);
}
if (isset($data['edad']))
$recluta->setEdad($data['edad']);
if (isset($data['edadString']))
$recluta->setEdadString($data['edadString']);
/*if (isset($data['apellidoP']))
$recluta->setApellidoPaterno($data['apellidoP']);
if (isset($data['apellidoM']))
$recluta->setApellidoMaterno($data['apellidoM']);*/
if (isset($data['telefono']))
$recluta->setTelefono($data['telefono']);
if (isset($data['email']))
$recluta->setEmail($data['email']);
if (isset($data['telefonoEmergencias']))
$recluta->setTelefonoEmergencias($data['telefonoEmergencias']);
if (isset($data['estatura']) && $data['estatura'])
$recluta->setEstatura($data['estatura']);
//$this->logger->info('*********Sexo'.$data['sexo']);
if (isset($data['sexo']))
$recluta->setSexo($data['sexo']);
if (isset($data['fotoCedula']))
$recluta->setFotoCedula($data['fotoCedula']);
if(isset($data['estatura']))
$recluta->setEstatura($data['estatura']==''?null:$data['estatura']);
$em->persist($recluta);
$em->flush();
return $recluta->getId();
}
public function salvaReclutaProcesoAction()
{
$data = $this->request->get('form');
$this->salvaReclutaProceso($data);
$data = array('ok'=>true);
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
private function salvaReclutaProceso(&$data)
{
$em = $this ->em;
$recluta = $em->getRepository('App\\Entity\\Recluta')->findOneBy(array('identificacion'=>$data['cedula']));
$procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')
->findOneBy(array('recluta'=>$recluta->getId(), 'procesoReclutamiento'=>$procesoActivo->getId()));
if (!$reclutaProceso)
{
$reclutaProceso= new ReclutaProceso();
$reclutaProceso->setRecluta($recluta);
$reclutaProceso->setFechaRegistro(new \DateTime());
$reclutaProceso->setProcesoReclutamiento($procesoActivo);
}
$data['intentos'] = 3 - $reclutaProceso->getIntentos();
if (isset($data['fechaConsultaAntecedentes']))
$reclutaProceso->setFechaConsultaAntecedentes($data['fechaConsultaAntecedentes']);
if (isset($data['fechaConsultaEstudios']))
$reclutaProceso->setFechaConsultaEstudios($data['fechaConsultaEstudios']);
if (isset($data['geometria']))
$reclutaProceso->setGeometria($data['geometria']);
if (isset($data['residenciaEcuador']) && $data['residenciaEcuador'])
{
$reclutaProceso->setPaisResidencia('Ecuador');
if (isset($data['callePrincipal']))
$reclutaProceso->setCallePrincipalResidencia($data['callePrincipal']);
if (isset($data['calleSecundaria']))
$reclutaProceso->setCalleSecundariaResidencia($data['calleSecundaria']);
if (isset($data['nroCasa']))
$reclutaProceso->setNumeroCasa($data['nroCasa']);
if (isset($data['parroquiaResidencia']))
{
$localizacion =$em->getRepository('App\\Entity\\NmclDominioLocalizacion')->find($data['parroquiaResidencia']);
$reclutaProceso->setLugarResidencia($localizacion);
}
}
else
{
if (isset($data['paisResidencia']))
$reclutaProceso->setPaisResidencia($data['paisResidencia']);
}
if (isset($data['referenciaResidencia']))
$reclutaProceso->setReferencias($data['referenciaResidencia']);
if (isset($data['causa']) && $data['causa'])
$reclutaProceso->setCausaRechazo($data['causa']);
if (isset($data['volverPresentarse']))
$reclutaProceso->setVolverPresentarse($data['volverPresentarse']);
if (isset($data['idoneo']))
$reclutaProceso->setIdoneo($data['idoneo']);
if (isset($data['fechaAsignacion']))
{
$reclutaProceso->setFechaAsignacion(new \DateTime($data['fechaAsignacion']));
}
if (isset($data['fechaResultado']))
$reclutaProceso->setFechaResultado($data['fechaResultado']);
if (isset($data['resultadosAntecedentes']))
$reclutaProceso->setResultadosAntecedentes($data['resultadosAntecedentes']);
if (isset($data['resultadosEstudios']))
$reclutaProceso->setResultadosEstudios($data['resultadosEstudios']);
$centro = null;
if (isset($data['centroMovilizacion']))
{
$centro = $em->getRepository('App\\Entity\\CentroMovilizacion')->find($data['centroMovilizacion']);
$reclutaProceso->setCentroMovilizacion($centro);
$base = $em->getRepository('App\\Entity\\ProcesoReclutamientoCentro')->findOneBy(['lugar'=>$centro->getId(), 'proceso'=>$procesoActivo->getId()]);
if ($base)
{
$reclutaProceso->setBaseMovilizacion($base->getBase());
}
}
if (isset($data['gameover']))
{
$intento = $reclutaProceso->getIntentos()+1;
$data['intentos']=$intento;
$reclutaProceso->setIntentos($intento);
if ($intento==1)
$reclutaProceso->setFechaIntento1(new \DateTime());
elseif ($intento==2)
$reclutaProceso->setFechaIntento2(new \DateTime());
else
{
$reclutaProceso->setFechaIntento3(new \DateTime());
if ($data['gameover']=='gameover')
{
$reclutaProceso->setIdoneo(false);
$reclutaProceso->setCausaRechazo(CausaNoIdoneoEnum::PSICOLOGICA);
$reclutaProceso->setFechaResultado(new \DateTime());
$reclutaProceso->setObservaciones('No pudo completar el test psicolĂłgico en 3 intentos');
$reclutaProceso->setVolverPresentarse(VolverPresentarseEnum::PROXIMO);
}
}
if ($data['gameover']=='completed')
{
if ($centro && $procesoActivo)
{
$procesoCentro = $em->getRepository('App\\Entity\\ProcesoReclutamientoCentro')
->findOneBy(array('lugar'=>$centro->getId(),'proceso'=>$procesoActivo->getId()));
if ($procesoCentro)
{
$turno = $procesoCentro->getTurno()+1;
$procesoCentro->setTurno($turno);
$reclutaProceso->setTurno($turno);
if ($recluta->getSexo()=='Masculino')
$procesoCentro->setRegistradoMasculino($procesoCentro->getRegistradoMasculino()+1);
else
$procesoCentro->setRegistradoFemenino($procesoCentro->getRegistradoFemenino()+1);
$em->persist($procesoCentro);
$em->flush();
}
}
}
}
if (isset($data['cursos']))
{
$cursosArray = [];
foreach ($reclutaProceso->getCursos() as $curso)
{
$cursosArray[$curso->getId()] = $curso;
}
foreach ($data['cursos'] as $curso)
{
if (isset($cursosArray[$curso]))
{
unset($cursosArray[$curso]);
}
else
{
$curso = $em->getRepository('App\\Entity\\Curso')->find($curso);
if ($curso)
{
$reclutaProceso->addCursos($curso);
}
}
}
foreach ($cursosArray as $curso)
{
$reclutaProceso->removeCursos($curso);
}
}
if (isset($data['uniforme']))
{
$reclutaProceso->setTallaUniforme($data['uniforme']);
}
if (isset($data['jockey']))
{
$reclutaProceso->setTallaJockey($data['jockey']);
}
if (isset($data['calzado']))
{
$reclutaProceso->setTallaCalzado($data['calzado']);
}
if (isset($data['camiseta']))
{
$reclutaProceso->setTallaCamiseta($data['camiseta']);
}
if (isset($data['estudios_finalizados']))
{
$reclutaProceso->setEstudio($data['estudios_finalizados']);
}
$em->persist($reclutaProceso);
$em->flush();
return $reclutaProceso->getId();
}
private function salvaRespuestas($data)
{
if ($data['gameover']=='completed')
{
$em = $this->em;
$recluta = $em->getRepository('App\\Entity\\Recluta')->findOneBy(array('identificacion'=>$data['cedula']));
$procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')
->findOneBy(array('recluta'=>$recluta->getId(), 'procesoReclutamiento'=>$procesoActivo->getId()));
if ($reclutaProceso)
{
$preguntasIds = array_keys($data['respuesta']);
$preguntasBD = $em->getRepository('App\\Entity\\TestPregunta')
->createQueryBuilder('p')
->where('p.id in (:IDS)')
->setParameter('IDS', $preguntasIds)
->getQuery()->getResult();
$preguntas = [];
foreach ($preguntasBD as $pregunta)
{
$preguntas[$pregunta->getId()] = $pregunta;
}
foreach ($data['respuesta'] as $key=>$valor) {
$respuesta = $em->getRepository('App\\Entity\\TestReclutaProcesoPregunta')
->findOneBy(array('reclutaProceso'=>$reclutaProceso->getId(),'pregunta'=>$key));
if (!$respuesta) {
$pregunta = $preguntas[$key];
$respuesta = new TestReclutaProcesoPregunta();
$respuesta->setPregunta($pregunta);
$respuesta->setReclutaProceso($reclutaProceso);
}
$respuesta->setRespuesta($valor);
$em->persist($respuesta);
}
$em->flush();
}
}
}
public function getDominiosCentroMovilizacionAction( $centro)
{
$data = array('ok'=>true);
$em = $this ->em;
$centro = $em->getRepository('App\\Entity\\CentroMovilizacion')->find($centro);
if ($centro)
{
$dominio = $centro->getLocalizacion();
$data['geometria'] = $centro->getGeometria();
if ($dominio)
{
$data['parroquia'] = $dominio->__toString();
$dominio = $dominio->getDominioPadre();
$data['canton'] = $dominio->__toString();
$dominio = $dominio->getDominioPadre();
$data['provincia'] = $dominio->__toString();
$dominio = $dominio->getDominioPadre();
$data['region'] = $dominio->__toString();
$data['direccion'] = $centro->getDireccion();
$data['direccionAcuartelamiento'] = $centro->getDireccionAcuartelamiento();
}
else
{
$data['ok']=false;
}
}
else
{
$data['ok']=false;
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function asignarUnidadAction( $reclutaProceso)
{
$user = $this->getUser();
$fecha=new \DateTime();
$fecha->setTime(0, 0, 0);
$em = $this ->em;
$idReclutaProceso=$reclutaProceso;
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')->find($reclutaProceso);
$fechaFin=$reclutaProceso->getProcesoReclutamiento()->getFechaFinDiasPosteriores();
$fechaFin->setTime(23,59, 59);
if($fecha >= $reclutaProceso->getProcesoReclutamiento()->getFechaAcuartelamiento() and $fecha<=$fechaFin){
if ($user->isRoleAssigned('ROLE_OPERADOR_INSTRUCCION') or $user->isRoleAssigned('ROLE_COORDINADOR_DIRECCION'))
{
return $this->asignaUnidadDirectamente($idReclutaProceso);
}
$centro=null;
if ($user->isRoleAssigned('ROLE_ADMINISTRADOR') === false and $user->isRoleAssigned('ROLE_COORDINADOR_DIRECCION') === false) {
$centro = $user->getCentroMovilizacion();
}
$em = $this ->em;
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')->find($reclutaProceso);
// $centro = $reclutaProceso->getCentroMovilizacion();
$recluta = $reclutaProceso->getRecluta();
$proceso = $reclutaProceso->getProcesoReclutamiento();
$unidades = $em->getRepository('App\\Entity\\ProcesoReclutamientoUnidad')
->createQueryBuilder('u')
->innerJoin('u.proceso','proceso')
->where('proceso.id=:PROCESO')
->setParameter('PROCESO', $proceso->getId())
->orderBy('u.prioridad', 'ASC' );
if (!$centro)
$centro = $reclutaProceso->getCentroMovilizacion();
$unidades->andWhere('(u.lugar = '.$centro->getId().')');
if ($user->isRoleAssigned('ROLE_OPERADOR_UNIDAD'))
{
$unidades
->innerJoin('u.unidad','unidad')
->andWhere('(unidad.id = '.$user->getUnidadMilitar()->getId().')');
}
if ($recluta->getSexo()=='Masculino')
{
$unidades->andWhere('( (u.registradoMasculino is null or u.registradoMasculino<u.organicoMasculino) and u.organicoMasculino >0)');
}
else
{
$unidades->andWhere('((u.registradoFemenino is null or u.registradoFemenino<u.organicoFemenino) and u.organicoFemenino >0)');
}
$unidades = $unidades->getQuery()->getResult();
if (empty($unidades))
{
$data=array('ok'=>false,'msg'=>'No hay cupos disponibles');
}
else
{
$unidadProceso = $unidades[0];
$unidad = $unidadProceso->getUnidad();
$data=array('ok'=>true, 'choose'=>false, 'unidad'=>$unidad->__toString(), 'unidadId'=>$unidad->getId(), 'centro'=>$unidad->getCentroInstruccion()->__toString());
}
}
else{
$data=array('ok'=>false,'msg'=>'No se encuentra en las fechas habilitadas para asignaciĂłn de unidad');
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
protected function asignaUnidadDirectamente( $reclutaProceso)
{
$em = $this ->em;
$user = $this->getUser();
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')->find($reclutaProceso);
$centro = $reclutaProceso->getCentroMovilizacion();
$recluta = $reclutaProceso->getRecluta();
$proceso = $reclutaProceso->getProcesoReclutamiento();
$procesoUnidades = $em->getRepository('App\\Entity\\ProcesoReclutamientoUnidad')
->createQueryBuilder('u')
->leftJoin('u.proceso','proceso')
->leftJoin('u.unidad','unidad')
->where('proceso.id=:PROCESO')
->setParameter('PROCESO', $proceso->getId());
/*if ($user->isRoleAssigned('ROLE_OPERADOR_INSTRUCCION'))
{
// habilitar luego
// $centroInstruccion= $user->getCentroInstruccion();
// $procesoUnidades =$procesoUnidades->andWhere('(unidad.centroInstruccion = '.$centroInstruccion->getId().')');
}*/
if ($user->isRoleAssigned('ROLE_OPERADOR_CENTRO')) /*&& verificar las fechas*/
{
$centro= $user->getCentroMovilizacion()?$user->getCentroMovilizacion():$reclutaProceso->getCentroMovilizacion();
$procesoUnidades =$procesoUnidades->andWhere('(u.lugar = '.$centro->getId().')');
}
$procesoUnidades =$procesoUnidades->orderBy('u.prioridad', 'ASC' );
if ($recluta->getSexo()=='Masculino')
{
$procesoUnidades->andWhere('( (u.registradoMasculino is null or u.registradoMasculino<u.cupoMasculino) and u.cupoMasculino >0)');
}
else
{
$procesoUnidades->andWhere('((u.registradoFemenino is null or u.registradoFemenino<u.cupoFemenino) and u.cupoFemenino >0)');
}
$procesoUnidades = $procesoUnidades->getQuery()->getResult();
if (empty($procesoUnidades))
{
$data=array('ok'=>false, 'sql'=>$procesoUnidades->getQuery()->getSQL());
}
else
{
$unidades = array();
$html='<option value="">-- Seleccione --</option>';
foreach ($procesoUnidades as $procesoUnidad)
{
$unidad = $procesoUnidad->getUnidad();
$html.='<option value="'.$unidad->getId().'">'.$unidad->__toString().'</option>';
}
if ($user->isRoleAssigned('ROLE_COORDINADOR_DIRECCION')){
$data=array('ok'=>true, 'choose'=>true, 'unidades'=>$html, 'centro'=>'DIRECCION DE MOVILIZACION');
}else{
$data=array('ok'=>true, 'choose'=>true, 'unidades'=>$html, 'centro'=>$unidad->getCentroInstruccion()->__toString());
}
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function resultadoSalvarAction()
{
$em = $this ->em;
$resultado = $this->request->get('resultado');
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')->find($resultado['reclutaProceso']);
$recluta = $reclutaProceso->getRecluta();
$proceso = $reclutaProceso->getProcesoReclutamiento();
$fullMasculino = false;
$fullFemenino = false;
try {
if ($resultado['resultado']=='idoneo')
{
$unidadProceso = $em->getRepository('App\\Entity\\ProcesoReclutamientoUnidad')
->findOneBy(array('proceso'=>$proceso->getId(),'unidad'=>$resultado['unidad']));
$unidad = $unidadProceso->getUnidad();
$reclutaProceso->setUnidadMilitar($unidad);
if ($recluta->getSexo()=='Masculino')
{
$unidadProceso->setRegistradoMasculino($unidadProceso->getRegistradoMasculino()+1);
$fullMasculino = ($unidadProceso->getRegistradoMasculino()==$unidad->getCupoMasculino());
}
else
{
$unidadProceso->setRegistradoFemenino($unidadProceso->getRegistradoFemenino()+1);
$fullFemenino = ($unidadProceso->getRegistradoFemenino()==$unidad->getCupoFemenino());
}
$reclutaProceso->setIdoneo(true);
$reclutaProceso->setCausaRechazo(null);
$reclutaProceso->setFechaResultado(new \DateTime());
$em->persist($reclutaProceso);
$em->persist($unidadProceso);
$em->flush();
$data = array('ok'=>true, 'fullFemenino'=>$fullFemenino, 'fullMasculino'=>$fullMasculino, 'unidadId'=>$unidad->getId());
}
else
{
$this->logger->info('*********No idoneo');
$reclutaProceso->setIdoneo(false);
$reclutaProceso->setCausaRechazo($resultado['causa']);
$reclutaProceso->setObservaciones($resultado['observaciones']);
$reclutaProceso->setVolverPresentarse($resultado['volver']);
$reclutaProceso->setFechaResultado(new \DateTime());
$em->persist($reclutaProceso);
$em->flush();
$data = array('ok'=>true, 'fullFemenino'=>null, 'fullMasculino'=>null, 'unidadId'=>null);
}
} catch (\RuntimeException $exc) {
$this->logger->info('*********No idoneo error'.$exc->getMessage());
$data = array('ok'=>false, 'error'=>$exc);
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function resultadoSalvarVacunacionAction()
{
$em = $this ->em;
$resultado = $this->request->get('resultado');
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')->find($resultado['reclutaProceso']);
$recluta = $reclutaProceso->getRecluta();
$proceso = $reclutaProceso->getProcesoReclutamiento();
if ($resultado['resultado']=='valido')
{
$reclutaProceso->setCertificadoVacunacionOk(true);
$reclutaProceso->setCausaRechazo(null);
$reclutaProceso->setVolverPresentarse(null);
$reclutaProceso->setFechaResultado(null);
$reclutaProceso->setObservaciones(null);
$em->persist($reclutaProceso);
$em->flush();
}
else
{
$reclutaProceso->setIdoneo(false);
$reclutaProceso->setCertificadoVacunacionOk(false);
$reclutaProceso->setCausaRechazo(CausaNoIdoneoEnum::VACUNACION);
$reclutaProceso->setObservaciones($resultado['observaciones']);
$reclutaProceso->setVolverPresentarse($resultado['volver']);
$reclutaProceso->setFechaResultado(new \DateTime());
$em->persist($reclutaProceso);
$centro = $reclutaProceso->getCentroMovilizacion();
/* $procesoCentro = $em->getRepository('App\\Entity\\ProcesoReclutamientoCentro')
->findOneBy(array('lugar'=>$centro->getId(),'proceso'=>$reclutaProceso->getProcesoReclutamiento()));
if ($recluta->getSexo()=='Masculino')
{
$procesoCentro->setRegistradoMasculino($procesoCentro->getRegistradoMasculino()-1);
}
else
{
$procesoCentro->setRegistradoFemenino($procesoCentro->getRegistradoFemenino()-1);
}
$em->persist($procesoCentro);*/
$em->flush();
}
$data = array('ok'=>true);
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
public function cambiarCentroMovilizacionAction( $idReclutaProceso)
{
$em = $this ->em;
if (!$this->procesoActivo)
{
$this->procesoActivo = $em->getRepository('App\\Entity\\ProcesoReclutamiento')
->createQueryBuilder('p')
->where('p.activo=true')
->getQuery()->getOneOrNullResult();
}
$procesoActivo = $this->procesoActivo;
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')->find($idReclutaProceso);
$sexo = $reclutaProceso->getRecluta()->getSexo();
$fecha = $procesoActivo->getFechaAcuartelamiento();
$fechaFin = $procesoActivo->getFechaFinDias();
$hayCupos = false;
$htmlFechas = '';
$htmlCentros = '';
while ($fecha<=$fechaFin)
{
$centros = $this->getCentrosConCupo($fecha, $sexo);
if ($centros)
{
$hayCupos = true;
$htmlFechas .= '<option value="'.$fecha->format('Y-m-d').'">'.$this->dateToTxt($fecha).'</option>';
if (!$htmlCentros)
{
$htmlCentros = $centros;
}
}
$fecha->add(new \DateInterval('P1D'));
}
return $this->render('Aspirantes/cambiarCentro.html.twig',
array( 'sexo'=>$sexo, 'hayCupo'=>$hayCupos, 'fechas'=>$htmlFechas, 'centros'=>$htmlCentros ));
}
public function actualizarCentroMovilizacionAction( $idReclutaProceso, $idCentro, $fecha)
{
$em = $this ->em;
$reclutaProceso = $em->getRepository('App\\Entity\\ReclutaProceso')->find($idReclutaProceso);
$recluta = $em->getRepository('App\\Entity\\Recluta')->find($reclutaProceso->getRecluta());
$data = array('ok'=>false);
if ($reclutaProceso && isset($idCentro))
{
$centro = $em->getRepository('App\\Entity\\CentroMovilizacion')->find($idCentro);
if (($centro))
{
$oldCentro = $reclutaProceso->getCentroMovilizacion();
$oldProcesoCentro = $em->getRepository('App\\Entity\\ProcesoReclutamientoCentro')
->findOneBy(array('lugar'=>$oldCentro->getId(),'proceso'=>$reclutaProceso->getProcesoReclutamiento()));
$procesoCentro = $em->getRepository('App\\Entity\\ProcesoReclutamientoCentro')
->findOneBy(array('lugar'=>$centro->getId(),'proceso'=>$reclutaProceso->getProcesoReclutamiento()));
if ($procesoCentro)
{
$fecha = new \DateTime($fecha);
$reclutaProceso->setCentroMovilizacion($centro);
$base = $em->getRepository('App\\Entity\\ProcesoReclutamientoCentro')->findOneBy(['lugar'=>$centro->getId(), 'proceso'=>$reclutaProceso->getProcesoReclutamiento()->getId()]);
if ($base)
{
$reclutaProceso->setBaseMovilizacion($base->getBase());
}
$reclutaProceso->setFechaAsignacion($fecha);
$turno = $procesoCentro->getTurno()+1;
$procesoCentro->setTurno($turno);
$reclutaProceso->setTurno($turno);
if ($recluta->getSexo()=='Masculino')
{
$procesoCentro->setRegistradoMasculino($procesoCentro->getRegistradoMasculino()+1);
$oldProcesoCentro->setRegistradoMasculino($oldProcesoCentro->getRegistradoMasculino()-1);
}
else
{
$procesoCentro->setRegistradoFemenino($procesoCentro->getRegistradoFemenino()+1);
$oldProcesoCentro->setRegistradoFemenino($oldProcesoCentro->getRegistradoFemenino()-1);
}
$em->persist($procesoCentro);
$em->persist($oldProcesoCentro);
$em->persist($reclutaProceso);
$em->flush();
$data=array('ok'=>true, 'centro'=>$centro->__toString(), 'direccion'=>$centro->getDireccion(),'turno'=>$turno, 'fecha'=> $this->dateToTxt($fecha));
}
}
}
$data = new Response(json_encode($data));
$data->headers->set('Content-Type', 'application/json');
return $data;
}
}