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/www/wp-content/themes/panoramic-child/inc/functions.php
<?php

function wp_get_current_url()
{
    return home_url($_SERVER['REQUEST_URI']);
}

// retorna el id del usuario dado el rol buscando por tribunal
function getUseridbyRole($data, $codigo_role)
{
    $userid = 0;

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (!$miembrotribunal->getEssuplente()) {
                if (
                    ($miembrotribunal->getCodigorol())->getIdrol() ==
                    $codigo_role
                ) {
                    $userid = ($miembrotribunal->getCodigousuariowp())->getId();
                    break;
                }
            }
        }
    }

    return $userid;
}

// retorna el id de tribunalconvocatoria dado el rol buscando por el tribunal
function getIdTribunalConvocatoriabyRol($data, $codigo_role)
{
    $tribunalconvocatoria = 0;

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (!$miembrotribunal->getEssuplente()) {
                if (
                    ($miembrotribunal->getCodigorol())->getIdrol() ==
                    $codigo_role
                ) {
                    $tribunalconvocatoria =
                        $miembrotribunal->getIdtribunalconvocatoria();
                    break;
                }
            }
        }
    }

    return $tribunalconvocatoria;
}

// retorna el id de tribunalconvocatoria del evaluador logueado buscando por el tribunal
function getIdTribunalConvocatoriabyUser($data)
{
    $tribunalconvocatoria = 0;

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (!$miembrotribunal->getEssuplente()) {
                if (
                    ($miembrotribunal->getCodigousuariowp())->getId() ==
                    get_current_user_id()
                ) {
                    $tribunalconvocatoria =
                        $miembrotribunal->getIdtribunalconvocatoria();
                    break;
                }
            }
        }
    }

    return $tribunalconvocatoria;
}

// retorna el email de todos del tribunal como string
function getEmailTodosTribunal($data)
{
    $tribunalemail = '';

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (!$miembrotribunal->getEssuplente()) {
                if (
                    !user_can(($miembrotribunal->getCodigousuariowp())->getId(),
                        'administrator'
                    )
                ) {
                    $tribunalemail .= ($miembrotribunal->getCodigousuariowp())->getUserEmail()
                        . ',';
                }

            }
        }
    }

    return substr($tribunalemail, 0, -1);
}

// retorna el email de todos candidatos de la convocatoria como string
function getEmailTodosConvocatoria($data)
{
    $candidatosemail = '';

    if (isset($data['lcandidato'])) {
        foreach ($data['lcandidato'] as $candidato) {
            $candidatosemail .= (($candidato->getCodigocandidato())->getCodigousuariowp())->getUserEmail()
                . ',';
        }
    }

    return substr($candidatosemail, 0, -1);
}


// retorna el email de todos candidatos de la convocatoria como string
function getEmailTodosSuperadosConvocatoria($data)
{
    $candidatosemail = '';

    if (isset($data['lcandidato'])) {
        foreach ($data['lcandidato'] as $candidato) {
            if ($candidato->getRequisitosSuperados()) {
                $candidatosemail .= (($candidato->getCodigocandidato())->getCodigousuariowp())->getUserEmail()
                    . ',';
            }
        }
    }

    return substr($candidatosemail, 0, -1);
}

