<?php
namespace App\Controller;
use App\Crud\Controller\crudPlainController;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Recluta;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
/**
* ReclutaProcesoController controller.
*
*/
class ReclutaController extends RegionProvinciaCantonParroquiaController
{
public function showPDFAction($idRecluta, $template)
{
$this->setInitialValues('all', 'recluta');
$entity = $this->em->getRepository($this->bundleName.'\\Entity\\'.$this->className)->find($idRecluta);
if (!$entity)
throw new \RuntimeException($this->translator->trans(
'error.instance_not_found',
array('%classname%' => $this->routeClassName.'/'.$this->className,
'%id%' => $id),
'crud'));
$paramsForTwigShow = $this->showCreateParamsForTwig($entity);
$paramsForTwigShow['tab']=-1;
return $this->render($template, $paramsForTwigShow);
}
protected function getFormFilter()
{
$formulario = parent::getFormFilter();
$repo = $this->em->getRepository('App\\Entity\\ReclutaProceso');
$user = $this->getUser();
unset($formulario['id']);
unset($formulario['apellidoMaterno']);
unset($formulario['apellidoPaterno']);
unset($formulario['email']);
unset($formulario['emailSMS']);
unset($formulario['fechaRegistro_WWdesdeWW']);
unset($formulario['fechaRegistro_WWhastaWW']);
unset($formulario['foto']);
unset($formulario['telefono']);
unset($formulario['estatura']);
unset($formulario['procesos']);
unset($formulario['edadString']);
unset($formulario['lugarNacimientoStr']);
unset($formulario['fotoCedula']);
unset($formulario['telefonoEmergencias']);
if ($this->routeClassName == 'adminrecluta'){
unset($formulario['nombres']);
unset($formulario['sexo']);
unset($formulario['estadoCivil']);
unset($formulario['paisNacimiento']);
unset($formulario['lugarNacimiento']);
unset($formulario['fechaNacimiento_WWdesdeWW']);
unset($formulario['fechaNacimiento_WWhastaWW']);
$formulario['nombreCompleto']=array('nombre' =>'nombreCompleto',
'tipo' => null,
'type' => 'string',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.nombres',
array(),
'crud').':',
'required' => false,
'attr'=>array('style'=>'width: 100%')));
$formulario['reclutaCentro']=array('nombre' =>'reclutaCentro',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.centro',
array(),
'crud').':',
'class' => 'App\\Entity\\CentroMovilizacion',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'attr'=>array('style'=>'width: 100%')));
$formulario['reclutaProceso']=array('nombre' =>'reclutaProceso',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.proceso',
array(),
'crud').':',
'class' => 'App\\Entity\\ProcesoReclutamiento',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'attr'=>array('style'=>'width: 100%')));
}
elseif ($this->routeClassName == 'reporterecluta'){
$bckFormulario = $formulario;
$params['distintivo']='_'.$this->routeClassName;
$fUbicacion = self::getFormularioLocalizacion($params, $formulario, 'lugarNacimiento');
unset($formulario['identificacion']);
unset($formulario['nombres']);
unset($formulario['sexo']);
unset($formulario['edad']);
unset($formulario['estadoCivil']);
unset($formulario['lugarNacimiento']);
unset($formulario['paisNacimiento']);
unset($formulario['fechaNacimiento_WWdesdeWW']);
unset($formulario['fechaNacimiento_WWhastaWW']);
$formulario['reclutaProceso']=array('nombre' =>'reclutaProceso',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.proceso',
array(),
'crud').':',
'class' => 'App\\Entity\\ProcesoReclutamiento',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'attr'=>array('style'=>'width: 100%')));
$formulario['reclutaBase']=array('nombre' =>'reclutaBase',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.base',
array(),
'crud').':',
'class' => 'App\\Entity\\BaseMovilizacion',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'multiple'=>true,
'attr'=>array('style'=>'width: 100%', 'class'=>'chosen-select')));
$formulario['reclutaCentro']=array('nombre' =>'reclutaCentro',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.centro',
array(),
'crud').':',
'class' => 'App\\Entity\\CentroMovilizacion',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'multiple'=>true,
'attr'=>array('style'=>'width: 100%', 'class'=>'chosen-select')));
$formulario['reclutaUnidad']=array('nombre' =>'reclutaUnidad',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.unidad',
array(),
'crud').':',
'class' => 'App\\Entity\\UnidadMilitar',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'multiple'=>true,
'attr'=>array('style'=>'width: 100%', 'class'=>'chosen-select')));
if ($this->getUser()->isRoleAssigned('ROLE_COORDINADOR_CENTRO') || $this->getUser()->isRoleAssigned('ROLE_OPERADOR_CENTRO'))
{
$formulario['reclutaBase']['atributos']['query_builder'] = $repo->queryBasesPorProceso($user);
$formulario['reclutaBase']['atributos']['disabled'] = true;
$formulario['reclutaCentro']['atributos']['query_builder'] = $repo->queryCentrosPorBase($user);
$formulario['reclutaCentro']['atributos']['disabled'] = true;
$formulario['reclutaUnidad']['atributos']['query_builder'] = $repo->queryUnidadesPorCentro($user);
}
if ($this->getUser()->isRoleAssigned('ROLE_COORDINADOR_BASE'))
{
$formulario['reclutaBase']['atributos']['query_builder'] = $repo->queryBasesPorProceso($user);
$formulario['reclutaBase']['atributos']['disabled'] = true;
$formulario['reclutaCentro']['atributos']['query_builder'] = $repo->queryCentrosPorBase($user);
$formulario['reclutaUnidad']['atributos']['query_builder'] = $repo->queryUnidadesPorCentro($user);
}
if ($this->getUser()->isRoleAssigned('ROLE_COORDINADOR_BASE'))
{
$formulario['reclutaCentro']['atributos']['query_builder'] = $repo->queryCentrosPorBase($user);
$formulario['reclutaUnidad']['atributos']['query_builder'] = $repo->queryUnidadesPorCentro($user);
}
$formulario['fechaNacimiento_WWdesdeWW'] = $bckFormulario['fechaNacimiento_WWdesdeWW'];
$formulario['fechaNacimiento_WWhastaWW'] = $bckFormulario['fechaNacimiento_WWhastaWW'];
$formulario['reclutaResultado']=array('nombre' =>'reclutaResultado',
'tipo' => 'Symfony\Component\Form\Extension\Core\Type\ChoiceType',
'type' => 'boolean',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.resultado',
array(),
'crud').':',
'required' => false,
'empty_data' => null,
'attr'=>array('style'=>'width: 100%')));
$formulario['reclutaResultado']['atributos']['choices']=array($this->translator->trans('idoneo_valor.yes', array(), 'crud')=>'true',
$this->translator->trans('idoneo_valor.no', array(), 'crud')=>'false');
$formulario['reclutaResultado']['atributos']['placeholder'] = $this->translator->trans('choice_value.empty_value',array(),'crud');
//$formulario['paisNacimiento'] = $bckFormulario['paisNacimiento'];
/*foreach ($fUbicacion as $key=>$valor)
{
$formulario[$key]=$valor;
}*/
}
elseif ($this->routeClassName == 'reportereclutacentroinstruccion'){
$bckFormulario = $formulario;
$params['distintivo']='_'.$this->routeClassName;
$fUbicacion = self::getFormularioLocalizacion($params, $formulario, 'lugarNacimiento');
unset($formulario['identificacion']);
unset($formulario['nombres']);
unset($formulario['sexo']);
unset($formulario['edad']);
unset($formulario['estadoCivil']);
unset($formulario['lugarNacimiento']);
unset($formulario['paisNacimiento']);
unset($formulario['fechaNacimiento_WWdesdeWW']);
unset($formulario['fechaNacimiento_WWhastaWW']);
$formulario['reclutaProceso']=array('nombre' =>'reclutaProceso',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.proceso',
array(),
'crud').':',
'class' => 'App\\Entity\\ProcesoReclutamiento',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'attr'=>array('style'=>'width: 100%')));
$formulario['reclutaCentroInstruccion']=array('nombre' =>'reclutaCentroInstruccion',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.centro',
array(),
'crud').':',
'class' => 'App\\Entity\\CentroInstruccion',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'multiple'=>true,
'attr'=>array('style'=>'width: 100%', 'class'=>'chosen-select')));
if ($this->getUser()->isRoleAssigned('ROLE_COORDINADOR_CENTRO') || $this->getUser()->isRoleAssigned('ROLE_OPERADOR_CENTRO'))
{
$queryBuilder = $this->em->getRepository('App\\Entity\\CentroInstruccion')->createQueryBuilder('c')
->innerJoin('c.centrosMovilizacion','centroMovilizacion')
->where('centroMovilizacion.id='.$this->getUser()->getCentroMovilizacion()->getId());
$formulario['reclutaCentroInstruccion']['atributos']['query_builder'] = $queryBuilder;
//$formulario['reclutaCentroInstruccion']['atributos']['disabled'] = true;
}
if ($this->getUser()->isRoleAssigned('ROLE_COORDINADOR_BASE'))
{
$queryBuilder = $this->em->getRepository('App\\Entity\\CentroInstruccion')->createQueryBuilder('c')
->leftJoin('c.centrosMovilizacion','centroMovilizacion')
->where('centroMovilizacion.base='.$this->getUser()->getBaseMovilizacion()->getId());
$formulario['reclutaCentroInstruccion']['atributos']['query_builder'] = $queryBuilder;
}
}
elseif ($this->routeClassName == 'reportenoidoneos'){
$bckFormulario = $formulario;
$params['distintivo']='_'.$this->routeClassName;
$fUbicacion = self::getFormularioLocalizacion($params, $formulario, 'lugarNacimiento');
unset($formulario['identificacion']);
unset($formulario['nombres']);
unset($formulario['sexo']);
unset($formulario['edad']);
unset($formulario['estadoCivil']);
unset($formulario['lugarNacimiento']);
unset($formulario['paisNacimiento']);
unset($formulario['fechaNacimiento_WWdesdeWW']);
unset($formulario['fechaNacimiento_WWhastaWW']);
$formulario['reclutaProceso']=array('nombre' =>'reclutaProceso',
'tipo' => EntityType::class,
'type' => 'association',
'atributos'=> array('label' => $this->translator->trans(
$this->translatorBase.'.fields.proceso',
array(),
'crud').':',
'class' => 'App\\Entity\\ProcesoReclutamiento',
'placeholder' => $this->translator->trans('choice_value.empty_value',array(),'crud'),
'required' => false,
'attr'=>array('style'=>'width: 100%')));
}
else {
// unset($formulario['fechaNacimiento_WWdesdeWW']);
// unset($formulario['fechaNacimiento_WWhastaWW']);
$params['distintivo']='_'.$this->routeClassName;
$newFormulario = self::getFormularioLocalizacion($params, $formulario, 'lugarNacimiento');
unset($formulario['lugarNacimiento']);
foreach ($newFormulario as $key=>$valor)
{
$formulario[$key]=$valor;
}
}
return $formulario;
}
protected function indexGetFields()
{
$fields = parent::indexGetFields();
$newFields=array();
$newFields['turno'] = array('nombre'=>'turno',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.turno',
array(),
'crud'));
$newFields['centroMovilizacion'] = array('nombre'=>'centroMovilizacion',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.centroMovilizacion',
array(),
'crud'));
$newFields['identificacion'] = $fields['identificacion'];
$newFields['nombreCompleto'] = array('nombre'=>'nombreCompleto',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.nombrecompleto',
array(),
'crud'));
// $newFields['fechaNacimiento'] = $fields['fechaNacimiento'];
$newFields['telefono'] = $fields['telefono'];
// $newFields['movil'] = $fields['movil'];
// $newFields['tipoSangre'] = $fields['tipoSangre'];
$newFields['imagen'] = array('nombre' => 'imagen',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.foto',
array(),
'crud'));
if ($this->routeClassName == 'reportereclutacentroinstruccion'){
$newFields['centroInstruccion'] = array('nombre'=>'centroInstruccion',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.centroInstruccion',
array(),
'crud'));
}
if ($this->routeClassName == 'reportenoidoneos'){
$newFields['causaRechazo'] = array('nombre'=>'causaRechazo',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.causaRechazo',
array(),
'crud'));
}
return $newFields;
}
protected function showGetFields($entity = null)
{
$fields = parent::showGetFields($entity);
$newFields=array();
$newFields['imagen'] = array('nombre' => 'imagen',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.foto',
array(),
'crud'),
'atributos'=>array('attr'=>array('containerclass'=>'full-row')));
$newFields['identificacion'] = $fields['identificacion'];
$newFields['fechaNacimiento'] = $fields['fechaNacimiento'];
$newFields['apellidoPaterno'] = $fields['apellidoPaterno'];
$newFields['paisNacimiento'] = $fields['paisNacimiento'];
$newFields['apellidoMaterno'] = $fields['apellidoMaterno'];
$newFields['region'] = array('nombre'=>'region',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.region',
array(),
'crud'));
$newFields['nombres'] = $fields['nombres'];
$newFields['provincia'] = array('nombre'=>'provincia',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.provincia',
array(),
'crud'));
$newFields['telefono'] = $fields['telefono'];
$newFields['telefonoEmergencias'] = $fields['telefonoEmergencias'];
$newFields['canton'] = array('nombre'=>'canton',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.canton',
array(),
'crud'));
$newFields['email'] = $fields['email'];
$newFields['lugarNacimiento'] = $fields['lugarNacimiento'];
$newFields['estatura'] = $fields['estatura'];
$newFields['estatura']['atributos']['attr']['containerclass']='full-row';
$newFields['estadoCivil'] = $fields['estadoCivil'];
$newFields['estadoCivil']['atributos']['attr']['containerclass']='full-row';
$newFields['sexo'] = $fields['sexo'];
$newFields['sexo']['atributos']['attr']['containerclass']='full-row';
if ($this->routeClassName == 'adminrecluta'){
$newFields['lugarResidencia'] = array('nombre'=>'lugarResidencia',
'type' => 'integer',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.lugarResidencia',
array(),
'crud'));
$newFields['cantonResidencia'] = array('nombre'=>'cantonResidencia',
'type'=>'string',
'label'=>$this->translator->trans(
$this->routeClassName.'.fields.cantonResidencia',
array(),
'crud'));
$newFields['provinciaResidencia'] = array('nombre'=>'provinciaResidencia',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.provinciaResidencia',
array(),
'crud'));
$newFields['regionResidencia'] = array('nombre'=>'regionResidencia',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.regionResidencia',
array(),
'crud'));
$newFields['paisResidencia'] = array('nombre'=>'paisResidencia',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.paisResidencia',
array(),
'crud'));
$newFields['callePrincipalResidencia'] = array('nombre'=>'callePrincipalResidencia',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.callePrincipalResidencia',
array(),
'crud'));
$newFields['calleSecundariaResidencia'] = array('nombre'=>'calleSecundariaResidencia',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.calleSecundariaResidencia',
array(),
'crud'));
$newFields['numeroCasa'] = array('nombre'=>'numeroCasa',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.numeroCasa',
array(),
'crud'));
$newFields['referencias'] = array('nombre'=>'referencias',
'type' => 'string',
'label' => $this->translator->trans(
$this->routeClassName.'.fields.referencias',
array(),
'crud'));
}
return $newFields;
}
protected function setFiltros()
{
if ($this->getUser()->isRoleAssigned('ROLE_COORDINADOR_CENTRO') || $this->getUser()->isRoleAssigned('ROLE_OPERADOR_CENTRO'))
{
$this->filterData['reclutaCentro']= $this->getUser()->getCentroMovilizacion()->getId();
}
if ($this->getUser()->isRoleAssigned('ROLE_COORDINADOR_BASE'))
{
$this->filterData['reclutaBase']= $this->getUser()->getBaseMovilizacion()->getId();
}
}
}