<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Entity\RegionProvinciaCantonParroquia;
//use TrazasBundle\Interfaces\trazaInterface;
use App\Enum\CausaNoIdoneoEnum;
/**
* ReclutaProceso
*
* @ORM\Table(name="recluta_proceso")
* @ORM\Entity(repositoryClass="App\Repository\ReclutaProcesoRepository")
*/
class ReclutaProceso extends RegionProvinciaCantonParroquia //implements trazaInterface
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="SEQUENCE")
* @ORM\SequenceGenerator(sequenceName="recluta_proceso_id_seq", allocationSize=1, initialValue=1)
*/
private $id;
/**
* @var \App\Entity\ProcesoReclutamiento
*
* @ORM\ManyToOne(targetEntity="App\Entity\ProcesoReclutamiento")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="proceso", referencedColumnName="id", nullable=false)
* })
*/
private $procesoReclutamiento;
/**
* @var \App\Entity\BaseMovilizacion
*
* @ORM\ManyToOne(targetEntity="App\Entity\BaseMovilizacion")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="base_movilizacion", referencedColumnName="id", nullable=false, columnDefinition="relation/centromovilizacion")
* })
*/
private $baseMovilizacion;
/**
* @var \App\Entity\CentroMovilizacion
*
* @ORM\ManyToOne(targetEntity="App\Entity\CentroMovilizacion")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="centro_movilizacion", referencedColumnName="id", nullable=false, columnDefinition="relation/centromovilizacion")
* })
*/
private $centroMovilizacion;
/**
* @var \App\Entity\UnidadMilitar
*
* @ORM\ManyToOne(targetEntity="App\Entity\UnidadMilitar")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="unidad_militar", referencedColumnName="id", nullable=true)
* })
*/
private $unidadMilitar;
/**
* @var \App\Entity\Recluta
*
* @ORM\ManyToOne(targetEntity="App\Entity\Recluta", inversedBy="procesos", fetch="EXTRA_LAZY")
* @ORM\OrderBy({"apellidoPaterno" = "ASC","apellidoMaterno" = "ASC","nombres" = "ASC"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="recluta", referencedColumnName="id", nullable=false)
* })
*/
private $recluta;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_registro", type="datetime", nullable=false, columnDefinition = "fecha")
*/
private $fechaRegistro;
/**
* @var string
*
* @ORM\Column(name="pais_residencia", type="string", length=50, nullable=true)
*/
private $paisResidencia;
/**
* @var \App\Entity\NmclDominioLocalizacion
*
* @ORM\ManyToOne(targetEntity="App\Entity\NmclDominioLocalizacion")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="localizacion_residencia", referencedColumnName="id", nullable=true)
* })
*/
private $lugarResidencia;
/**
* @var string
*
* @ORM\Column(name="calle_principal_residencia", type="string", length=50, nullable=true)
*/
private $callePrincipalResidencia;
/**
* @var string
*
* @ORM\Column(name="calle_secundaria_residencia", type="string", length=50, nullable=true)
*/
private $calleSecundariaResidencia;
/**
* @var string
*
* @ORM\Column(name="num_casa", type="string", length=10, nullable=true)
*/
private $numeroCasa;
/**
* @var string
*
* @ORM\Column(name="referencias", type="text", nullable=true)
*/
private $referencias;
/**
* @var string
*
* @ORM\Column(name="geometria", type="text", nullable=true, columnDefinition="geometria_punto")
*/
private $geometria;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_consulta_antecedentes", type="datetime", nullable=true, columnDefinition = "fecha")
*/
private $fechaConsultaAntecedentes;
/**
* @var string
*
* @ORM\Column(name="resultados_antecedentes", type="text", nullable=true)
*/
private $resultadosAntecedentes;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_consulta_estudios", type="datetime", nullable=true, columnDefinition = "fecha")
*/
private $fechaConsultaEstudios;
/**
* @var string
*
* @ORM\Column(name="resultados_estudios", type="text", nullable=true)
*/
private $resultadosEstudios;
/**
* @var boolean
*
* @ORM\Column(name="idoneo", type="boolean", nullable=true)
*/
private $idoneo;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_resultado", type="datetime", nullable=true, columnDefinition = "fecha")
*/
private $fechaResultado;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_asignacion", type="datetime", nullable=true)
*/
private $fechaAsignacion;
/**
* @var string
*
* @ORM\Column(name="causa_rechazo", type="string", length=15, nullable=true)
*/
private $causaRechazo;
/**
* @var string
*
* @ORM\Column(name="observaciones", type="text", nullable=true)
*/
private $observaciones;
/**
* @var string
*
* @ORM\Column(name="volver_presentarse", type="string", length=20, nullable=true)
*/
private $volverPresentarse;
/**
* @var integer
*
* @ORM\Column(name="intentos", type="integer", nullable=true)
*/
private $intentos;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_intento1", type="datetime", nullable=true)
*/
private $fechaIntento1;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_intento2", type="datetime", nullable=true)
*/
private $fechaIntento2;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_intento3", type="datetime", nullable=true)
*/
private $fechaIntento3;
/**
* @var integer
*
* @ORM\Column(name="turno", type="integer", nullable=true)
*/
private $turno;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_baja", type="datetime", nullable=true, columnDefinition = "fecha")
*/
private $fechaBaja;
/**
* @var \App\Entity\UnidadMilitar
*
* @ORM\ManyToOne(targetEntity="App\Entity\UnidadMilitar")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="unidad_militar_inicial", referencedColumnName="id", nullable=true)
* })
*/
private $unidadMilitarInicial;
/**
* @var boolean
*
* @ORM\Column(name="certificado_vacunacion_ok", type="boolean", nullable=true)
*/
private $certificadoVacunacionOk;
/**
* @var string
*
* @ORM\Column(name="talla_uniforme", type="string", length=5, nullable=true)
*/
private $tallaUniforme;
/**
* @var string
*
* @ORM\Column(name="talla_jockey", type="string", length=5, nullable=true)
*/
private $tallaJockey;
/**
* @var string
*
* @ORM\Column(name="talla_calzado", type="string", length=5, nullable=true)
*/
private $tallaCalzado;
/**
* @var string
*
* @ORM\Column(name="talla_camiseta", type="string", length=5, nullable=true)
*/
private $tallaCamiseta;
/**
* @var string
*
* @ORM\Column(name="estudio", type="string", length=5, nullable=true)
*/
private $estudio;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Curso")
* @ORM\JoinTable(name="recluta_proceso_cursos",
* joinColumns={@ORM\JoinColumn(name="recluta_proceso", referencedColumnName="id", nullable=false)},
* inverseJoinColumns={@ORM\JoinColumn(name="curso", referencedColumnName="id")}
* )
*/
private $cursos;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set fechaRegistro
*
* @param \DateTime $fechaRegistro
* @return ReclutaProceso
*/
public function setFechaRegistro($fechaRegistro)
{
$this->fechaRegistro = $fechaRegistro;
return $this;
}
/**
* Get fechaRegistro
*
* @return \DateTime
*/
public function getFechaRegistro()
{
return $this->fechaRegistro;
}
public function getImagen()
{
if ($this->getFoto())
return '<ul class="ace-thumbnails clearfix">'.
' <li>'.
' <a href="'.$this->getFoto()->getUrl().'" data-rel="colorbox">'.
' <img width="45" src="'.$this->getFoto()->getUrl().'">'.
' </a>'.
' </li>'.
'</ul>';
else
return '<ul class="ace-thumbnails clearfix">'.
' <li>'.
' <a href="/images/foto_hombre.jpg" data-rel="colorbox">'.
' <img width="45" src="/images/foto_hombre.jpg">'.
' </a>'.
' </li>'.
'</ul>';
}
public function __toString() {
return $this->getRecluta()->getNombreCompleto();
}
public function setValuesAfterForm($params)
{
if ($params['accion']=='CREATE')
{
$this->fechaRegistro = new \DateTime();
}
}
public function getRecluta() {
return $this->recluta;
}
public function getReclutaNombre() {
return $this->recluta;
}
public function getReclutaSexo() {
$recluta = $this->recluta;
return $recluta->getSexo();
}
public function getReclutaFechaNacimiento() {
$recluta = $this->recluta;
return $recluta->getFechaNacimiento();
}
public function getReclutaEdad() {
$recluta = $this->recluta;
return $recluta->getEdad();
}
public function getReclutaIdentificacion() {
$recluta = $this->recluta;
return $recluta->getIdentificacion();
}
public function getProcesoReclutamiento() {
return $this->procesoReclutamiento;
}
public function getProcesoTexto() {
$proceso = $this->procesoReclutamiento;
return $proceso->__toString();
}
public function getPaisResidencia() {
return $this->paisResidencia;
}
public function getLugarResidencia() {
return $this->lugarResidencia;
}
public function getCallePrincipalResidencia() {
return $this->callePrincipalResidencia;
}
public function getCalleSecundariaResidencia() {
return $this->calleSecundariaResidencia;
}
public function getNumeroCasa() {
return $this->numeroCasa;
}
public function getReferencias() {
return $this->referencias;
}
public function getGeometria() {
return $this->geometria;
}
public function getFechaConsultaAntecedentes() {
return $this->fechaConsultaAntecedentes;
}
public function getResultadosAntecedentes() {
return json_decode($this->resultadosAntecedentes);
}
public function getFechaConsultaEstudios() {
return $this->fechaConsultaEstudios;
}
public function getResultadosEstudios() {
return json_decode($this->resultadosEstudios);
}
public function getIdoneo() {
return $this->idoneo;
}
public function getCentroInstruccion() {
if ($this->unidadMilitar)
{
return $this->unidadMilitar->getCentroInstruccion()->__toString();
}
return '';
}
public function getFechaResultado() {
return $this->fechaResultado;
}
public function getUnidadMilitar() {
return $this->unidadMilitar;
}
public function getFechaAsignacion() {
return $this->fechaAsignacion;
}
public function getCausaRechazo() {
return $this->causaRechazo;
}
public function getCausaRechazoTexto() {
return CausaNoIdoneoEnum::getReadableFor($this->causaRechazo);
}
public function getVolverPresentarse() {
return $this->volverPresentarse;
}
public function setRecluta(\App\Entity\Recluta $recluta) {
$this->recluta = $recluta;
}
public function setProcesoReclutamiento(\App\Entity\ProcesoReclutamiento $procesoReclutamiento) {
$this->procesoReclutamiento = $procesoReclutamiento;
}
public function setPaisResidencia($paisResidencia) {
$this->paisResidencia = $paisResidencia;
}
public function setLugarResidencia(\App\Entity\NmclDominioLocalizacion $lugarResidencia) {
$this->lugarResidencia = $lugarResidencia;
}
public function setCallePrincipalResidencia($callePrincipalResidencia) {
$this->callePrincipalResidencia = $callePrincipalResidencia;
}
public function setCalleSecundariaResidencia($calleSecundariaResidencia) {
$this->calleSecundariaResidencia = $calleSecundariaResidencia;
}
public function setNumeroCasa($numeroCasa) {
$this->numeroCasa = $numeroCasa;
}
public function setReferencias($referencias) {
$this->referencias = $referencias;
}
public function setGeometria($geometria) {
$this->geometria = $geometria;
}
public function setFechaConsultaAntecedentes(\DateTime $fechaConsultaAntecedentes) {
$this->fechaConsultaAntecedentes = $fechaConsultaAntecedentes;
}
public function setResultadosAntecedentes($resultadosAntecedentes) {
$this->resultadosAntecedentes = $resultadosAntecedentes;
}
public function setFechaConsultaEstudios(\DateTime $fechaConsultaEstudios) {
$this->fechaConsultaEstudios = $fechaConsultaEstudios;
}
public function setResultadosEstudios($resultadosEstudios) {
$this->resultadosEstudios = $resultadosEstudios;
}
public function setIdoneo($idoneo) {
$this->idoneo = $idoneo;
}
public function setFechaResultado(\DateTime $fechaResultado=null) {
$this->fechaResultado = $fechaResultado;
}
public function setUnidadMilitar(\App\Entity\UnidadMilitar $unidadMilitar=null) {
$this->unidadMilitar = $unidadMilitar;
}
public function setFechaAsignacion(\DateTime $fechaAsignacion) {
$this->fechaAsignacion = $fechaAsignacion;
}
public function setCausaRechazo($causaRechazo=null) {
$this->causaRechazo = $causaRechazo;
}
public function setVolverPresentarse($volverPresentarse=null) {
$this->volverPresentarse = $volverPresentarse;
}
public static function getParamsForIndexTwig(array $params)
{
$paramsView = parent::getParamsForIndexTwig($params);
$paramsView['parroquiaField']='lugarResidencia';
$paramsView['control_base']='form_reclutaBase';
$paramsView['control_centro']='form_centroMovilizacion';
$paramsView['control_unidad']='form_unidadMilitar';
return $paramsView;
}
public function editParamsForTwig(array $params)
{
return array('parroquiaField'=>'lugarResidencia');
}
public function newParamsForTwig(array $params)
{
return array('parroquiaField'=>'lugarResidencia');
}
public function getCentroMovilizacion() {
return $this->centroMovilizacion;
}
public function setCentroMovilizacion(\App\Entity\CentroMovilizacion $centroMovilizacion) {
$this->centroMovilizacion = $centroMovilizacion;
}
public function getIntentos() {
return $this->intentos;
}
public function getFechaIntento1() {
return $this->fechaIntento1;
}
public function getFechaIntento2() {
return $this->fechaIntento2;
}
public function getFechaIntento3() {
return $this->fechaIntento3;
}
public function getRegion()
{
$provincia = $this->getProvincia();
if ($provincia)
{
return $provincia->getDominioPadre();
}
return null;
}
public function getProvincia()
{
$canton = $this->getCanton();
if ($canton)
{
return $canton->getDominioPadre();
}
return null;
}
public function getCanton()
{
$parroquia = $this->getLugarResidencia();
if ($parroquia)
{
return $parroquia->getDominioPadre();
}
return null;
}
public function setIntentos($intentos=0) {
$this->intentos = $intentos;
}
public function setFechaIntento1(\DateTime $fechaIntento1=null) {
$this->fechaIntento1 = $fechaIntento1;
}
public function setFechaIntento2(\DateTime $fechaIntento2=null) {
$this->fechaIntento2 = $fechaIntento2;
}
public function setFechaIntento3(\DateTime $fechaIntento3=null) {
$this->fechaIntento3 = $fechaIntento3;
}
public function getObservaciones() {
return $this->observaciones;
}
public function setObservaciones($observaciones) {
$this->observaciones = $observaciones;
}
public function getTurno() {
return $this->turno;
}
public function setTurno($turno) {
$this->turno = $turno;
}
public function getParamsForShowTwig(array $params)
{
$paramsView = parent::getParamsForIndexTwig($params);
$centroId = $this->getCentroMovilizacion()->getId();
$procesoId = $this->getProcesoReclutamiento()->getId();
$procesoReclutamientoCentro = $params['em']->getRepository('App\\Entity\\ProcesoReclutamientoCentro')->findOneBy(array('proceso'=>$procesoId, 'lugar'=>$centroId));
$paramsView['procesoCentro'] = $procesoReclutamientoCentro;
return $paramsView;
}
public function getFuerza() {
if ($this->unidadMilitar)
return $this->unidadMilitar->getFuerza();
else
return '';
}
public function getUnidadMilitarInicial() {
return $this->unidadMilitarInicial;
}
public function setUnidadMilitarInicial(\App\Entity\UnidadMilitar $unidadMilitar=null) {
$this->unidadMilitarInicial = $unidadMilitar;
}
public function getFechaBaja() {
return $this->fechaBaja;
}
public function setFechaBaja(\DateTime $fechaBaja=null) {
$this->fechaBaja = $fechaBaja;
}
public function getUnidadAsignada() {
return ($this->unidadMilitar ? $this->unidadMilitar : $this->unidadMilitarInicial);
}
public function getBajaVoluntaria() {
return ($this->unidadMilitar ? '' : 'BAJA');
}
public static function getEntidadName()
{
return 'Recluta participante';
}
public function dateToTxt($field)
{
$date = $this->$field;
if($this->$field){
$diaSemana = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'];
$diaSemana = $diaSemana[$date->format('w')];
$mes = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
$mes = $mes[$date->format('n')-1];
return $diaSemana.' '.date_format($date,'d').' de '.$mes.' del '.date_format($date,'Y');
}else{
return 'NO DEFINIDO';
}
}
public function getCertificadoVacunacionOk() {
return $this->certificadoVacunacionOk;
}
public function setCertificadoVacunacionOk($certificadoVacunacionOk) {
$this->certificadoVacunacionOk = $certificadoVacunacionOk;
}
public function getBaseMovilizacion() {
return $this->baseMovilizacion;
}
public function setBaseMovilizacion(\App\Entity\BaseMovilizacion $baseMovilizacion=null) {
$this->baseMovilizacion = $baseMovilizacion;
}
public function getTallaUniforme(): ?string {
return $this->tallaUniforme;
}
public function getTallaJockey(): ?string {
return $this->tallaJockey;
}
public function getTallaCalzado(): ?string {
return $this->tallaCalzado;
}
public function getTallaCamiseta(): ?string {
return $this->tallaCamiseta;
}
public function getEstudio(): ?string {
return $this->estudio;
}
public function getEstudioStr(): ?string {
$s = '';
switch ($this->estudio)
{
case 'P2':
$s = 'Segundo de primaria';
break;
case 'P3':
$s = 'Tercero de primaria';
break;
case 'P4':
$s = 'Cuarto de primaria';
break;
case 'P5':
$s = 'Quinto de primaria';
break;
case 'P6':
$s = 'Sexto de primaria';
break;
case 'P7':
$s = 'Septimo de primaria';
break;
case 'PF':
$s = 'Primaria finalizada';
break;
case 'S8':
$s = 'Octavoo de secundaria';
break;
case 'S9':
$s = 'Noveno de secundaria';
break;
case 'S10':
$s = 'Décimo de secundaria';
break;
case 'B1':
$s = 'Primero de bachillerato';
break;
case 'B2':
$s = 'Segundo de bachillerato';
break;
case 'B3':
$s = 'Tercero de bachillerato';
break;
case 'SF':
$s = 'Secundaria finalizada';
break;
}
return $s;
}
public function setTallaUniforme(string $tallaUniforme): void {
$this->tallaUniforme = $tallaUniforme;
}
public function setTallaJockey(string $tallaJockey): void {
$this->tallaJockey = $tallaJockey;
}
public function setTallaCalzado(string $tallaCalzado): void {
$this->tallaCalzado = $tallaCalzado;
}
public function setTallaCamiseta(string $tallaCamiseta): void {
$this->tallaCamiseta = $tallaCamiseta;
}
public function setEstudio(string $estudio): void {
$this->estudio = $estudio;
}
/**
* Add cursos
*
* @param \App\Entity\Curso $curso
* @return ProcesoReclutamiento
*/
public function addCursos(\App\Entity\Curso $curso)
{
$this->cursos->add($curso);
return $this;
}
/**
* Remove cursos
*
* @param \App\Entity\Curso $curso
*/
public function removeCursos(\App\Entity\Curso $curso)
{
$this->cursos->removeElement($curso);
}
/**
* Get cursos
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getCursos()
{
return $this->cursos;
}
public function getCursosStr()
{
$cursos = [];
foreach ($this->cursos as $curso)
{
$cursos[] = $curso->__toString();
}
return implode('<br>', $cursos);
}
}