// retorna si el usuario logueado ya a aprobado
function estaAprobadoReq($data)
{
    $aprobadoid = false;

    if (isset($data['aprobacionr'])) {
        foreach ($data['aprobacionr'] as $aprobacion) {
            if (
                get_current_user_id() == (
                    ($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
                && $aprobacion->getEstaAprobado()
            ) {
                $aprobadoid = true;
            }
        }
    }

    return $aprobadoid;
}

// retorna si el usuario logueado ya a aprobado
function estaAprobadoMer($data)
{
    $aprobadoid = false;

    if (isset($data['aprobacionm'])) {
        foreach ($data['aprobacionm'] as $aprobacion) {
            if (
                get_current_user_id() == (
                    ($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
                && $aprobacion->getEstaAprobado()
            ) {
                $aprobadoid = true;
            }
        }
    }

    return $aprobadoid;
}

// retorna si el usuario logueado ya a aprobado
function estaAprobadoExa($data)
{
    $aprobadoid = false;

    if (isset($data['aprobacione'])) {
        foreach ($data['aprobacione'] as $aprobacion) {
            if (
                get_current_user_id() == (
                        ($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
                && $aprobacion->getEstaAprobado()
            ) {
                $aprobadoid = true;
            }
        }
    }

    return $aprobadoid;
}

// retorna verdadero si todos los del tribunal ya aprobaron
function todosAprobaronReq($data)
{
    $estaaprobado = 0;

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (
                !$miembrotribunal->getEssuplente()
                && !user_can(($miembrotribunal->getCodigousuariowp())->getId(),
                    'administrator'
                )
            ) {
                if (isset($data['aprobacionr'])) {
                    foreach ($data['aprobacionr'] as $aprobacion) {
                        if (($miembrotribunal->getCodigousuariowp())->getId()
                            == (($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()) {
                            if ($aprobacion->getEstaAprobado()) {
                                $estaaprobado++;
                            }
                        }
                    }
                }
            }
        }
    }

    return (tieneDosVocales($data))
        ? $estaaprobado > 3
        : $estaaprobado > 2;
}

function todosAprobaronMer($data)
{
    $estaaprobado = 0;

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (
                !$miembrotribunal->getEssuplente()
                && !user_can(($miembrotribunal->getCodigousuariowp())->getId(),
                    'administrator'
                )
            ) {
                if (isset($data['aprobacionm'])) {
                    foreach ($data['aprobacionm'] as $aprobacion) {
                        if (($miembrotribunal->getCodigousuariowp())->getId()
                            == (($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
                        ) {
                            if ($aprobacion->getEstaAprobado()) {
                                $estaaprobado++;
                            }
                        }
                    }
                }
            }
        }
    }

    return (tieneDosVocales($data))
        ? $estaaprobado > 3
        : $estaaprobado > 2;
}

function todosAprobaronExa($data)
{
    $estaaprobado = 0;

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (
                !$miembrotribunal->getEssuplente()
                && !user_can(($miembrotribunal->getCodigousuariowp())->getId(),
                    'administrator'
                )
            ) {
                if (isset($data['aprobacione'])) {
                    foreach ($data['aprobacione'] as $aprobacion) {
                        if (
                            ($miembrotribunal->getCodigousuariowp())->getId()
                            == (($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
                        ) {
                            if ($aprobacion->getEstaAprobado()) {
                                $estaaprobado++;
                            }
                        }
                    }
                }
            }
        }
    }

    return (tieneDosVocales($data))
        ? $estaaprobado > 3
        : $estaaprobado > 2;
}

// si fase actual es mayor q la fase de requisitos
function faseSuperiorAReq($data)
{
    $estado =
        ($data['convocatoria']->getCodigoestadoconvocatoria())->getIdestadoconvocatoria();

    return in_array($estado, [13, 14, 15, 4, 5, 11, 12, 6, 7, 8, 9]);
}

// si fase actual es mayor q la fase de exámen
function faseSuperiorAExa($data)
{
    $estado =
        ($data['convocatoria']->getCodigoestadoconvocatoria())->getIdestadoconvocatoria();

    return in_array($estado, [4, 5, 11, 12, 6, 7, 8, 9])
           && $data['convocatoria']->getTieneExamen();
}

// si fase actual es mayor q la fase de Mértios
function faseSuperiorAMer($data)
{
    $estado =
        ($data['convocatoria']->getCodigoestadoconvocatoria())->getIdestadoconvocatoria();

    return in_array($estado, [6, 7, 8, 9]);
}

//
function getFinished($data, $codigo_candidato)
{
    $return = false;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if (
                $valoracion->getEsConcluyente()
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == 5
            ) {
                $return = true;
                break;
            }
        }
    }

    return $return;
}

// revisa si estan terminado de evaluar todos los meritos, se comprueba q sea concluyente en el candidato codigo_candidato y q sea de meritos..
function getFinishedMerits($data, $codigo_candidato)
{
    $return = false;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if (
                $valoracion->getEsConcluyente()
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == 5
                && $valoracion->getCodigoconvocatoriamerito() != null
            ) {
                $return = true;
                break;
            }
        }
    }

    return $return;
}

// retorna el comentario de la valoracion dado el candidato, requisito y rol del evaluador
function getValorationR(
    $data, $codigo_merito_requisito, $codigo_candidato, $codigo_role
) {
    $return = "";

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if ($valoracion->getCodigoconvocatoriarequisito() != null) {
                $valoracion_codigo_merito_requisito =
                    ($valoracion->getCodigoconvocatoriarequisito())->getIdconvocatoriarequisito();
            } else {
                $valoracion_codigo_merito_requisito = null;
            }

            if (
                $valoracion_codigo_merito_requisito != null
                && $codigo_merito_requisito == $valoracion_codigo_merito_requisito
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == $codigo_role
            ) {
                $return = $valoracion->getComentario();
                break;
            }
        }
    }

    return $return;
}

