Ejemplo n.º 1
0
function ActualizarDatos()
{
    session_start();
    if (!isset($_SESSION['Usuario'])) {
        Respoder(false, 'Debe iniciar sesión', null);
    }
    $user = new Usuario();
    $user->get('idUsuario', $_SESSION['Usuario']['idUsuario']);
    if (!$user->md_estado) {
        Respoder(false, 'No se pudo obtener el usuario', null);
    }
    if (!(($user->dni = filter_input(INPUT_POST, 'dni', FILTER_VALIDATE_INT)) && ($user->nombres = filter_input(INPUT_POST, 'nombres', FILTER_SANITIZE_STRING)) && ($user->apellidos = filter_input(INPUT_POST, 'apellidos', FILTER_SANITIZE_STRING)) && ($user->email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)))) {
        Respoder(false, 'Error al recibir parámetros', null);
    }
    $uAux = new Usuario();
    if ($user->dni != $_SESSION['Usuario']['dni'] && $uAux->get('dni', $user->dni)) {
        Respoder(false, 'Este DNI no está disponible', null);
    }
    if ($user->email != $_SESSION['Usuario']['email'] && $uAux->get('email', $user->email)) {
        Respoder(false, 'Este email no está disponible', null);
    }
    if ($user->edit()) {
        $_SESSION['Usuario'] = $user->toArray();
        Respoder(true, 'Información actualizada', null);
    } else {
        Respoder(false, $user->md_mensaje, $user->md_detalle);
    }
}
function CalificarInvitacion()
{
    session_start();
    if (!isset($_SESSION['Usuario'])) {
        Respoder(false, 'Debe iniciar sesión', null);
    }
    if ($_SESSION['Usuario']['tipo'] != 'B') {
        Respoder(false, 'No tiene autorización', null);
    }
    $Invitacion = new Invitacion();
    $Respuestas;
    $Puntajes;
    if (!(($Invitacion->idInvitacion = filter_input(INPUT_POST, 'idInvitacion', FILTER_VALIDATE_INT)) && ($Puntajes = filter_input(INPUT_POST, 'respuestas')))) {
        Respoder(false, 'Error al recibir parámetros', null);
    }
    $Puntajes = json_decode($Puntajes);
    if (is_null($Puntajes)) {
        Respoder(false, 'Error de JSON', 'No se pudo procesar el JSON recibido');
    }
    if (!$Invitacion->get('idInvitacion', $Invitacion->idInvitacion)) {
        Respoder(false, 'No se encontró la invitacion', '');
    }
    $Respuestas = (new Respuesta())->search($Invitacion->idInvitacion);
    if (count($Puntajes) != count($Respuestas)) {
        Respoder(false, 'Cantidades incorrectas', '', $Respuestas);
    }
    $rpp = array();
    foreach ($Puntajes as $keyPunt => $valPunt) {
        $encon = false;
        foreach ($Respuestas as $keyResp => $valResp) {
            if ($valResp->idRespuesta == $valPunt->idRespuesta) {
                $encon = true;
                $valResp->puntaje = $valPunt->puntaje;
                array_push($rpp, $valResp);
                break;
            }
        }
        if (!$encon) {
            Respoder(false, 'No se encontró idRespuesta: ' . $keyPunt, '');
        }
    }
    $acum = 0;
    foreach ($rpp as $key => $value) {
        $acum += $value->puntaje;
        if (!$value->edit()) {
            Respoder(false, 'Error al actualizar Rpta: ' . $value->idRespuesta, '', $value);
        }
    }
    $Invitacion->evaluado = true;
    $Invitacion->puntaje = $acum / count($Respuestas);
    $Invitacion->fchEval = new DateTime();
    if ($Invitacion->edit()) {
        Respoder(true, 'Respuestas calificadas', '');
    } else {
        Respoder(false, 'Error al actualizar invitacion: ', '');
    }
}
function EnviarInvitaciones()
{
    session_start();
    if (!isset($_SESSION['Usuario'])) {
        Respoder(false, 'Debe iniciar sesión', null);
    }
    $entre = new Entrevista();
    if (!($entre->idEntrevista = filter_input(INPUT_POST, 'idEntrevista', FILTER_VALIDATE_INT))) {
        Respoder(false, 'Error al recibir parámetros', null);
    }
    if (!$entre->get($entre->idEntrevista)) {
        Respoder(false, 'No se encontró la entrevista', null);
    }
    if ($entre->idUsuario != $_SESSION['Usuario']['idUsuario']) {
        Respoder(false, 'No está autorizado', null);
    }
    if (!($invitaciones = filter_input(INPUT_POST, 'invitaciones'))) {
        Respoder(false, 'Error al recibir parámetros 2', null);
    }
    $invitaciones = json_decode($invitaciones);
    if (is_null($invitaciones)) {
        Respoder(false, 'Error al recibir invitaciones', null);
    }
    $invError = array();
    $mail = new edoMailer();
    foreach ($invitaciones as $val) {
        $inv = new Invitacion();
        $inv->email = $val->email;
        $inv->nombres = $val->nombres;
        $inv->apellidos = $val->apellidos;
        $inv->idEntrevista = $entre->idEntrevista;
        if (isset($val->idUsuario) && strlen($val->idUsuario) > 0) {
            $inv->idUsuario = $val->idUsuario;
        } else {
            $inv->idUsuario = null;
        }
        if (!$inv->set()) {
            array_push($invError, array('email' => $inv->email, 'error' => $inv->md_mensaje));
        } else {
            $datos = array('email' => $inv->email, 'nombres' => $inv->nombres, 'apellidos' => $inv->apellidos, 'titulo' => $entre->titulo, 'fchInicio' => $entre->fchInicio->format(Entrevista::$fchFtoMail), 'fchFin' => $entre->fchFin->format(Entrevista::$fchFtoMail));
            if (is_null($inv->idUsuario)) {
                $datos['codigo'] = sha1($inv->idInvitacion);
            }
            if (!$mail->sendInvitacion($datos)) {
                array_push($invError, array('email' => $inv->email, 'error' => $mail->mensaje));
            }
        }
    }
    Respoder(true, 'Invitaciones enviadas', null, $invError);
}