= 0 THEN ROUND( ( Round( SUM( scormvars.varValue ), 2 ) / ( SELECT COUNT( * ) FROM scormpkg WHERE scormpkg.idcategoria = categoria.id ) ), 2 ) ELSE '--' END AS calificacion, CASE WHEN ( COUNT( scormvars.varValue ) = ( SELECT COUNT( * ) FROM scormpkg WHERE scormpkg.idcategoria = categoria.id) ) THEN 'Completado' ELSE 'No Completado' END AS estado, CASE WHEN scormvars.numempl <> '' THEN CONCAT( COUNT( scormvars.varValue ), ' de ', ( SELECT COUNT( * ) FROM scormpkg WHERE scormpkg.idcategoria = categoria.id ) ) END AS visitado, DATE_FORMAT(scormvars.fecha, '%d-%m-%Y') AS fecha FROM scormvars INNER JOIN scormpkg ON scormpkg.id = scormvars.SCOInstanceID INNER JOIN categoria ON scormpkg.idcategoria = categoria.id INNER JOIN user ON user.numempl = scormvars.numempl INNER JOIN centrotrabajo ON centrotrabajo.centroid = user.centrotrabajoid INNER JOIN distrito ON distrito.distritoid = user.distritoid WHERE user.habilitado = 1 AND scormvars.varName = 'cmi.core.lesson_status' AND scormvars.varValue = 'completed' AND scormvars.numempl <> '' GROUP BY scormvars.numempl, categoria.clave HAVING max( fecha ) ORDER BY scormpkg.idcategoria ASC ) AS rs1 INNER JOIN categoria as c ON c.id = rs1.cat WHERE rs1.estado = 'Completado' GROUP BY rs1.numempl,rs1.cat ORDER BY c.nombre ) AS rs2 WHERE rs2.estado1 = 'Completado' GROUP BY rs2.nomdistrito,rs2.cat ORDER BY rs2.nomdistrito; */ $resultdata = mysqli_query($link, $sqlData); if( $resultdata ){ mysqli_data_seek($resultdata, 0); while ($row = mysqli_fetch_assoc ($resultdata)){ $data_array[] = $row; } } //----------------------------------------------------------------- //---------------------- COLUMNAS ---------------------------- //----------------------------------------------------------------- $sqlColumns = "SELECT * FROM viewReporteDistritoscolumnas;"; /* SELECT asignacion.id, asignacion.uid, asignacion.catid, categoria.clave, categoria.nombre, categoria.imagen, categoria.descripcion FROM asignacion INNER JOIN categoria ON asignacion.catid = categoria.id WHERE asignacion.uid <> '' AND categoria.habilitado = 1 GROUP BY categoria.clave; */ $resultcolumns = mysqli_query($link, $sqlColumns); if( $resultcolumns ){ mysqli_data_seek($resultcolumns, 0); while ($row = mysqli_fetch_assoc ($resultcolumns)){ $columns_array[] = $row; } } foreach ($columns_array as $key => $col) { //echo $col['nombre']; $categorias[$key] = $col['nombre']; $columns[$key] = array('title' => $col['nombre']); } //$periodo = array('title' => 'Periodo'); $distrito = array('title' => 'Distrito'); $total = array('title' => 'Total ingresos (activos)'); array_unshift($columns, $distrito); //array_unshift($columns, $periodo); array_push($columns, $total); //----------------------------------------------------------------- //---------------------- DISTRITOS ---------------------------- //----------------------------------------------------------------- $sqlDistritos = "SELECT * FROM viewReporteDistritosNombres;"; /* CREATE VIEW viewReporteDistritosNombres AS SELECT * FROM distrito WHERE distrito.habilitado = 1; */ $resultdistritos = mysqli_query($link, $sqlDistritos); if( $resultdistritos ){ mysqli_data_seek($resultdistritos, 0); while ($row = mysqli_fetch_assoc ($resultdistritos)){ $distritos[] = $row['nombredistrito']; } } //----------------------------------------------------------------- //-------------- TOTALES POR DISTRITO ------------------------- //----------------------------------------------------------------- $sqltotal = "SELECT * FROM viewReporteDistritosTotal;"; /* SELECT distrito.nombredistrito, COUNT(*) as total FROM user INNER JOIN distrito ON distrito.distritoid = user.distritoid WHERE user.habilitado = 1 AND distrito.habilitado = 1 GROUP BY user.distritoid; */ $resultTotal = mysqli_query($link, $sqltotal); if( $resultTotal ){ mysqli_data_seek($resultTotal, 0); while ($row = mysqli_fetch_assoc ($resultTotal)){ $distritosTotal[] = $row; } } $data = []; foreach ($distritos as $distrito => $dis) { $data[$distrito][] = $dis; foreach ($categorias as $categoria => $cat) { $flag = false; //echo $dis." - ".$cat; foreach ($data_array as $key => $da) { if($da['nomdistrito'] == $dis && $da['nomcat'] == $cat){ $flag = true; $valor = $da['total']; } } if ($flag == true) { //echo "- Encontrado"; $data[$distrito][] = $valor; }else{ //echo "- No encontrado"; $data[$distrito][] = 0; } //echo "

"; } $data[$distrito][] = $distritosTotal[$distrito]['total']; } $Grafica = []; foreach ($categorias as $numcat => $categoria) { $valores = []; $posicion = ($numcat+1); foreach ($distritos as $numdis => $dis) { array_push($valores, intval($data[$numdis][$posicion])); } $Grafica[$numcat] = array('name' => $categoria, 'data' => $valores); } $return->Graphic = $Grafica; $return->distritos = $distritos; $return->data = $data; $return->columns[] = $columns; mysqli_close($link); echo json_encode($return, JSON_UNESCAPED_UNICODE); exit; ?>