// retorna el comentario de la valoracion dado el candidato, merito y rol del evaluador
function getValorationM(
    $data, $codigo_merito_requisito, $codigo_candidato, $codigo_role
) {
    $return = "";

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if ($valoracion->getCodigoconvocatoriamerito() != null) {
                $valoracion_codigo_merito_requisito =
                    ($valoracion->getCodigoconvocatoriamerito())->getIdconvocatoriamerito();
            } else {
                $valoracion_codigo_merito_requisito = null;
            }

            if (
                $valoracion_codigo_merito_requisito != null
                && $codigo_merito_requisito == $valoracion_codigo_merito_requisito
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == $codigo_role
            ) {

                $return = $valoracion->getComentario();
                break;
            }
        }
    }

    return $return;
}

// retorna la valoracion dado el candidato, requisito y rol del evaluador
function getInterview($data, $codigo_candidato)
{
    $return = "";

    if (isset($data['lcandidato'])) {
        foreach ($data['lcandidato'] as $lcandidato) {
            if (
                $codigo_candidato == ($lcandidato->getCodigocandidato())
                    ->getIdcandidato()
            ) {
                $return = $lcandidato->getEntrevista();
                break;
            }
        }
    }

    return $return;
}

// retorna la si esta superado el requisito dado el candidato, requisito y rol del evaluador
function getValorationState(
    $data, $codigo_merito_requisito, $codigo_candidato, $codigo_role
) {
    $return = true;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if ($valoracion->getCodigoconvocatoriarequisito() != null) {
                $valoracion_codigo_merito_requisito =
                    ($valoracion->getCodigoconvocatoriarequisito())->getIdconvocatoriarequisito();
            } else {
                $valoracion_codigo_merito_requisito = null;
            }

            if (
                $valoracion_codigo_merito_requisito != null
                && $codigo_merito_requisito == $valoracion_codigo_merito_requisito
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == $codigo_role
            ) {
                $return = $valoracion->getEstasuperado();
                break;
            }
        }
    }

    return $return;
}

// retorna la puntución del mérito dado el candidato, requisito y rol del evaluador
function getScore(
    $data, $codigo_merito_requisito, $codigo_candidato, $codigo_role
) {
    $return = 0;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if ($valoracion->getCodigoconvocatoriamerito() != null) {
                $valoracion_codigo_merito_requisito =
                    ($valoracion->getCodigoconvocatoriamerito())->getIdconvocatoriamerito();
            } else {
                $valoracion_codigo_merito_requisito = null;
            }

            if (
                $valoracion_codigo_merito_requisito != null
                && $valoracion->getCodigoconvocatoriarequisito() == null
                && $codigo_merito_requisito == $valoracion_codigo_merito_requisito
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == $codigo_role
            ) {
                $return = $valoracion->getPuntuacion();
                break;
            }
        }
    }

    return $return;
}

