File: //home/undanet/dump/data/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\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(array($dbRepository, 'obtenerCandidato'), $lang, $idWp);
if(is_array($candidato))
{
$candidato = reset($candidato);
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
$lidiomas = call_user_func(array($dbRepositoryIdioma, 'obtenerIdiomas'), $lang, $candidato->getIdcandidato());
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
$lperfil = call_user_func(array($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(array($dbRepository, 'actualizarCandidatoPerfil'), $candidato);
}
else
{
$lConvocatorias = call_user_func(array($dbRepository, 'nuevoCandidatoPerfil'), $candidato);
}
}
}
public function quitarCandidatoIdioma($idCandIdioma, $idWp, $lang)
{
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
if($idCandIdioma)
{
call_user_func(array($dbRepositoryIdioma, 'eliminarCandidatoIdioma'), $idCandIdioma);
}
$this->detalleCandidato($idWp, $lang);
}
public function addCandidatoIdioma($candIdioma, $idWp, $lang)
{
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
if($candIdioma)
{
$existe = call_user_func(array($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(array($dbRepositoryIdioma, 'comprobarOtrosIdiomas'), $candIdioma);
if ($result === true)
{
//se añade nuevo "otro" idioma
call_user_func(array($dbRepositoryIdioma, 'nuevoCandidatoIdioma'), $candIdioma);
}
else
{
if($result!=null && $result->getIdcandidatoidioma()>0)
{
//Se modifica el "otro" idioma que existe
call_user_func(array($dbRepositoryIdioma, 'actualizarCandidatoIdioma'), $candIdioma);
}
else
{
//no se hace nada porque ya ha añadido el maximo o ha dado error
echo '<script language="javascript">alert("No puedes meter más idiomas");</script>';
}
}
}
else
{
//se modifica el que existe y no es "otro" idioma
call_user_func(array($dbRepositoryIdioma, 'actualizarCandidatoIdioma'), $candIdioma);
}
}
else
{
//no existe, insert nuevo
call_user_func(array($dbRepositoryIdioma, 'nuevoCandidatoIdioma'), $candIdioma);
}
}
$this->detalleCandidato($idWp, $lang);
}
public function quitarCandidatoPerfil($idCandPerfil, $idWp, $lang)
{
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
if($idCandPerfil)
{
call_user_func(array($dbRepositoryPerfil, 'eliminarCandidatoPerfil'), $idCandPerfil);
}
$this->detalleCandidato($idWp, $lang);
}
public function addPerfil($candPerfil, $idWp, $lang)
{
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
if($candPerfil)
{
$existe = call_user_func(array($dbRepositoryPerfil, 'comprobarCandidatoPerfil'), ($candPerfil->getCodigocandidato())->getIdcandidato(), ($candPerfil->getCodigoperfil())->getIdperfil());
if(isset($existe) && $existe != false)
{
//se modifica el que existe
call_user_func(array($dbRepositoryPerfil, 'actualizarCandidatoPerfil'), $candPerfil);
}
else
{
//no existe, insert nuevo
call_user_func(array($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(array($dbRepository, 'obtenerCandidatoById'), $lang, $idCandidato);
if(is_array($candidato))
{
$candidato = reset($candidato);
$dbRepositoryIdioma = new DBCandidatoIdiomaRepository();
$lidiomas = call_user_func(array($dbRepositoryIdioma, 'obtenerIdiomas'), $lang, $candidato->getIdcandidato());
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
$lperfil = call_user_func(array($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(array($dbRepository, 'obtenerCandidato'), $lang, null);
$data = [];
if(is_array($lcandidato))
{
foreach ($lcandidato as $candidato)
{
$dbRepositoryPerfil = new DBCandidatoPerfilRepository();
$lperfil = call_user_func(array($dbRepositoryPerfil, 'obtenerPerfiles'), $lang, $candidato->getIdcandidato());
if(is_array($lperfil))
{
foreach ($lperfil as $perfil)
{
array_push($data, array($candidato, $perfil));
}
}
else
{
array_push($data, array($candidato, null));
}
}
}
$this->load->view('CandidatoBuscadorView.php', $data);
}
}
?>