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; }
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; }
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; }