// retorna el id valoracion dado el candidato, requisito y rol del evaluador
function getIdValorationR(
    $data, $codigo_merito_requisito, $codigo_candidato, $codigo_role
) {
    $return = 0;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if ($valoracion->getCodigoconvocatoriarequisito() != null) {
                $valoracion_codigo_merito_requisito =
                    ($valoracion->getCodigoconvocatoriarequisito())->getIdconvocatoriarequisito();
            } else {
                $valoracion_codigo_merito_requisito = null;
            }

            if (
                $valoracion_codigo_merito_requisito != null
                && $codigo_merito_requisito == $valoracion_codigo_merito_requisito
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == $codigo_role
            ) {
                $return = $valoracion->getIdtribunalvaloracion();
                break;
            }
        }
    }

    return $return;
}

// retorna el id valoracion dado el candidato, requisito y rol del evaluador
function getIdValorationM(
    $data, $codigo_merito_requisito, $codigo_candidato, $codigo_role
) {
    $return = 0;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            if ($valoracion->getCodigoconvocatoriamerito() != null) {
                $valoracion_codigo_merito_requisito =
                    ($valoracion->getCodigoconvocatoriamerito())->getIdconvocatoriamerito();
            } else {
                $valoracion_codigo_merito_requisito = null;
            }

            if (
                $valoracion_codigo_merito_requisito != null
                && $codigo_merito_requisito == $valoracion_codigo_merito_requisito
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == $codigo_role
            ) {
                $return = $valoracion->getIdtribunalvaloracion();
                break;
            }
        }
    }

    return $return;
}

// retorna el id valoracion dado el candidato, rol del evaluador
function getIdValorationExamen($data, $codigo_candidato)
{
    $return = 0;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            $valoracion_examen =
                $valoracion->getCodigoconvocatoriarequisito() == null
                && $valoracion->getCodigoconvocatoriamerito() == null;

            if (
                $valoracion_examen
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == 5
            ) {
                $return = $valoracion->getIdtribunalvaloracion();
                break;
            }
        }
    }

    return $return;
}

// retorna el id valoracion dado el candidato, rol del evaluador
function getValorationExamenNota($data, $codigo_candidato)
{
    $return = 0;

    if (isset($data['lvaloraciones'])) {
        foreach ($data['lvaloraciones'] as $valoracion) {
            $valoracion_examen =
                $valoracion->getCodigoconvocatoriarequisito() == null
                && $valoracion->getCodigoconvocatoriamerito() == null;

            if (
                $valoracion_examen
                && $codigo_candidato == ($valoracion->getCodigocandidato())->getIdcandidato()
                && (($valoracion->getCodigotribunalconvocatoria())
                    ->getCodigoRol())->getIdrol() == 5
            ) {
                $return = $valoracion->getExamennota();
                break;
            }
        }
    }

    return $return;
}

