示例#1
0
    public function getShow()
    {
        $user = User::fromToken();
        $votaciones = VtVotacion::actualesInscrito($user, false);
        // Traer aunque no esté en acción.
        // Votaciones creadas por el usuario.
        $consulta = 'SELECT v.id as votacion_id, v.*
					FROM vt_votaciones v
					where v.user_id=? and v.year_id=? and v.deleted_at is null';
        $votacionesMias = DB::select($consulta, [$user->user_id, $user->year_id]);
        foreach ($votacionesMias as $key => $votMia) {
            // Debo crear otro array para verificar que ya no tenga el mismo evento.
            array_push($votaciones, $votMia);
        }
        $cantVot = count($votaciones);
        for ($j = 0; $j < $cantVot; $j++) {
            if ($votaciones[$j]->can_see_results) {
                $aspiraciones = VtAspiracion::where('votacion_id', $votaciones[$j]->votacion_id)->get();
                $result = array();
                foreach ($aspiraciones as $aspira) {
                    $candidatos = VtCandidato::porAspiracion($aspira->id, $user->year_id);
                    for ($i = 0; $i < count($candidatos); $i++) {
                        $votos = VtVoto::deCandidato($candidatos[$i]->candidato_id, $aspira->id)[0];
                        $candidatos[$i]->cantidad = $votos->cantidad;
                        $candidatos[$i]->total = $votos->total;
                    }
                    $aspira->candidatos = $candidatos;
                    array_push($result, $aspira);
                }
                $votaciones[$j]->aspiraciones = $result;
            }
        }
        return $votaciones;
    }
 public function getConaspiraciones()
 {
     $user = User::fromToken();
     if ($user->tipo == 'Alumno' || $user->tipo == 'Acudiente') {
         $votacion = VtVotacion::actualInscrito($user);
     } else {
         $votacion = VtVotacion::actual($user);
     }
     $aspiraciones = VtAspiracion::where('votacion_id', $votacion->id)->get();
     $particip = VtParticipante::one($user->id);
     $result = array();
     foreach ($aspiraciones as $aspira) {
         $candidatos = VtCandidato::porAspiracion($aspira->id, $user->year_id);
         $aspira->candidatos = $candidatos;
         $votado = [];
         if ($particip) {
             try {
                 $votado = VtVoto::votesInAspiracion($aspira->id, $particip->id);
             } catch (Exception $e) {
             }
         }
         $aspira->votado = $votado;
         array_push($result, $aspira);
     }
     return $result;
 }
示例#3
0
    public static function verificarVotosCompletos($votacion_id, $particip_id)
    {
        $aspiraciones = VtAspiracion::where('votacion_id', '=', $votacion_id)->get();
        $cons = 'SELECT vv.participante_id, vv.candidato_id, vp.votacion_id, vv.created_at
				FROM vt_votos vv
				inner join vt_participantes vp on vp.id=vv.participante_id and vv.participante_id=:participante_id
				inner join vt_candidatos vc on vc.id=vv.candidato_id
				inner join vt_aspiraciones va on va.id=vc.aspiracion_id and va.votacion_id=:votacion_id';
        $votosVotados = DB::select($cons, array('votacion_id' => $votacion_id, 'participante_id' => $particip_id));
        $cantVotados = count($votosVotados);
        if ($cantVotados < count($aspiraciones)) {
            $completo = false;
        } else {
            $completo = true;
        }
        return $completo;
    }
