File: /home/undanet/www//PortalEmpleo/src/Controller/CandidatoController.php
<?php
namespace PortalEmpleo\Controller;
require __DIR__ . '/../../vendor/autoload.php';
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use PortalEmpleo\Repository\DBCandidatoRepository;
use PortalEmpleo\Repository\DBCandidatoIdiomaRepository;
use PortalEmpleo\Repository\DBCandidatoPerfilRepository;
use PortalEmpleo\Repository\DBImpugnacionRepository;
use PortalEmpleo\Utils\Load;
class CandidatoController extends AbstractController
{
public $load;
public function __construct()
{
$this->load = new Load();
}
/**
* @Route("/convocatorias", name="convocatoria")
*/
public function index(): Response
{
return $this->render('convocatoria/index.html.twig', [
'controller_name' => 'ConvocatoriaController',
]);
}
public function detalleCandidato($idWp, $lang)
{
$dbRepository = new DBCandidatoRepository();
$candidato =
call_user_func([$dbRepository, 'obtenerCandidato'], $lang, $idWp);
if (is_array($candidato)) {
$candidato = reset($candidato);
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
$lidiomas = call_user_func([
$dbRepositoryIdioma, 'obtenerIdiomas',
], $lang, $candidato->getIdcandidato());
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
$lperfil = call_user_func([
$dbRepositoryPerfil, 'obtenerPerfiles',
], $lang, $candidato->getIdcandidato());
$data['candidato'] = $candidato;
$data['listaidiomas'] = $lidiomas;
$data['listaperfiles'] = $lperfil;
} else {
$data['candidato'] = $candidato;
$data['listaidiomas'] = null;
$data['listaperfiles'] = null;
}
$this->load->view('DetalleCandidatoView.php', $data);
}
public function actualizarCandidatoPerfil($candidato, $lang)
{
$dbRepository = new DBCandidatoRepository();
if ($candidato) {
if ($candidato->getIdcandidato()) {
$lConvocatorias = call_user_func([
$dbRepository, 'actualizarCandidatoPerfil',
], $candidato);
} else {
$lConvocatorias = call_user_func([
$dbRepository, 'nuevoCandidatoPerfil',
], $candidato);
}
}
}
public function quitarCandidatoIdioma($idCandIdioma, $idWp, $lang)
{
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
if ($idCandIdioma) {
call_user_func([
$dbRepositoryIdioma, 'eliminarCandidatoIdioma',
], $idCandIdioma);
}
$this->detalleCandidato($idWp, $lang);
}
public function addCandidatoIdioma($candIdioma, $idWp, $lang)
{
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
if ($candIdioma) {
$existe = call_user_func([
$dbRepositoryIdioma, 'comprobarCandidatoIdioma',
], ($candIdioma->getCodigocandidato())->getIdcandidato(), ($candIdioma->getCodigoidiomas())->getIdidiomas());
if (isset($existe) && $existe != false) {
//se actualiza el que existe o se añade uno nuevo si es "otro" idioma
if ($candIdioma->getOtroidioma() != null
&& strlen(trim($candIdioma->getOtroidioma())) > 0) {
$result = call_user_func([
$dbRepositoryIdioma, 'comprobarOtrosIdiomas',
], $candIdioma);
if ($result === true) {
//se añade nuevo "otro" idioma
call_user_func([
$dbRepositoryIdioma, 'nuevoCandidatoIdioma',
], $candIdioma);
} else {
if ($result != null
&& $result->getIdcandidatoidioma() > 0) {
//Se modifica el "otro" idioma que existe
call_user_func([
$dbRepositoryIdioma, 'actualizarCandidatoIdioma',
], $candIdioma);
} else {
//no se hace nada porque ya ha añadido el maximo o ha dado error
echo '<script>alert("No puedes meter más idiomas");</script>';
}
}
} else {
//se modifica el que existe y no es "otro" idioma
call_user_func([
$dbRepositoryIdioma, 'actualizarCandidatoIdioma',
], $candIdioma);
}
} else {
//no existe, insert nuevo
call_user_func([
$dbRepositoryIdioma, 'nuevoCandidatoIdioma',
], $candIdioma);
}
}
$this->detalleCandidato($idWp, $lang);
}
public function quitarCandidatoPerfil($idCandPerfil, $idWp, $lang)
{
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
if ($idCandPerfil) {
call_user_func([
$dbRepositoryPerfil, 'eliminarCandidatoPerfil',
], $idCandPerfil);
}
$this->detalleCandidato($idWp, $lang);
}
public function addPerfil($candPerfil, $idWp, $lang)
{
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
if ($candPerfil) {
$existe = call_user_func(
[$dbRepositoryPerfil, 'comprobarCandidatoPerfil',],
($candPerfil->getCodigocandidato())->getIdcandidato(),
($candPerfil->getCodigoperfil())->getIdperfil()
);
if (isset($existe) && $existe != false) {
//se modifica el que existe
call_user_func([
$dbRepositoryPerfil, 'actualizarCandidatoPerfil',
], $candPerfil);
} else {
//no existe, insert nuevo
call_user_func([
$dbRepositoryPerfil, 'nuevoCandidatoPerfil',
], $candPerfil);
}
}
$this->detalleCandidato($idWp, $lang);
}
public function obtenerFichaCandidato(
$idCandidato, $idConvocatoria, $refConvocatoria, $lang
) {
if (isset($idCandidato)
&& is_numeric($idCandidato)/* && (isset($idConvocatoria) && is_numeric($idConvocatoria))*/) {
$dbRepository = new DBCandidatoRepository();
$candidato = call_user_func([
$dbRepository, 'obtenerCandidatoById',
], $lang, $idCandidato);
if (is_array($candidato)) {
$candidato = reset($candidato);
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
$lidiomas = call_user_func([
$dbRepositoryIdioma, 'obtenerIdiomas',
], $lang, $candidato->getIdcandidato());
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
$lperfil = call_user_func([
$dbRepositoryPerfil, 'obtenerPerfiles',
], $lang, $candidato->getIdcandidato());
$data['candidato'] = $candidato;
if (is_array($lidiomas)) {
$data['listaidiomas'] = $lidiomas;
} else {
$data['listaidiomas'] = null;
}
if (is_array($lperfil)) {
$data['listaperfiles'] = $lperfil;
} else {
$data['listaperfiles'] = null;
}
}
$data['idConvocatoria'] = $idConvocatoria;
$data['refConvocatoria'] = $refConvocatoria;
}
$this->load->view('FichaCandidatoView.php', $data);
}
public function buscadorCandidatos($lang)
{
$dbRepository = new DBCandidatoRepository();
$lcandidato =
call_user_func([$dbRepository, 'obtenerCandidato'], $lang, null);
$data = [];
if (is_array($lcandidato)) {
foreach ($lcandidato as $candidato) {
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
$lperfil = call_user_func([
$dbRepositoryPerfil, 'obtenerPerfiles',
], $lang, $candidato->getIdcandidato());
if (is_array($lperfil)) {
foreach ($lperfil as $perfil) {
array_push($data, [$candidato, $perfil]);
}
} else {
array_push($data, [$candidato, null]);
}
}
}
$this->load->view('CandidatoBuscadorView.php', $data);
}
public function callReport($lang)
{
$dbRepository = new DBConvocatoriaRepository();
$lConvocatorias = call_user_func([
$dbRepository, 'obtenerConvocatorias',
], $lang, null, false);
$conv = [];
if (is_array($lConvocatorias)) {
foreach ($lConvocatorias as $convocatoria) {
$idConvocatoria = $convocatoria->getIdconvocatoria();
$actas['requisitos'] =
$this->obtenerRequisitosConvocatoria($lang, $idConvocatoria);
$actas['meritos'] =
$this->obtenerMeritosConvocatoria($lang, $idConvocatoria);
$actas['lcandidato'] =
$this->obtenerCandidatosConvocatoria($lang, $idConvocatoria);
$dbRepository1 = new DBTribunalConvocatoriaRepository();
$actas['ltribunal'] = call_user_func([
$dbRepository1, 'obtenerTribunal',
], $lang, $idConvocatoria);
$dbRepository2 = new DBTribunalAprobacionRequisitosRepository();
$actas['aprobacionr'] = call_user_func([
$dbRepository2, 'obtenerAprobacionesPorConvocatoria',
], $lang, $idConvocatoria);
$dbRepository3 = new DBTribunalAprobacionMeritosRepository();
$actas['aprobacionm'] = call_user_func([
$dbRepository3, 'obtenerAprobacionesPorConvocatoria',
], $lang, $idConvocatoria);
$dbRepository4 = new DBTribunalAprobacionExamenRepository();
$actas['aprobacione'] = call_user_func([
$dbRepository4, 'obtenerAprobacionesPorConvocatoria',
], $lang, $idConvocatoria);
$convocatoriaFormateada = [
'id' => $idConvocatoria,
'referencia' => $convocatoria->getReferencia(),
'descripcion' => $convocatoria->getDescripcion(),
'trabajo' => $convocatoria->getPuestotrabajo(),
'finicio' => $convocatoria->getFechainicio(),
'ffin' => $convocatoria->getFechafin(),
'basesgenerales' => $convocatoria->getRutaarchivoconvocatoria(),
'basesespecificas' => $convocatoria->getRutaarchivoespecifico(),
'actas' => $actas,
'resolucionrequisitos' => $convocatoria->getRutaarchivorequisitos(),
'resolucionexamen' => $convocatoria->getRutaarchivoexamen(),
'resolucionmeritos' => $convocatoria->getRutaarchivoresolucionfinal(),
];
array_push($conv, $convocatoriaFormateada);
}
}
//dump($conv);
$this->load->view('reports/call.php', $conv);
}
}
?>