// retorna si el usuario logueado ya aprobó
function CurrentUserWasSigned($data)
{
    if (isset($data['aprobacionr'])) {
        foreach ($data['aprobacionr'] as $aprobacion) {
            if (
                get_current_user_id() == (
                        ($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
            ) {
                return true;
            }
        }
    }

    return false;
}

// get id requisito en las aprobaciones
function getIdAprobacionRequisito($data)
{
    $aprobadoid = 0;

    if (isset($data['aprobacionr'])) {
        foreach ($data['aprobacionr'] as $aprobacion) {
            if (
                get_current_user_id()
                    == (($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
            ) {
                $aprobadoid = $aprobacion->getIdTribunalAprobacionRequisto();
            }
        }
    }

    return $aprobadoid;
}

// get id meritos en las aprobaciones
function getIdAprobacionMerito($data)
{
    $aprobadoid = 0;

    if (isset($data['aprobacionm'])) {
        foreach ($data['aprobacionm'] as $aprobacion) {
            if (
                get_current_user_id() == (
                    ($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
            ) {
                $aprobadoid = $aprobacion->getIdTribunalAprobacionMerito();
            }
        }
    }

    return $aprobadoid;
}

// get id meritos en las aprobaciones
function getIdAprobacionExamen($data)
{
    $aprobadoid = 0;

    if (isset($data['aprobacione'])) {
        foreach ($data['aprobacione'] as $aprobacion) {
            if (
                get_current_user_id() == (
                    ($aprobacion->getCodigotribunalconvocatoria())->getCodigousuariowp())->getId()
            ) {
                $aprobadoid = $aprobacion->getIdTribunalAprobacionExamen();
            }
        }
    }

    return $aprobadoid;
}

function sendEmailto($mailto, $subject, $message)
{

    $email = $mailto;
    $headers = [];

    add_filter('wp_mail_content_type',
        function ($content_type) {
            return 'text/html';
        }
    );
    $headers[] =
        'From: ' . get_bloginfo('name') . ' <' . get_option('admin_email') . '>'
        . "\r\n";

    wp_mail($email, $subject, $message, $headers);
    remove_filter('wp_mail_content_type', 'set_html_content_type');
}

function GetFechaFaseR($data)
{
    $date = new DateTime('1990-01-01');

    if (isset($data['aprobacionr'])) {
        foreach ($data['aprobacionr'] as $aprobacion) {
            if ($date < $aprobacion->getFecha()) {
                $date = $aprobacion->getFecha();
            }

        }
    } else {
        $date = new DateTime();
    }

    return $date;
}

function GetFechaFaseM($data)
{
    $date = new DateTime('1990-01-01');

    if (isset($data['aprobacionm'])) {
        foreach ($data['aprobacionm'] as $aprobacion) {
            if ($date < $aprobacion->getFecha()) {
                $date = $aprobacion->getFecha();
            }
        }
    } else {
        $date = new DateTime();
    }

    return $date;
}
/*
function GetFechaFaseE($data)
{
    $date = new DateTime('1990-01-01');
    if (isset($data['aprobacione'])) {
        foreach ($data['aprobacione'] as $aprobacion) {
            if ($date < $aprobacion->getFecha()) {
                $date = $aprobacion->getFecha();
            }

        }
    } else {
        $date = new DateTime();
    }
    return $date;
}

function GetFechaFaseExam($data)
{
    $date = new DateTime('1990-01-01');

    if (isset($data['aprobacione'])) {
        foreach ($data['aprobacione'] as $aprobacion) {
            if ($date < $aprobacion->getFecha()) {
                $date = $aprobacion->getFecha();
            }
        }
    } else {
        $date = new DateTime();
    }

    return $date;
}
*/
function GetImpugnacionId($data, $codigo_candidato, $esrequisito)
{
    $return = 0;

    if (isset($data['impugnaciones'])) {
        foreach ($data['impugnaciones'] as $impugnacion) {
            if (
                $codigo_candidato == ($impugnacion->getCodigocandidato())
                    ->getIdcandidato()
                && $esrequisito == $impugnacion->getEsRequisito()
            ) {
                $return = $impugnacion->getIdImpugnacion();
                break;
            }
        }
    }

    return $return;
}

function GetImpugnacionComentario($data, $codigo_candidato, $esrequisito)
{
    $return = '';

    if (isset($data['impugnaciones'])) {
        foreach ($data['impugnaciones'] as $impugnacion) {
            if (
                $codigo_candidato == ($impugnacion->getCodigocandidato())
                    ->getIdcandidato()
                && $esrequisito == $impugnacion->getEsRequisito()
            ) {
                $return = $impugnacion->getComentario();
                break;
            }
        }
    }

    return $return;
}

// retorna la valoracion dado el candidato, si esta impugnado
function getImpugnacionRequisitos($data, $codigo_candidato)
{
    $return = "";

    if (isset($data['lcandidato'])) {
        foreach ($data['lcandidato'] as $lcandidato) {
            if (
                $codigo_candidato == ($lcandidato->getCodigocandidato())
                    ->getIdcandidato()
            ) {
                $return = $lcandidato->getImpugnacionRequisitos();
                break;
            }
        }
    }

    return $return;
}

// retorna la valoracion dado el candidato, si esta impugnado
function getImpugnacionMeritos($data, $codigo_candidato)
{
    $return = false;

    if (isset($data['lcandidato'])) {
        foreach ($data['lcandidato'] as $lcandidato) {
            if (
                $codigo_candidato == ($lcandidato->getCodigocandidato())
                    ->getIdcandidato()
            ) {
                $return = $lcandidato->getImpungnacionMeritos();
                break;
            }
        }
    }

    return $return;
}

// retorna la si tiene el vocal 2
function tieneDosVocales($data)
{
    $estaaprobado = false;

    if (isset($data['ltribunal'])) {
        foreach ($data['ltribunal'] as $miembrotribunal) {
            if (
                !$miembrotribunal->getEssuplente()
                && ($miembrotribunal->getCodigoRol())->getIdrol() == 4
            ) {
                $estaaprobado = true;
                break;
            }
        }
    }

    return $estaaprobado;
}

// obtiene si hay algun candidato con el umbral superado
function alguienTieneUmbralSuperado($data)
{
    if (isset($data['lcandidato'])) {
        foreach ($data['lcandidato'] as $candidatoconvocatoria) {
            $total = 0;
            if (isset($data['meritos'])) {
                foreach ($data['meritos'] as $merito) {
                    $return = 0;
                    foreach ($data['lvaloraciones'] as $valoracion) {
                        if ($valoracion->getCodigoconvocatoriamerito() != null) {
                            $valoracion_codigo_merito_requisito =
                                ($valoracion->getCodigoconvocatoriamerito())->getIdconvocatoriamerito();
                            if (
                                $merito->getIdconvocatoriamerito() == $valoracion_codigo_merito_requisito
                                && ($candidatoconvocatoria->getCodigocandidato())->getIdcandidato() == ($valoracion->getCodigocandidato())->getIdcandidato()
                                && (($valoracion->getCodigotribunalconvocatoria())->getCodigoRol())->getIdrol()  == 5
                            ) {
                                $return = $valoracion->getPuntuacion();
                                $total += $return;
                                break;
                            }
                        }
                    }
                }
            }

            if ($total > $data['convocatoria']->getUmbraldepuntuacion()) {
                return true;
            }
        }
    }

    return false;
}

// obtiene si ya el candidato esta inscrito en la convocatoria idconvocatoria
function yaEstaInscrito($datalconvocatorias, $idconvocatoria): bool
{
    if (isset($datalconvocatorias)) {
        foreach ($datalconvocatorias as $datalconvocatoria) {
            if ($datalconvocatoria->getCodigoconvocatoria() != null
                && ($datalconvocatoria->getCodigoconvocatoria())->getIdconvocatoria()
                   == $idconvocatoria
            ) {
                return true;
            }
        }
    }

    return false;
}

// muestra las valoraciones de los requisitos en <td> por candidato y rol
function mostrarValoracionesRequisitosTd(
    $requisitos, $lvaloraciones, $candidatoconvocatoria, $rol
) {
    foreach ($requisitos as $requisito) {
        $tieneValoracion = false;

        if (isset($lvaloraciones)) {
            foreach ($lvaloraciones as $valoracion) {

                if ($valoracion->getCodigoconvocatoriarequisito() != null) {
                    $valoracion_codigo_merito_requisito =
                        ($valoracion->getCodigoconvocatoriarequisito())->getIdconvocatoriarequisito();
                } else {
                    $valoracion_codigo_merito_requisito = null;
                }

                if ($valoracion_codigo_merito_requisito != null
                    && $requisito->getIdconvocatoriarequisito()
                       == $valoracion_codigo_merito_requisito
                    && ($candidatoconvocatoria->getCodigocandidato())->getIdcandidato()
                       == ($valoracion->getCodigocandidato())->getIdcandidato()
                    && (($valoracion->getCodigotribunalconvocatoria())->getCodigoRol())->getIdrol()
                       == $rol) { ?>
                    <td><?php echo $valoracion->getComentario() ?></td>
                    <?php
                    $tieneValoracion = true;
                    break;
                }
            }
        }

        if (!$tieneValoracion) { ?>
            <td></td>
        <?php }
    }
}

// muestra las valoraciones de los meritos en <td> por candidato y rol
function mostrarValoracionesMeritosTd(
    $meritos, $lvaloraciones, $candidatoconvocatoria, $rol
) {
    foreach ($meritos as $merito) {
        $tieneValoracion = false;

        if (isset($lvaloraciones)) {
            foreach ($lvaloraciones as $valoracion) {

                if ($valoracion->getCodigoconvocatoriamerito() != null) {
                    $valoracion_codigo_merito_requisito =
                        ($valoracion->getCodigoconvocatoriamerito())->getIdconvocatoriamerito();
                } else {
                    $valoracion_codigo_merito_requisito = null;
                }

                if ($valoracion_codigo_merito_requisito != null
                    && $merito->getIdconvocatoriamerito()
                       == $valoracion_codigo_merito_requisito
                    && ($candidatoconvocatoria->getCodigocandidato())->getIdcandidato()
                       == ($valoracion->getCodigocandidato())->getIdcandidato()
                    && (($valoracion->getCodigotribunalconvocatoria())->getCodigoRol())->getIdrol()
                       == $rol) {
                    ?>
                    <td><?php echo $valoracion->getComentario() ?></td>
                    <?php
                    $tieneValoracion = true;
                    break;
                }
            }
        }

        if (!$tieneValoracion) { ?>
            <td></td>
        <?php }
    }
}

function mostrarValoracionesSuperadosRequisitosTd(
    $requisitos, $lvaloraciones, $candidatoconvocatoria, $rol
) {
    $firstreq = true;
    foreach ($requisitos as $requisito) {
        $tieneValoracion = false;

        if (isset($lvaloraciones)) {
            foreach ($lvaloraciones as $valoracion) {

                if ($valoracion->getCodigoconvocatoriarequisito() != null) {
                    $valoracion_codigo_merito_requisito =
                        ($valoracion->getCodigoconvocatoriarequisito())->getIdconvocatoriarequisito();
                } else {
                    $valoracion_codigo_merito_requisito = null;
                }

                if ($valoracion_codigo_merito_requisito != null
                    && $requisito->getIdconvocatoriarequisito()
                       == $valoracion_codigo_merito_requisito
                    && ($candidatoconvocatoria->getCodigocandidato())->getIdcandidato()
                       == ($valoracion->getCodigocandidato())->getIdcandidato()
                    && (($valoracion->getCodigotribunalconvocatoria())->getCodigoRol())->getIdrol()
                       == $rol) { ?>
                    <td style="text-align: center;" <?php echo $firstreq
                        ? 'class="first-req"'
                        : '' ?> ><?php echo $valoracion->getEstasuperado()
                            ? '1'
                            : '0' ?></td>
                    <?php
                    $tieneValoracion = true;
                    break;
                }
            }

        }

        if (!$tieneValoracion) { ?>
            <td <?php echo $firstreq
                ? 'class="first-req"'
                : '' ?>></td>
        <?php }
        $firstreq = false;
    }
}

function mostrarValoracionesSuperadosMeritosTd(
    $meritos, $lvaloraciones, $candidatoconvocatoria, $rol
) {
    $firstreq = true;
    foreach ($meritos as $merito) {
        $tieneValoracion = false;

        if (isset($lvaloraciones)) {
            foreach ($lvaloraciones as $valoracion) {

                if ($valoracion->getCodigoconvocatoriamerito() != null) {
                    $valoracion_codigo_merito_requisito =
                        ($valoracion->getCodigoconvocatoriamerito())->getIdconvocatoriamerito();
                } else {
                    $valoracion_codigo_merito_requisito = null;
                }

                if ($valoracion_codigo_merito_requisito != null
                    && $merito->getIdconvocatoriamerito()
                       == $valoracion_codigo_merito_requisito
                    && ($candidatoconvocatoria->getCodigocandidato())->getIdcandidato()
                       == ($valoracion->getCodigocandidato())->getIdcandidato()
                    && (($valoracion->getCodigotribunalconvocatoria())->getCodigoRol())->getIdrol()
                       == $rol) { ?>
                    <td style="text-align: center;" <?php echo $firstreq
                        ? 'class="first-req"'
                        : '' ?> ><?php echo $valoracion->getPuntuacion() ?></td>
                    <?php
                    $tieneValoracion = true;
                    break;
                }
            }
        }

        if (!$tieneValoracion) { ?>
            <td <?php echo $firstreq
                ? 'class="first-req"'
                : '' ?>></td>
        <?php }
        $firstreq = false;
    }
}

function getTotalPuntuacionMeritos(
    $meritos, $lvaloraciones, $candidatoconvocatoria
) {
    $total = 0;
    for ($i = 1; $i <= 5; $i++) {

        if (isset($meritos)) {
            foreach ($meritos as $merito) {

                if (isset($lvaloraciones)) {
                    foreach ($lvaloraciones as $valoracion) {

                        if ($valoracion->getCodigoconvocatoriamerito()
                            != null) {
                            $valoracion_codigo_merito_requisito =
                                ($valoracion->getCodigoconvocatoriamerito())->getIdconvocatoriamerito();
                        } else {
                            $valoracion_codigo_merito_requisito = null;
                        }

                        if ($valoracion_codigo_merito_requisito != null
                            && $merito->getIdconvocatoriamerito()
                               == $valoracion_codigo_merito_requisito
                            && ($candidatoconvocatoria->getCodigocandidato())->getIdcandidato()
                               == ($valoracion->getCodigocandidato())->getIdcandidato()
                            && (($valoracion->getCodigotribunalconvocatoria())->getCodigoRol())->getIdrol()
                               == $i) {
                            $total += $valoracion->getPuntuacion();
                            break;
                        }
                    }
                }
            }
        }
    }

    return $total;
}

// Devuelve el mes en espannol
function getMes($index): string
{
    $meses = [
        "Enero",
        "Febrero",
        "Marzo",
        "Abril",
        "Mayo",
        "Junio",
        "Julio",
        "Agosto",
        "Septiembre",
        "Octubre",
        "Noviembre",
        "Diciembre",
    ];
    return $meses[$index];
}

function candidatoTieneReqSuperados($candidatoconvocatoria)
{
    return $candidatoconvocatoria->getRequisitosSuperados();
}

function candidatoTieneExaSuperados($candidatoconvocatoria)
{
    return $candidatoconvocatoria->getExamenSuperado()
        || is_null($candidatoconvocatoria->getExamenSuperado());
}

function current_location()
{
    if (
        isset($_SERVER['HTTPS'])
        && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1)
        || isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
        && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
    ) {
        $protocol = 'https://';
    } else {
        $protocol = 'http://';
    }

    return $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}

function getEdad($bithdayDate)
{
    return date_diff($bithdayDate, date_create('now'))->y;
}

function getMinDate($arrayDates)
{
    return min($arrayDates)->format('m/d/Y');
}

function getMaxDate($arrayDates)
{
    return max($arrayDates)->format('m/d/Y');
}

function customImplode($array): string
{
    $return = '';
    foreach ($array as $item) {
        $return .= implode(' ', $item) . '<br>';
    }

    return $return;
}

?>