|
|
@@ -92,35 +92,84 @@ class EventoController extends AuthController {
|
|
|
->select([
|
|
|
"{{Evento}}.id as eventoId",
|
|
|
"{{Resultado}}.accion as accionRes",
|
|
|
+ "{{Evento}}.redSocial as redSocial",
|
|
|
+ "{{Usuario}}.[[facebookVerificado]] as facebookVerificado",
|
|
|
+ "{{Usuario}}.[[twitterVerificado]] as twitterVerificado",
|
|
|
+ "{{Usuario}}.[[instagramVerificado]] as instagramVerificado",
|
|
|
])
|
|
|
->from("Evento")
|
|
|
->innerJoin("EventoGrupo", "{{EventoGrupo}}.[[idEvento]] = {{Evento}}.id")
|
|
|
->innerJoin("Grupo", "{{Grupo}}.id = {{EventoGrupo}}.[[idGrupo]]")
|
|
|
->innerJoin("UsuarioGrupo", "{{UsuarioGrupo}}.[[idGrupo]] = {{Grupo}}.id")
|
|
|
+ ->innerJoin("Usuario", "{{UsuarioGrupo}}.[[idUsuario]] = {{Usuario}}.id")
|
|
|
->leftJoin("Resultado", "{{Resultado}}.[[idEvento]] = {{Evento}}.id and {{Resultado}}.[[idUsuario]] = {{UsuarioGrupo}}.[[idUsuario]]")
|
|
|
- ->andWhere([
|
|
|
+ ->orderBy(["eventoId" => SORT_ASC]);
|
|
|
+
|
|
|
+ /* $query = (new Query())
|
|
|
+ ->select([
|
|
|
+ "{{Usuario}}.nombre as nombre",
|
|
|
+ "{{Usuario}}.facebook as facebook",
|
|
|
+ "{{Usuario}}.facebookVerificado as facebookVerificado",
|
|
|
+ "{{Usuario}}.twitter as twitter",
|
|
|
+ "{{Usuario}}.twitterVerificado as twitterVerificado",
|
|
|
+ "{{Usuario}}.instagram as instagram",
|
|
|
+ "{{Usuario}}.instagramVerificado as instagramVerificado",
|
|
|
+ "{{Usuario}}.id as uId",
|
|
|
+ // "{{Evento}}.id as eventoId",
|
|
|
+ // "{{Evento}}.redSocial",
|
|
|
+ "count({{Evento}}.id) as cantidadEventos",
|
|
|
+ "count({{Evento}}.[[redSocial]]) filter (where {{Evento}}.[[redSocial]] = Facebook) as eventosFacebook",
|
|
|
+ "count({{Evento}}.[[redSocial]]) filter (where {{Evento}}.[[redSocial]] = Twitter) as eventosTwitter",
|
|
|
+ "count({{Evento}}.[[redSocial]]) filter (where {{Evento}}.[[redSocial]] = Instagram) as eventosInstagram",
|
|
|
+ "count({{Resultado}}.accion) as cantidadResultados",
|
|
|
+ "(count({{Evento}}.id) - count({{Resultado}}.accion)) as cantidadPendientes",
|
|
|
+ ])
|
|
|
+ ->from("Evento")
|
|
|
+ ->innerJoin("EventoGrupo", "{{EventoGrupo}}.[[idEvento]] = {{Evento}}.id")
|
|
|
+ ->innerJoin("Grupo", "{{Grupo}}.id = {{EventoGrupo}}.[[idGrupo]]")
|
|
|
+ ->innerJoin("UsuarioGrupo", "{{UsuarioGrupo}}.[[idGrupo]] = {{Grupo}}.id")
|
|
|
+ ->innerJoin("Usuario", "{{Usuario}}.id = {{UsuarioGrupo}}.[[idUsuario]]")
|
|
|
+ ->leftJoin("Resultado", "{{Resultado}}.[[idEvento]] = {{Evento}}.id and {{Resultado}}.[[idUsuario]] = {{Usuario}}.id")
|
|
|
+ ->groupBy(["{{Usuario}}.nombre", "facebook", "facebookVerificado", "twitter", "twitterVerificado", "instagram", "instagramVerificado", "uId"]); */
|
|
|
+ // ->orderBy(["eventoId" => SORT_ASC]);
|
|
|
+
|
|
|
+ if ($idUsuario > 0) {
|
|
|
+ $query->andWhere(["{{UsuarioGrupo}}.[[idUsuario]]" => $idUsuario]);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($fechaInicio != "" && $fechaFinal != ""){
|
|
|
+ $query->andWhere([
|
|
|
"AND",
|
|
|
[">=", "fechaInicio", $fechaInicio],
|
|
|
["<=", "fechaFinal", $fechaFinal],
|
|
|
- ])
|
|
|
- ->andWhere(["{{UsuarioGrupo}}.[[idUsuario]]" => $idUsuario])
|
|
|
- ->orderBy(["eventoId" => SORT_ASC]);
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
$total = 0;
|
|
|
$participo = 0;
|
|
|
foreach($query->each() as $resultado) {
|
|
|
$total++;
|
|
|
+ if ($resultado["redSocial"] === "Facebook" && !isset($resultado["facebookVerificado"])){
|
|
|
+ $total--;
|
|
|
+ } else if ($resultado["redSocial"] === "Twitter" && !isset($resultado["twitterVerificado"])){
|
|
|
+ $total--;
|
|
|
+ } else if ($resultado["redSocial"] === "Instagram" && !isset($resultado["instagramVerificado"])){
|
|
|
+ $total--;
|
|
|
+ }
|
|
|
+
|
|
|
if ($resultado["accionRes"] !== null) {
|
|
|
$participo ++;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
+ };
|
|
|
return (new Respuesta())
|
|
|
->detalle([
|
|
|
"total" => $total,
|
|
|
"participo" => $participo,
|
|
|
"pendientes" => ($total - $participo)
|
|
|
]);
|
|
|
+ // return new Respuesta($query);
|
|
|
}
|
|
|
|
|
|
public function actionResultadosDependencia() {
|
|
|
@@ -241,40 +290,46 @@ class EventoController extends AuthController {
|
|
|
|
|
|
$queryDependencia = (new Query())
|
|
|
->select([
|
|
|
- "{{Evento}}.id as eventoId",
|
|
|
- "{{Resultado}}.accion as accionRes",
|
|
|
+ "{{Dependencia}}.id as dependenciaId",
|
|
|
+ "{{Dependencia}}.nombre as dependenciaNombre",
|
|
|
+ "COUNT({{Resultado}}.[[idUsuario]]) filter ( where {{Resultado}}.[[idUsuario]] is not null ) as conteoNotNull",
|
|
|
+ "COUNT({{UsuarioGrupo}}.[[idUsuario]]) as totalDependencia"
|
|
|
])
|
|
|
->from("Evento")
|
|
|
->innerJoin("EventoGrupo", "{{EventoGrupo}}.[[idEvento]] = {{Evento}}.id")
|
|
|
->innerJoin("Grupo", "{{Grupo}}.id = {{EventoGrupo}}.[[idGrupo]]")
|
|
|
->innerJoin("UsuarioGrupo", "{{UsuarioGrupo}}.[[idGrupo]] = {{Grupo}}.id")
|
|
|
- ->innerJoin("UsuarioDependencia", '{{UsuarioDependencia}}.[[idUsuario]] = {{UsuarioGrupo}}.[[idUsuario]]')
|
|
|
- ->leftJoin("Resultado", "{{Resultado}}.[[idEvento]] = {{Evento}}.id and {{Resultado}}.[[idUsuario]] = {{UsuarioGrupo}}.[[idUsuario]]")
|
|
|
+ ->innerJoin("UsuarioDependencia", "{{UsuarioDependencia}}.[[idUsuario]] = {{UsuarioGrupo}}.[[idUsuario]]")
|
|
|
+ ->innerJoin("Dependencia", "{{Dependencia}}.id = {{UsuarioDependencia}}.[[idDependencia]]")
|
|
|
+ ->leftJoin("Resultado", "{{Resultado}}.[[idEvento]] = {{Evento}}.id and {{Resultado}}.[[idUsuario]] = {{UsuarioDependencia}}.[[idUsuario]]")
|
|
|
->andWhere([
|
|
|
"AND",
|
|
|
[">=", "fechaInicio", $fechaInicio],
|
|
|
["<=", "fechaFinal", $fechaFinal],
|
|
|
])
|
|
|
->andWhere(["{{Evento}}.id" => $idEvento])
|
|
|
- ->orderBy(["eventoId" => SORT_ASC]);
|
|
|
+ ->groupBy([
|
|
|
+ "dependenciaId",
|
|
|
+ "dependenciaNombre"
|
|
|
+ ])
|
|
|
+ ->orderBy(["dependenciaNombre" => SORT_ASC]);
|
|
|
|
|
|
- $totalDependencia = 0;
|
|
|
- $participoDependencia = 0;
|
|
|
+ $dataDependencias = [];
|
|
|
foreach($queryDependencia->each() as $resultado) {
|
|
|
- $totalDependencia++;
|
|
|
- if ($resultado["accionRes"] !== null) {
|
|
|
- $participoDependencia ++;
|
|
|
- }
|
|
|
+ $dataDependencias[] = [
|
|
|
+ "id" => $resultado["dependenciaId"],
|
|
|
+ "nombre" => $resultado["dependenciaNombre"],
|
|
|
+ "participaciones" => $resultado["conteoNotNull"],
|
|
|
+ "pendientes" => $resultado["totalDependencia"] - $resultado["conteoNotNull"]
|
|
|
+ ];
|
|
|
}
|
|
|
|
|
|
return (new Respuesta())
|
|
|
->detalle([
|
|
|
- "totalResultadosDependencias" => $totalDependencia,
|
|
|
- "participoResultadosDependencias" => $participoDependencia,
|
|
|
- "pendientesResultadosDependencias" => ($totalDependencia - $participoDependencia),
|
|
|
"totalResultadosUsuarios" => $totalUsuario,
|
|
|
"participoResultadosUsuarios" => $participoUsuario,
|
|
|
- "pendientesResultadosUsuarios" => ($totalUsuario - $participoUsuario)
|
|
|
+ "pendientesResultadosUsuarios" => ($totalUsuario - $participoUsuario),
|
|
|
+ "datosDependencias" => $dataDependencias
|
|
|
]);
|
|
|
}
|
|
|
}
|