示例#4
0
    public static function participantesDeEvento($votacion_id, $year_id)
    {
        $consulta = 'SELECT * FROM (
				SELECT p.id as persona_id, p.nombres, p.apellidos, p.user_id, u.username, 
					("Pr") as tipo, p.sexo, u.email, p.fecha_nac, p.ciudad_nac, 
					u.imagen_id, IFNULL(i.nombre, IF(p.sexo="F","default_female.jpg", "default_male.jpg")) as imagen_nombre, 
					p.foto_id, IFNULL(i2.nombre, IF(p.sexo="F","default_female.jpg", "default_male.jpg")) as foto_nombre, 
					"N/A" as grupo_id, ("N/A") as nombre_grupo, ("N/A") as abrev_grupo, "N/A" as year_id  
					from profesores p 
					inner join users u on p.user_id=u.id
					left join images i on i.id=u.imagen_id
					left join images i2 on i2.id=p.foto_id
					where p.deleted_at is null
				union
				SELECT a.id as persona_id, a.nombres, a.apellidos, a.user_id, u.username, 
					("Al") as tipo, a.sexo, u.email, a.fecha_nac, a.ciudad_nac, 
					u.imagen_id, IFNULL(i.nombre, IF(a.sexo="F","default_female.jpg", "default_male.jpg")) as imagen_nombre, 
					a.foto_id, IFNULL(i2.nombre, IF(a.sexo="F","default_female.jpg", "default_male.jpg")) as foto_nombre, 
					g.id as grupo_id, g.nombre as nombre_grupo, g.abrev as abrev_grupo, g.year_id
					from alumnos a 
					inner join users u on a.user_id=u.id
					inner join matriculas m on m.alumno_id=a.id and m.matriculado=true
					inner join grupos g on g.id=m.grupo_id
					left join images i on i.id=u.imagen_id
					left join images i2 on i2.id=a.foto_id
					where a.deleted_at is null
				union
				SELECT ac.id as persona_id, ac.nombres, ac.apellidos, ac.user_id, u.username, 
					("Pr") as tipo, ac.sexo, u.email, ac.fecha_nac, ac.ciudad_nac, 
					u.imagen_id, IFNULL(i.nombre, IF(ac.sexo="F","default_female.jpg", "default_male.jpg")) as imagen_nombre, 
					ac.foto_id, IFNULL(i2.nombre, IF(ac.sexo="F","default_female.jpg", "default_male.jpg")) as foto_nombre, 
					"N/A" as grupo_id, ("N/A") as nombre_grupo, ("N/A") as abrev_grupo, "N/A" as year_id
					from acudientes ac 
					inner join users u on ac.user_id=u.id
					left join images i on i.id=u.imagen_id
					left join images i2 on i2.id=ac.foto_id
					where ac.deleted_at is null
				union
				SELECT u.id as persona_id, "" as nombres, "" as apellidos, u.id as user_id, u.username,
					("Us") as tipo, u.sexo, u.email, "N/A" as fecha_nac, "N/A" as ciudad_nac, 
					u.imagen_id, IFNULL(i.nombre, IF(u.sexo="F","default_female.jpg", "default_male.jpg")) as imagen_nombre, 
					u.imagen_id as foto_id, IFNULL(i.nombre, IF(u.sexo="F","default_female.jpg", "default_male.jpg")) as foto_nombre, 
					"N/A" as grupo_id, ("N/A") as nombre_grupo, ("N/A") as abrev_grupo, :year_idd as year_id  
					from users u
					left join images i on i.id=u.imagen_id 
					where u.id not in (SELECT p.user_id
								from profesores p 
								inner join users u on p.user_id=u.id
							union
							SELECT a.user_id
								from alumnos a 
								inner join users u on a.user_id=u.id
							union
							SELECT ac.user_id
								from acudientes ac 
								inner join users u on ac.user_id=u.id
						)
					and u.deleted_at is null ) usus
				inner join vt_participantes vp on vp.user_id=usus.user_id and vp.votacion_id=:votacion_id and usus.year_id=:year_id and vp.deleted_at is null';
        $participantes = DB::select($consulta, ['year_idd' => $year_id, 'votacion_id' => $votacion_id, 'year_id' => $year_id]);
        foreach ($participantes as $participante) {
            $aspiraciones = VtAspiracion::where('votacion_id', '=', $votacion_id)->get();
            $cons = 'SELECT vv.participante_id, vv.candidato_id, vp.votacion_id, vv.created_at
					FROM vt_votos vv
					inner join vt_participantes vp on vp.id=vv.participante_id and vv.participante_id=:participante_id and vp.deleted_at is null
					inner join vt_candidatos vc on vc.id=vv.candidato_id and vc.deleted_at is null
					inner join vt_aspiraciones va on va.id=vc.aspiracion_id and va.votacion_id=:votacion_id 
					WHERE vv.deleted_at is null';
            $votosVotados = DB::select($cons, array('votacion_id' => $votacion_id, 'participante_id' => $participante->id));
            $participante->votosVotados = $votosVotados;
            $cantVotados = count($votosVotados);
            $participante->votados = $cantVotados;
            if ($cantVotados < count($aspiraciones)) {
                $participante->completo = 'No';
            } else {
                $participante->completo = 'Si';
            }
        }
        return $participantes;
    }
 public function deleteDestroy($id)
 {
     $aspiracion = VtAspiracion::findOrFail($id);
     $aspiracion->delete();
     return $aspiracion;
 }
 public function getEnAccionInscrito()
 {
     $user = User::fromToken();
     $votaciones = VtVotacion::actualesInscrito($user, true);
     $cantVot = count($votaciones);
     if ($cantVot > 0) {
         for ($i = 0; $i < $cantVot; $i++) {
             $completos = VtVotacion::verificarVotosCompletos($votaciones[$i]->votacion_id, $votaciones[$i]->participante_id);
             $votaciones[$i]->completos = $completos;
             $aspiraciones = VtAspiracion::where('votacion_id', $votaciones[$i]->votacion_id)->get();
             $cantAsp = count($aspiraciones);
             if ($cantAsp > 0) {
                 for ($j = 0; $j < $cantAsp; $j++) {
                     $candidatos = VtCandidato::porAspiracion($aspiraciones[$j]->id, $votaciones[$i]->year_id);
                     for ($k = 0; $k < count($candidatos); $k++) {
                         $votos = VtVoto::deCandidato($candidatos[$k]->candidato_id, $aspiraciones[$j]->id)[0];
                         $candidatos[$k]->cantidad = $votos->cantidad;
                         $candidatos[$k]->total = $votos->total;
                     }
                     $aspiraciones[$j]->candidatos = $candidatos;
                 }
                 $votaciones[$i]->aspiraciones = $aspiraciones;
             } else {
                 $votaciones[$i]->aspiraciones = [];
             }
         }
     } else {
         return ['msg' => 'No está inscrito en algún evento que se encuentre en acción.'];
     }
     return $votaciones;
 }