= 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;
?>