HEX
Server: Apache
System: Linux clpupre 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64
User: undanet (1000)
PHP: 7.4.3
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/undanet/dump/data/PortalEmpleo/src/Controller/ConvocatoriaController.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\Entity\DboCandidato;
use PortalEmpleo\Repository\DBCandidatoRepository;
use PortalEmpleo\Repository\DBCandidatoConvocatoriaRepository;
use PortalEmpleo\Repository\DBCandidatoIdiomaRepository;
use PortalEmpleo\Repository\DBCandidatoPerfilRepository;
use PortalEmpleo\Repository\DBConvocatoriaMeritoRepository;
use PortalEmpleo\Repository\DBConvocatoriaRepository;
use PortalEmpleo\Repository\DBConvocatoriaRequisitoRepository;
use PortalEmpleo\Repository\DBConvocatoriaResolucionRepository;
use PortalEmpleo\Repository\DBTribunalConvocatoriaRepository;
use PortalEmpleo\Repository\DBTribunalValoracionRepository;
use PortalEmpleo\Utils\Load;

class ConvocatoriaController 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 listarConvocatorias($lang)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $lConvocatorias = call_user_func(array($dbRepository, 'obtenerConvocatoriasAbiertas'), $lang);

        $this->load->view('ConvocatoriaView.php', $lConvocatorias);
    }

    public function listarConvocatoriasAdmin($lang)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $lConvocatorias = call_user_func(array($dbRepository, 'obtenerConvocatorias'), $lang, null);

        $this->load->view('ConvocatoriaViewAdmin.php', $lConvocatorias);
    }

    public function listarConvocatoriaCandidatos($lang, $idConvocatoria)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $data['lconvocatoria'] = call_user_func(array($dbRepository, 'obtenerConvocatoriasReferencia'), $lang, null);

        if(!isset($idConvocatoria) || $idConvocatoria==null)
        {
            if(isset($data['lconvocatoria']) && $data['lconvocatoria']!=null)
            {
                if(is_array($data['lconvocatoria']) && count($data['lconvocatoria'])>0 && is_object(reset($data['lconvocatoria'])))
                {
                    $dbRepository = new DBCandidatoConvocatoriaRepository();
                    $data['lcandidato'] = call_user_func(array($dbRepository, 'obtenerCandidatosPorConvocatoria'), $lang, reset($data['lconvocatoria'])->getIdconvocatoria());
                }
            }
            else
            {
                $data['lcandidato'] = null;
            }
        }
        else
        {
            $dbRepository = new DBCandidatoConvocatoriaRepository();
            $data['lcandidato'] = call_user_func(array($dbRepository, 'obtenerCandidatosPorConvocatoria'), $lang, $idConvocatoria);
        }

        $this->load->view('ConvocatoriaListaCandidatoView.php', $data);
    }

    public function listarConvocatoriaTribunal($lang, $idConvocatoria)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $data['lconvocatoria'] = call_user_func(array($dbRepository, 'obtenerConvocatoriasReferencia'), $lang, null);

        if(!isset($idConvocatoria) || $idConvocatoria==null)
        {
            if(isset($data['lconvocatoria']) && $data['lconvocatoria']!=null)
            {
                if(is_array($data['lconvocatoria']) && count($data['lconvocatoria'])>0 && is_object(reset($data['lconvocatoria'])))
                {
                    $dbRepository = new DBTribunalConvocatoriaRepository();
                    $data['ltribunal'] = call_user_func(array($dbRepository, 'obtenerTribunal'), $lang, reset($data['lconvocatoria'])->getIdconvocatoria());
                }
            }
            else
            {
                $data['ltribunal'] = null;
            }
        }
        else
        {
            $dbRepository = new DBTribunalConvocatoriaRepository();
            $data['ltribunal'] = call_user_func(array($dbRepository, 'obtenerTribunal'), $lang, $idConvocatoria);
        }

        $this->load->view('ConvocatoriaListaTribunalView.php', $data);
    }

    public function modificarConvocatoriaTribunal($lang, $idConvocatoria)
    {
        $dbRepository = new DBConvocatoriaRepository();

        if(isset($idConvocatoria) && $idConvocatoria!=null)
        {
            $data['lconvocatoria'] = call_user_func(array($dbRepository, 'obtenerConvocatorias'), $lang, $idConvocatoria);

            if(is_array($data['lconvocatoria']))
            {
                $data['lconvocatoria'] = reset($data['lconvocatoria']);
            }

            $dbRepository = new DBTribunalConvocatoriaRepository();
            $data['ltribunal'] = call_user_func(array($dbRepository, 'obtenerTribunal'), $lang, $idConvocatoria);

            //obtener los usuarios de WP
            $data['lusuariosWP'] = call_user_func(array($dbRepository, 'obtenerUsuariosWP'));

            //obtener los evaluadoreshabituales
        }
        else
        {
            $data = null;
        }

        $this->load->view('FormularioConvocatoriaTribunalView.php', $data);
    }

    public function obtenerTribunalPorConvocatoriayUsuario($lang, $idConvocatoria, $codigoUsuarioWP)
    {
        $dbRepository = new DBTribunalConvocatoriaRepository();

        if((isset($idConvocatoria) && $idConvocatoria!=null) && (isset($codigoUsuarioWP) && $codigoUsuarioWP!=null) )
        {
            $data = call_user_func(array($dbRepository, 'obtenerTribunalPorConvocatoriayUsuario'), $lang, $idConvocatoria, $codigoUsuarioWP);

            if($data->getIdtribunalconvocatoria() == null)
            {
                $data = null;
            }
        }
        else
        {
            $data = null;
        }

        return $data;
    }

    public function nuevaConvocatoria($lang)
    {
        $this->load->view('FormularioGestionConvocatoria.php', $lang);
    }

    public function modificarConvocatoria($idConvocatoria, $lang)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $convocatoria = call_user_func(array($dbRepository, 'obtenerConvocatorias'), $lang, $idConvocatoria);

        if(is_array($convocatoria))
        {
            $convocatoria = reset($convocatoria);
        
            $dbRepositoryResoluciones = new DBConvocatoriaResolucionRepository();
            $lresoluciones = call_user_func(array($dbRepositoryResoluciones, 'obtenerResoluciones'), $lang, $idConvocatoria);

            $dbRepositoryRequisitos = new DBConvocatoriaRequisitoRepository();
            $lrequisitos = call_user_func(array($dbRepositoryRequisitos, 'obtenerRequisitos'), $lang, $idConvocatoria);

            $dbRepositoryMeritos = new DBConvocatoriaMeritoRepository();
            $lmeritos = call_user_func(array($dbRepositoryMeritos, 'obtenerMeritos'), $lang, $idConvocatoria);

            $data['convocatoria'] = $convocatoria;
            $data['resoluciones'] = $lresoluciones;
            $data['requisitos'] = $lrequisitos;
            $data['meritos'] = $lmeritos;
        }
        else
        {
            $data['convocatoria'] = $convocatoria;
            $data['resoluciones'] = null;
            $data['requisitos'] = null;
            $data['meritos'] = null;
        }


        $this->load->view('FormularioGestionConvocatoria.php', $data);
    }

    public function actualizarConvocatoria($convocatoria, $lang)
    {
        $dbRepository = new DBConvocatoriaRepository();

        if($convocatoria)
        {
            if($convocatoria->getIdconvocatoria())
            {
                $lConvocatorias = call_user_func(array($dbRepository, 'actualizarConvocatoria'), $convocatoria);
            }
            else
            {
                $lConvocatorias = call_user_func(array($dbRepository, 'nuevaConvocatoria'), $convocatoria);
            }
        }

        if(is_array($lConvocatorias))
        {
            $lConvocatorias = reset($lConvocatorias);
            $idConvocatoria = $lConvocatorias->getIdconvocatoria();
        }
        else
        {
            $idConvocatoria = $lConvocatorias->getIdconvocatoria();
        }
        
        //$this->listarConvocatoriasAdmin($lang);
        $this->modificarConvocatoria($idConvocatoria, $lang);
    }

    public function detalleConvocatoria($idConvocatoria, $lang, $idCandidatoWP)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $convocatoria = call_user_func(array($dbRepository, 'obtenerConvocatorias'), $lang, $idConvocatoria);

        if(is_array($convocatoria))
        {
            $convocatoria = reset($convocatoria);
        }

        $data['convocatoria'] = $convocatoria;
        $data['candidatoWP'] = $idCandidatoWP;

        $this->load->view('DetalleConvocatoriaView.php', $data);
    }
    
    public function buscadorConvocatorias($lang)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $convocatoria = call_user_func(array($dbRepository, 'buscadorConvocatorias'), $lang);

        $this->load->view('ConvocatoriaBuscadorView.php', $convocatoria); 
    }

    public function nuevaResolucion($cvtResol, $lang)
    {
        $dbRepository = new DBConvocatoriaResolucionRepository();
        $cvRsl = call_user_func(array($dbRepository, 'nuevaResolucion'), $cvtResol);

        $this->modificarConvocatoria(($cvtResol->getCodigoconvocatoria())->getIdconvocatoria() , $lang);
    }

    public function quitarResolucion($cvtResol, $lang)
    {
        $dbRepository = new DBConvocatoriaResolucionRepository();
        $cvRsl = call_user_func(array($dbRepository, 'eliminarResolucion'), $cvtResol);

        if(isset($cvRsl))
        {
            $this->modificarConvocatoria($cvRsl , $lang);
        }
        else
        {
            $this->listarConvocatorias($lang);
        }
    }

    public function inscripcionConvocatoria($idConvocatoria, $idCandidatoWP, $lang)
    {
        if($idConvocatoria)
        {
            $dbRepository = new DBConvocatoriaRepository();
            $convocatoria = call_user_func(array($dbRepository, 'obtenerConvocatorias'), $lang, $idConvocatoria);

            if(is_array($convocatoria))
            {
                $convocatoria = reset($convocatoria);
            }

            $dbRepository = new DBCandidatoRepository();
            $candidato = call_user_func(array($dbRepository, 'obtenerCandidato'), $lang, $idCandidatoWP);

            if(is_array($candidato))
            {
                $candidato = reset($candidato);
            }

            if(is_object($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());
                */
                $dbRepositoryRequisitos = new DBConvocatoriaRequisitoRepository();
                $lrequisitos = call_user_func(array($dbRepositoryRequisitos, 'obtenerRequisitos'), $lang, $idConvocatoria);

                $dbRepositoryMeritos = new DBConvocatoriaMeritoRepository();
                $lmeritos = call_user_func(array($dbRepositoryMeritos, 'obtenerMeritos'), $lang, $idConvocatoria);

                $data['convocatoria'] = $convocatoria;
                $data['candidato'] = $candidato;
                $data['requisitos'] = $lrequisitos;
                $data['meritos'] = $lmeritos;
                //$data['listaidiomas'] = $lidiomas;
                //$data['listaperfiles'] = $lperfil;
            }
            else
            {
                $data['convocatoria'] = $convocatoria;
                $data['candidato'] = null;
                $data['requisitos'] = null;
                $data['meritos'] = null;
                //$data['listaidiomas'] = null;
                //$data['listaperfiles'] = null;
            }
            
            $this->load->view('FormularioInscripcionConvocatoriaView.php', $data);
        }
        else //Candidatura espontanea
        {
            $dbRepository = new DBCandidatoRepository();
            $candidato = call_user_func(array($dbRepository, 'obtenerCandidato'), $lang, $idCandidatoWP);

            if(is_array($candidato))
            {
                $candidato = reset($candidato);
            }

            if(is_object($candidato))
            {
                $data['convocatoria'] = null;
                $data['candidato'] = $candidato;
            }
            else
            {
                $data['convocatoria'] = null;
                $data['candidato'] = null;
            }

            $this->load->view('FormularioInscripcionConvocatoriaEspontaneaView.php', $data);
        }
    }

    public function insertarCandidatoConvocatoria($cndcvt, $idCandidatoWP, $lang)
    {
        //Buscar el candidato en funcion del idWP
        //asignarle el codigocandidato que le corresponde
        //insertar en bbdd el objeto $cndcvt
        $dbRepository = new DBCandidatoRepository();
        $candidato = call_user_func(array($dbRepository, 'obtenerCandidato'), $lang, $idCandidatoWP);

        if(is_array($candidato))
        {
            $candidato = reset($candidato);
        }
        if(is_object($candidato))
        {
            $cndcvt->setCodigocandidato($candidato->getIdcandidato());

            $dbRepositoryCndcvt = new DBCandidatoConvocatoriaRepository();
            $result = call_user_func(array($dbRepositoryCndcvt, 'nuevoCandidatoConvocatoria'), $cndcvt);
        }

        if(isset($result) && $result == -1)
        {
            $result = false;
        }

        $this->obtenerMisCandidaturas($idCandidatoWP, $lang, isset($result)?$result:null);
    }
    
    public function obtenerMisCandidaturas($idCandidatoWP, $lang, $esNuevo)
    {
        $dbRepository = new DBCandidatoRepository();
        $candidato = call_user_func(array($dbRepository, 'obtenerCandidato'), $lang, $idCandidatoWP);

        if(is_array($candidato))
        {
            $candidato = reset($candidato);
        }

        if(is_object($candidato))
        {
            $dbRepository = new DBCandidatoConvocatoriaRepository();
            $lcdtcvt = call_user_func(array($dbRepository, 'obtenerMisCandidaturas'), $lang, $candidato->getIdcandidato());

            $data['lang'] = $lang;
            $data['candidato'] = $candidato;
            $data['lconvocatorias'] = $lcdtcvt;
            $data['esnuevo'] = $esNuevo;
        }
        else
        {
            $candidato = new DboCandidato();
            $candidato->setCodigousuariowp($idCandidatoWP);

            $data['lang'] = $lang;
            $data['candidato'] = $candidato;
            $data['lconvocatorias'] = null;
            $data['esnuevo'] = $esNuevo;
        }

        $this->load->view('MisCandidaturasView.php', $data);
    }

    public function insertarCandidaturaEspontanea($cndcvt, $idCandidatoWP, $lang)
    {
        //Buscar el candidato en funcion del idWP
        //asignarle el codigocandidato que le corresponde
        //insertar en bbdd el objeto $cndcvt
        $dbRepository = new DBCandidatoRepository();
        $candidato = call_user_func(array($dbRepository, 'obtenerCandidato'), $lang, $idCandidatoWP);

        if(is_array($candidato))
        {
            $candidato = reset($candidato);
        }
        if(is_object($candidato))
        {
            $cndcvt->setCodigocandidato($candidato->getIdcandidato());

            $dbRepositoryCndcvt = new DBCandidatoConvocatoriaRepository();
            $result = call_user_func(array($dbRepositoryCndcvt, 'nuevaCandidaturaEspontanea'), $cndcvt);
        }

        $this->obtenerMisCandidaturas($idCandidatoWP, $lang, isset($result)?$result:null);
    }

    public function nuevoRequisito($cvtReqs, $lang)
    {
        $dbRepository = new DBConvocatoriaRequisitoRepository();
        $cvRqs = call_user_func(array($dbRepository, 'nuevoRequisito'), $cvtReqs);

        $this->modificarConvocatoria(($cvtReqs->getCodigoconvocatoria())->getIdconvocatoria() , $lang);
    }

    public function quitarRequisito($idcvtreq, $lang)
    {
        $dbRepository = new DBConvocatoriaRequisitoRepository();
        $cvrqs = call_user_func(array($dbRepository, 'eliminarRequisito'), $idcvtreq);

        $this->modificarConvocatoria($cvrqs , $lang);
    }

    public function nuevoMerito($cvtMrt, $lang)
    {
        $dbRepository = new DBConvocatoriaMeritoRepository();
        $cvmrt = call_user_func(array($dbRepository, 'nuevoMerito'), $cvtMrt);

        $this->modificarConvocatoria(($cvtMrt->getCodigoconvocatoria())->getIdconvocatoria() , $lang);
    }

    public function quitarMerito($idcvtmrt, $lang)
    {
        $dbRepository = new DBConvocatoriaMeritoRepository();
        $cvmrt = call_user_func(array($dbRepository, 'eliminarMerito'), $idcvtmrt);

        $this->modificarConvocatoria($cvmrt , $lang);
    }

    public function obtenerRoles($lang)
    {
        $dbRepository = new DBTribunalConvocatoriaRepository();
        $lroles = call_user_func(array($dbRepository, 'obtenerRoles'), $lang);

        return $lroles;
    }

    public function insertarTribunalConvocatoria($cvt, $lcvtTrbnl, $lang)
    {
        //comprobar si ya hay registros para esa cvt, y
        //    1. Ponerles perfil de candidato a los evaluadores (sólo a ellos, otros perfiles como rrhh no tendrian que ponerse como candidato)
        //    2. Ponerlos de baja
        //    3. Insertar los registros del nuevo tribunal
        //    4. Asignar el perfil de evaluador a los que tienen perfil candidato
        $dbRepository = new DBTribunalConvocatoriaRepository();
        call_user_func(array($dbRepository, 'quitarPerfilesEvaluadoresTribunalConvocatoria'), $cvt);
        call_user_func(array($dbRepository, 'borrarTribunalConvocatoria'), $cvt);

        //insertar los resgistros para cada uno de los elementos de la lista $lcvtTrbnl
        if(is_array($lcvtTrbnl))
        {
            foreach ($lcvtTrbnl as $cvtTrbnl) {
                call_user_func(array($dbRepository, 'insertarTribunalConvocatoria'), $cvt, $cvtTrbnl);
                call_user_func(array($dbRepository, 'asignarPerfilEvaluadorTribunalConvocatoria'), $cvt, $cvtTrbnl);
            }
        }
    }

    public function listarValoracionesConvocatoria($lang, $idConvocatoria, $idRequisito, $idMerito, $codigoUsuarioWP)
    {
        if(isset($codigoUsuarioWP) && is_numeric($codigoUsuarioWP))
        {
            $dbRepository = new DBTribunalConvocatoriaRepository(); //DBConvocatoriaRepository();
            $ltrbcvt = call_user_func(array($dbRepository, 'obtenerTribunalConvocatoriasPorUsuarioWP'), $lang, $codigoUsuarioWP);

            if(is_array($ltrbcvt))
            {
                $data['lconvocatoria'] = [];

                foreach ($ltrbcvt as $trbcvt) {
                    array_push($data['lconvocatoria'], $trbcvt->getCodigoconvocatoria());
                }
            }

            if(!isset($idConvocatoria) || $idConvocatoria==null)
            {
                if(isset($data['lconvocatoria']) && $data['lconvocatoria']!=null)
                {
                    if(is_array($data['lconvocatoria']) && count($data['lconvocatoria'])>0 && is_object(reset($data['lconvocatoria'])))
                    {
                        //$convocatoria = call_user_func(array($dbRepository, 'obtenerConvocatorias'), $lang, reset($data['lconvocatoria'])->getIdconvocatoria());
                        $convocatoria = reset($data['lconvocatoria']);
  
                        $data['requisitos'] = $this->obtenerRequisitosConvocatoria($lang, $convocatoria->getIdconvocatoria());
                        $data['meritos'] = $this->obtenerMeritosConvocatoria($lang, $convocatoria->getIdconvocatoria());
                        $data['convocatoria'] = $convocatoria;
                        $data['lcandidato'] = $this->obtenerCandidatosConvocatoria($lang, $convocatoria->getIdconvocatoria());
                    }
                    else
                    {
                        $data['requisitos'] = null;
                        $data['meritos'] = null;
                        $data['convocatoria'] = null;
                        $data['lcandidato'] = null;
                    }
                }
                else
                {
                    $data['requisitos'] = null;
                    $data['meritos'] = null;
                    $data['convocatoria'] = null;
                    $data['lcandidato'] = null;
                }
            }
            else
            {
                $dbRepository = new DBConvocatoriaRepository();
                $convocatoria = call_user_func(array($dbRepository, 'obtenerConvocatorias'), $lang, $idConvocatoria);

                if(is_array($convocatoria))
                {
                    $convocatoria = reset($convocatoria);
                }
                $data['convocatoria'] = $convocatoria;
                $data['requisitos'] = $this->obtenerRequisitosConvocatoria($lang, $idConvocatoria);
                $data['meritos'] = $this->obtenerMeritosConvocatoria($lang, $idConvocatoria);
                $data['lcandidato'] = $this->obtenerCandidatosConvocatoria($lang, $idConvocatoria);
            }

            //Obtener las valoraciones
            if($data['convocatoria'] != null && ($data['requisitos'] != null || $data['meritos'] != null))
            {
                if(!isset($idRequisito) && $idRequisito == null && !isset($idMerito) && $idMerito)
                {
                    if(isset($data['convocatoria']) && $data['convocatoria']!=null)
                    {
                        if(is_array($data['requisitos']) && count($data['requisitos'])>0 && is_object(reset($data['requisitos'])))
                        {
                            $data['lvaloraciones'] = $this->obtenerValoracionesCandidatos($lang, $data['convocatoria']->getIdconvocatoria(), $data['requisitos']->getIdconvocatoriarequisito(), null);
                        }
                        else
                        {
                            if(is_array($data['meritos']) && count($data['meritos'])>0 && is_object(reset($data['meritos'])))
                            {
                                $data['lvaloraciones'] = $this->obtenerValoracionesCandidatos($lang, $data['convocatoria']->getIdconvocatoria(), null, $data['meritos']->getIdconvocatoriamerito());
                            }
                            else
                            {
                                $data['lvaloraciones'] = null;
                            }
                        }
                    }
                }
                else
                {
                    if(isset($idRequisito) && $idRequisito != null)
                    {
                        $data['lvaloraciones'] = $this->obtenerValoracionesCandidatos($lang, $data['convocatoria']->getIdconvocatoria(), $idRequisito, null);
                    }
                    else if(isset($idMerito) && $idMerito != null)
                    {
                        $data['lvaloraciones'] = $this->obtenerValoracionesCandidatos($lang, $data['convocatoria']->getIdconvocatoria(), null, $idMerito);
                    }
                }
            }

            $this->load->view('TribunalValoracionView.php', $data);
        }
        else
        {
            //redirect al inicio
        }
    }
    
    public function obtenerRequisitosConvocatoria($lang, $idConvocatoria)
    {
        //Obtener Requisitos
        if(isset($idConvocatoria) && $idConvocatoria!=null)
        {
            $dbRepositoryRequisitos = new DBConvocatoriaRequisitoRepository();
            $lrequisitos = call_user_func(array($dbRepositoryRequisitos, 'obtenerRequisitos'), $lang, $idConvocatoria);

            $data['requisitos'] = $lrequisitos;
        }
        else
        {
            $data['requisitos'] = null;
        }

        return $data['requisitos'];
    }

    public function obtenerMeritosConvocatoria($lang, $idConvocatoria)
    {
        //Obtener Meritos
        if(isset($idConvocatoria) && $idConvocatoria!=null)
        {
            $dbRepositoryMeritos = new DBConvocatoriaMeritoRepository();
            $lmeritos = call_user_func(array($dbRepositoryMeritos, 'obtenerMeritos'), $lang, $idConvocatoria);

            $data['meritos'] = $lmeritos;
        }
        else
        {
            $data['meritos'] = null;
        }

        return $data['meritos'];
    }

    public function obtenerCandidatosConvocatoria($lang, $idConvocatoria)
    {
        $dbRepository = new DBConvocatoriaRepository();
        $data['lconvocatoria'] = call_user_func(array($dbRepository, 'obtenerConvocatoriasReferencia'), $lang, null);

        if(!isset($idConvocatoria) || $idConvocatoria==null)
        {
            if(isset($data['lconvocatoria']) && $data['lconvocatoria']!=null)
            {
                if(is_array($data['lconvocatoria']) && count($data['lconvocatoria'])>0 && is_object(reset($data['lconvocatoria'])))
                {
                    $dbRepository = new DBCandidatoConvocatoriaRepository();
                    $data['lcandidato'] = call_user_func(array($dbRepository, 'obtenerCandidatosPorConvocatoria'), $lang, reset($data['lconvocatoria'])->getIdconvocatoria());
                }
            }
            else
            {
                $data['lcandidato'] = null;
            }
        }
        else
        {
            $dbRepository = new DBCandidatoConvocatoriaRepository();
            $data['lcandidato'] = call_user_func(array($dbRepository, 'obtenerCandidatosPorConvocatoria'), $lang, $idConvocatoria);
        }

        return $data['lcandidato'];
    }

    public function obtenerValoracionesCandidatos($lang, $idConvocatoria, $idRequisito, $idMerito)
    {
        $dbRepository = new DBTribunalValoracionRepository();
        $lvaloraciones = call_user_func(array($dbRepository, 'obtenerTribunalValoracion'), $lang, $idConvocatoria, $idRequisito, $idMerito);

        return $lvaloraciones;
    }

    public function insertarTribunalValoracion($tribunalvaloracion, $codigoUsuarioWP, $lang)
    {
        if($tribunalvaloracion->getCodigoconvocatoria() != null)
        {
            //buscar el idtribunalconvocatoria por el usuarioWP y la convocatoria
            $trbcvt = $this->obtenerTribunalPorConvocatoriayUsuario($lang, ($tribunalvaloracion->getCodigoconvocatoria())->getIdconvocatoria(), $codigoUsuarioWP);

            if(isset($trbcvt) && $trbcvt != null)
            {
                if($trbcvt->getIdtribunalconvocatoria() != null && is_numeric($trbcvt->getIdtribunalconvocatoria()))
                {
                    $tribunalvaloracion->setCodigotribunalconvocatoria($trbcvt->getIdtribunalconvocatoria());

                    $dbRepository = new DBTribunalValoracionRepository();
                    call_user_func(array($dbRepository, 'insertarTribunalValoracion'), $tribunalvaloracion);
                }
            }
        }
    }
}
    
?>