<?php
include_once("lib/general/cGeneral.php");
include_once("Model/UserAuth.php");
ini_set('display_errors', 1); 
class ViralityController extends cGeneral{

        public static function get_header_virality($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            /*#Donde $periodicidad es:
                @$periodicidad = daily / week
            */
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT);

            #PREPARO EL QUERY DIARIO / SEMANAL
            if($periodicidad == "week"){
                #QUERY SEMANAL
                $sql_header_virality = "SELECT 
                                            COUNT(DISTINCT subconsulta.idTema) AS countTemas,
                                            COUNT(DISTINCT p.id) AS CountPost 
                                        FROM
                                            (SELECT 
                                            t.id AS idTema,
                                            (SELECT 
                                                GROUP_CONCAT(descripcion) 
                                            FROM
                                                categorias ctg 
                                            WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                            t.fechaInsercion,
                                            (SELECT 
                                                GROUP_CONCAT(nombre) 
                                            FROM
                                                municipios m 
                                            WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                            ant.califAnt 
                                            FROM
                                            temas t 
                                            LEFT JOIN 
                                                (SELECT 
                                                ac2.idTemas,
                                                ac2.score AS califAnt 
                                                FROM
                                                auditCalif AS ac2 
                                                JOIN 
                                                    (SELECT 
                                                    ac.idTemas,
                                                    MAX(ac.fechaMod) AS fechaMod 
                                                    FROM
                                                    (SELECT 
                                                        aC.*,
                                                        c.count 
                                                    FROM
                                                        auditCalif aC 
                                                        JOIN 
                                                        (SELECT 
                                                            ac.idTemas,
                                                            COUNT(ac.fechaMod) AS COUNT
                                                        FROM
                                                            auditCalif ac 
                                                            JOIN 
                                                            (SELECT 
                                                                id,
                                                                fechaInsercion 
                                                            FROM
                                                                temas t 
                                                            WHERE (
                                                                fechaInsercion BETWEEN '".$date_start." 00:00:00' 
                                                                AND '".$date_end." 23:59:59'
                                                                ) 
                                                                AND idEstado = ".$id_edo." 
                                                                AND temaDestacado = 1 
                                                                AND activo = 1 
                                                                
                                                                /*BLOQUE DE CATEGORIAS*/
                                                                ".$category_custom." 
                                                                /*BLOQUE DE MUNICIPIO*/
                                                                ".$filter_mun."  
                                                                /*BLOQUE DE SECRETARIAS*/
                                                                ".$filter_secretaria."

                                                                ) AS tmp 
                                                            ON ac.idTemas = tmp.id 
                                                        WHERE DATE(ac.fechaMod) = DATE(tmp.fechaInsercion) 
                                                        GROUP BY ac.idTemas) AS c 
                                                        ON aC.idTemas = c.idTemas) AS ac 
                                                    JOIN 
                                                        (SELECT 
                                                        id,
                                                        fechaInsercion 
                                                        FROM
                                                        temas t 
                                                        WHERE (
                                                            fechaInsercion BETWEEN '".$date_start." 00:00:00' 
                                                            AND '".$date_end." 23:59:59'
                                                        ) 
                                                        AND idEstado = ".$id_edo." 
                                                        AND temaDestacado = 1 
                                                        AND activo = 1 
                                                        
                                                        /*BLOQUE DE CATEGORIAS*/
                                                        ".$category_custom." 
                                                        /*BLOQUE DE MUNICIPIO*/
                                                        ".$filter_mun."  
                                                        /*BLOQUE DE SECRETARIAS*/
                                                        ".$filter_secretaria."
                                                        
                                                        ) AS tmp 
                                                        ON ac.idTemas = tmp.id 
                                                    WHERE DATE(ac.fechaMod) = DATE(tmp.fechaInsercion) 
                                                    AND (
                                                        CASE
                                                        WHEN ac.count = 1 
                                                        THEN TRUE 
                                                        ELSE ac.score != 0 
                                                        END
                                                    ) 
                                                    GROUP BY ac.idTemas) AS puente 
                                                    ON ac2.idTemas = puente.idTemas 
                                                    AND ac2.fechaMod = puente.fechaMod 
                                                ORDER BY idTemas) AS ant 
                                                ON t.id = ant.idTemas 
                                            WHERE (
                                                t.fechaInsercion BETWEEN '".$date_start." 00:00:00' 
                                                AND '".$date_end." 23:59:59'
                                            ) 
                                            AND t.activo = 1 
                                            AND t.id 
                                            AND t.idEstado = ".$id_edo." 
                                            AND t.score != 0 
                                            AND t.temaDestacado = 1 
                                            AND t.tipo NOT IN (4, 5) 
                                            
                                            /*BLOQUE DE CATEGORIAS*/
                                            ".$category_custom." 
                                            /*BLOQUE DE MUNICIPIO*/
                                            ".$filter_mun."  
                                            /*BLOQUE DE SECRETARIAS*/
                                            ".$filter_secretaria."
                                            
                                            ) AS subconsulta 
                                            LEFT JOIN post p 
                                            ON subconsulta.idTema = p.`idTema` ;";
            }
            else{
                #QUERY PARA REPORTE DIARIO
                $sql_header_virality = "SELECT
                                            COUNT(DISTINCT subconsulta.idTema) AS countTemas,
                                            COUNT(DISTINCT p.id) AS CountPost
                                        FROM (
                                        SELECT 
                                        t.id AS idTema
                                                    FROM temas t
                                                    WHERE DATE(t.fechaInsercion) = DATE(NOW())
                                                    AND t.activo = 1 and t.id and t.idEstado = ".$id_edo." and t.score != 0 and t.temaDestacado = 1 AND t.tipo NOT IN (4,5)
                                                        /*BLOQUE DE CATEGORIAS*/
                                                        ".$category_custom." 
                                                        /*BLOQUE DE MUNICIPIO*/
                                                        ".$filter_mun."  
                                                        /*BLOQUE DE SECRETARIAS*/
                                                        ".$filter_secretaria."
                                                UNION ALL
                                                SELECT 
                                                t.id AS idTema
                                                    FROM temas t
                                                    JOIN (SELECT aC.idTemas, aC.score AS califAnt
                                                        FROM auditCalif AS aC
                                                        JOIN (SELECT idTemas, MAX(fechaMod) AS maxFecha
                                                            FROM (SELECT aC.*, c.count
                                                                FROM auditCalif aC
                                                                JOIN (
                                                                    SELECT idTemas, COUNT(*) AS count FROM auditCalif
                                                                    WHERE idTemas IN (
                                                                        SELECT id
                                                                        FROM temas t
                                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(),1))
                                                                            AND t.activo = 1 AND t.idEstado = ".$id_edo." AND t.temaDestacado = 1)
                                                                    AND DATE(fechaMod) = DATE(SUBDATE(NOW(),1))
                                                                    GROUP BY idTemas
                                                                ) AS c
                                                                ON aC.idTemas = c.idTemas
                                                                ORDER BY aC.idTemas) AS wC
                                                            WHERE (CASE
                                                                    WHEN count = 1 THEN TRUE
                                                                    ELSE score != 0
                                                                END)
                                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(),1))
                                                            GROUP BY idTemas) AS puente
                                                        ON puente.maxFecha = aC.fechaMod AND puente.idTemas = aC.idTemas) AS ant
                                                    ON t.id = ant.idTemas
                                                    WHERE (t.score - ant.califAnt) >= 10 AND t.tipo NOT IN (4,5)
                                                        /*BLOQUE DE CATEGORIAS*/
                                                        ".$category_custom." 
                                                        /*BLOQUE DE MUNICIPIO*/
                                                        ".$filter_mun."  
                                                        /*BLOQUE DE SECRETARIAS*/
                                                        ".$filter_secretaria."
                                                    ) AS subconsulta
                                        LEFT JOIN post p ON subconsulta.idTema = p.idTema;"; 
            }

            #Consulto la data de header de reporte
            
            $resultado = mysqli_query($ConfigMySQLDS,$sql_header_virality);
                            

            try{
                if (!$resultado) {
                    echo mysqli_errno($ConfigMySQLDS) . ": " . mysqli_error($ConfigMySQLDS);
                    echo "Error de BD, no se pudo consultar la base de datos get_header_virality" ;
                    #$General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                }

                $response["totalTemas"] = (isset($get_row[0]["countTemas"])) ? $get_row[0]["countTemas"] : 0;
                $response["totalPost"] = (isset($get_row[0]["CountPost"])) ? $get_row[0]["CountPost"] : 0;                          
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_virality($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;
            
            
            #Consulto la data de header de reporte
            #PREPARO EL QUERY DIARIO / SEMANAL
            if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
               $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria.   
                                        "ORDER BY score DESC ";
                                        


                                        if((!empty($category_custom) && isset($category_custom)) || (!empty($filter_secretaria) && isset($filter_secretaria))){
                                            $sql_top_virality .= " LIMIT 10;";
                                        }
                                        else{
                                            $sql_top_virality .= ";";
                                        }
                                        
            }
            else{
                
                #QUERY PARA REPORTE DIARIO
               $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                         ORDER BY score DESC ";
                                        


                                         if((!empty($category_custom) && isset($category_custom)) || (!empty($filter_secretaria) && isset($filter_secretaria))){
                                             $sql_top_virality .= " ;";
                                         }
                                         else{
                                             $sql_top_virality .= " LIMIT 10;";
                                         }

                                         
             
            }
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos get_modulo_virality " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos 1 ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }
                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function check_ismun($id_edo){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

            #Consulto la data de header de reporte
            $sql_checkismun = "SELECT 
                                        isMun 
                                    FROM
                                        entidades 
                                    WHERE id = ".$id_edo." 
                                    LIMIT 1 ;
                                    ";
                    
            $resultado = mysqli_query($ConfigMySQLDS,$sql_checkismun);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $get_row[0]["isMun"];

        }

        public static function get_modulo_gobernador($id_edo,$cat_alcalde_gob,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

            #PREPARO EL QUERY DIARIO / SEMANAL
            if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_gobernadora = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
               $sql_top_gobernadora = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        AND t.categorias LIKE '".$cat_alcalde_gob."'
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                AND t.categorias LIKE '".$cat_alcalde_gob."'
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                        
                                        AND t.categorias LIKE '".$cat_alcalde_gob."'
                                        ORDER BY score DESC LIMIT 10;";
            }
           
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_gobernadora);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                    for($x=0;count($get_row)>$x;$x++){
                        $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                    }
                }

                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_medios_nacionales($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

             #PREPARO EL QUERY DIARIO / SEMANAL
             if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo = 4
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo = 4 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo = 4
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }

            #Consulto la data de header de reporte
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }
                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }
        
        public static function get_modulo_acciones_gobierno($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

             #PREPARO EL QUERY DIARIO / SEMANAL
             if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo = 2
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo = 2 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo = 2
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }
           
                    
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }
                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_seguridad_proteccion($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

             #PREPARO EL QUERY DIARIO / SEMANAL
             if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND (t.categorias LIKE '%30%' OR t.categorias LIKE '%32%')
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo NOT IN (4, 5) 
                                        AND (t.categorias LIKE '%30%' OR t.categorias LIKE '%32%')
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND (t.categorias LIKE '%30%' OR t.categorias LIKE '%32%')
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }
            #Consulto la data de header de reporte
            /* $sql_top_virality = "(SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.urlImagen,
                                        t.nombre AS nombreTema,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias
                                    FROM
                                        temas t 
                                        JOIN 
                                        (SELECT 
                                            aC.idTemas,
                                            MAX(aC.score) AS califAnt 
                                        FROM
                                            auditCalif AS aC 
                                        WHERE aC.idTemas IN 
                                            (SELECT 
                                            id 
                                            FROM
                                            temas tt 
                                            WHERE DATE(tt.fechaInsercion) BETWEEN'".$date_start." 00:00:00' AND '".$date_end." 23:59:59'
                                            AND tt.activo = 1 
                                            AND tt.idEstado = ".$id_edo." 
                                            AND tt.temaDestacado = 1) 
                                            AND DATE(aC.fechaMod) BETWEEN'".$date_start." 00:00:00' AND '".$date_end." 23:59:59' 
                                        GROUP BY aC.idTemas) AS ant 
                                        ON t.id = ant.idTemas 
                                    WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND (t.categorias LIKE '%30%' OR t.categorias LIKE '%32%')) 
                                    UNION
                                    ALL 
                                    (SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.urlImagen,
                                        t.nombre nombreTema,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion)  BETWEEN '".$date_start." 00:00:00' AND '".$date_end." 23:59:59'
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND (t.categorias LIKE '%30%' OR t.categorias LIKE '%32%')) 
                                    ORDER BY score DESC LIMIT 10 ;";                                    
            */
          
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }

                
                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_descontento_social($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

            #PREPARO EL QUERY DIARIO / SEMANAL
            if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND (t.categorias LIKE '%18%' OR t.categorias LIKE '%40%')
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo NOT IN (4, 5) 
                                                        AND (t.categorias LIKE '%18%' OR t.categorias LIKE '%40%')
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND (t.categorias LIKE '%18%' OR t.categorias LIKE '%40%')
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }
            #Consulto la data de header de reporte
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }

                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_politica($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

             #PREPARO EL QUERY DIARIO / SEMANAL
             if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND t.categorias LIKE '%26%'
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo NOT IN (4, 5) 
                                                        AND t.categorias LIKE '%26%'
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND t.categorias LIKE '%26%'
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }

            #Consulto la data de header de reporte
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }
                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_titulares_dependencias($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

             #PREPARO EL QUERY DIARIO / SEMANAL
             if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND t.categorias LIKE '%41%'
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo NOT IN (4, 5) 
                                                        AND t.categorias LIKE '%41%'
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo NOT IN (4, 5) 
                                        AND t.categorias LIKE '%41%'
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }


            #Consulto la data de header de reporte
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }

                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_columnas_opinion($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT);

            #PREPARO EL QUERY DIARIO / SEMANAL
            if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        AND t.tipo = 1
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo = 1
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo = 1
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }

            #Consulto la data de header de reporte
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }
                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function get_modulo_crecimiento_mediatico($id_edo,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;



            #Consulto la data de header de reporte
            $sql_top_virality = "
            (SELECT
                t.score,
                t.fechaCreacion,
                t.urlImagen,
                t.nombre AS nombreTema,
                (SELECT GROUP_CONCAT(nombre) FROM municipios m WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                ant.califAnt
            FROM temas t
            JOIN (
                SELECT
                    aC.idTemas,
                    MAX(aC.score) AS califAnt
                FROM auditCalif AS aC
                WHERE aC.idTemas IN (
                    SELECT id
                    FROM temas tt
                    WHERE DATE(tt.fechaInsercion) BETWEEN'".$date_start." 00:00:00' AND '".$date_end." 23:59:59'
                    AND tt.activo = 1 AND tt.idEstado = ".$id_edo." AND tt.temaDestacado = 1
                )
                AND DATE(aC.fechaMod) BETWEEN'".$date_start." 00:00:00' AND '".$date_end." 23:59:59'
                GROUP BY aC.idTemas
            ) AS ant ON t.id = ant.idTemas
            WHERE (t.score - ant.califAnt) >= 10 AND t.tipo NOT IN (4, 5) 
            /*BLOQUE DE CATEGORIAS*/
            ".$category_custom." 
            /*BLOQUE DE MUNICIPIO*/
            ".$filter_mun."  
            /*BLOQUE DE SECRETARIAS*/
            ".$filter_secretaria."
            ) ORDER BY t.score DESC LIMIT 10;";

                   
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos get_modulo_for_mun " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                

                                        
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            for($x=0;count($get_row)>$x;$x++){
                $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
            }
            
            return $get_row;

        }

        public static function get_name_mun($id_mun){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

            #Consulto la data de header de reporte
            $sql_checknamemun = "SELECT 
                                    nombre 
                                FROM
                                    municipios 
                                WHERE id = ".$id_mun." 
                                LIMIT 1 ;";
                    
            $resultado = mysqli_query($ConfigMySQLDS,$sql_checknamemun);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos get_name_mun" );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $get_row[0]["nombre"];

        }
    
        public static function get_modulo_for_mun($id_edo,$array_mun,$date_start,$date_end,$periodicidad,$category_custom,$filter_mun,$filter_secretaria){
            global $General;
            $ConfigMySQLDS = $General->getConexionDS(MOD_AMBIENT) ;

            #PREPARO EL QUERY DIARIO / SEMANAL
            if($periodicidad == "week"){
                #QUERY SEMANAL
                ##REVISAR QUERY SEMANAL
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        -- FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                                AND t.tipo NOT IN (4, 5) 
                                                
                                                /*BLOQUE DE CATEGORIAS*/
                                                ".$category_custom." 
                                                /*BLOQUE DE MUNICIPIO*/
                                                ".$filter_mun."  
                                                /*BLOQUE DE SECRETARIAS*/
                                                ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        -- *** FALTA UN BLOQUE DE TIPO YA QUE EN ALGUNAS CONSULTAS SOLO DEJA UN TIPO
                                        AND t.tipo NOT IN (4, 5) 
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE MUNICIPIO*/
                                        ".$filter_mun."  
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria." 
                                        
                                        -- /BLOQUE DE SECRETARIAS/
                                        
                                        AND t.secretarias IN (23, 16) ORDER BY score DESC LIMIT 10;";
            }
            else{                
                #QUERY PARA REPORTE DIARIO
                $sql_top_virality = "SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                        GROUP_CONCAT(descripcion) 
                                        FROM
                                        categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                        GROUP_CONCAT(nombre) 
                                        FROM
                                        municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        NULL AS califAnt 
                                    FROM
                                        temas t 
                                    WHERE DATE(t.fechaInsercion) = DATE(NOW()) 
                                        AND t.activo = 1 
                                        AND t.id 
                                        AND t.idEstado = ".$id_edo." 
                                        AND t.score != 0 
                                        AND t.temaDestacado = 1 
                                        
                                        AND t.tipo NOT IN (4,5)
                                        AND t.municipios in (".$array_mun.")
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."
                                        
                                        UNION
                                        ALL 
                                        SELECT 
                                        t.score,
                                        t.fechaCreacion,
                                        t.id,
                                        t.municipios,
                                        t.temaDestacado,
                                        t.urlImagen,
                                        t.tipo,
                                        t.nombre nombreTema,
                                        t.categorias,
                                        (SELECT 
                                            GROUP_CONCAT(descripcion) 
                                        FROM
                                            categorias ctg 
                                        WHERE CONCAT(',', t.categorias, ',') LIKE CONCAT('%,', ctg.id, ',%')) AS secretaria,
                                        t.fechaInsercion,
                                        (SELECT 
                                            GROUP_CONCAT(nombre) 
                                        FROM
                                            municipios m 
                                        WHERE CONCAT(',', t.municipios, ',') LIKE CONCAT('%,', m.id, ',%')) AS alcaldias,
                                        ant.califAnt 
                                        FROM
                                        temas t 
                                        JOIN 
                                            (SELECT 
                                            aC.idTemas,
                                            aC.score AS califAnt 
                                            FROM
                                            auditCalif AS aC 
                                            JOIN 
                                                (SELECT 
                                                idTemas,
                                                MAX(fechaMod) AS maxFecha 
                                                FROM
                                                (SELECT 
                                                    aC.*,
                                                    c.count 
                                                FROM
                                                    auditCalif aC 
                                                    JOIN 
                                                    (SELECT 
                                                        idTemas,
                                                        COUNT(*) AS COUNT
                                                    FROM
                                                        auditCalif 
                                                    WHERE idTemas IN 
                                                        (SELECT 
                                                        id 
                                                        FROM
                                                        temas t 
                                                        WHERE DATE(t.fechaInsercion) = DATE(SUBDATE(NOW(), 1)) 
                                                        AND t.activo = 1 
                                                        AND t.idEstado = ".$id_edo." 
                                                        AND t.temaDestacado = 1
                                                        
                                                        AND t.tipo NOT IN (4,5)
                                                        AND t.municipios in (".$array_mun.")
                                                
                                                        /*BLOQUE DE CATEGORIAS*/
                                                        ".$category_custom." 
                                                        /*BLOQUE DE SECRETARIAS*/
                                                        ".$filter_secretaria."
                                                        
                                                        ) 
                                                        AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                    GROUP BY idTemas) AS c 
                                                    ON aC.idTemas = c.idTemas 
                                                ORDER BY aC.idTemas) AS wC 
                                                WHERE (
                                                    CASE
                                                    WHEN COUNT= 1 
                                                    THEN TRUE 
                                                    ELSE score != 0 
                                                    END
                                                ) 
                                                AND DATE(fechaMod) = DATE(SUBDATE(NOW(), 1)) 
                                                GROUP BY idTemas) AS puente 
                                                ON puente.maxFecha = aC.fechaMod 
                                                AND puente.idTemas = aC.idTemas) AS ant 
                                            ON t.id = ant.idTemas 
                                        WHERE (t.score - ant.califAnt) >= 10 
                                        AND t.tipo NOT IN (4,5)
                                        AND t.municipios in (".$array_mun.")
                                        
                                        /*BLOQUE DE CATEGORIAS*/
                                        ".$category_custom." 
                                        /*BLOQUE DE SECRETARIAS*/
                                        ".$filter_secretaria."                                         
                                         ORDER BY score DESC LIMIT 10;";
            }
            
            #Consulto la data de header de reporte
            $resultado = mysqli_query($ConfigMySQLDS,$sql_top_virality);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos get_modulo_for_mun " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }

                for($x=0;count($get_row)>$x;$x++){
                    $get_row[$x]["fechaCreacion"] = $General->friendlyDateMonth($get_row[$x]["fechaCreacion"]);
                }
                $response = $get_row;                         
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

            return $response;

        }

        public static function generarEtiquetaFechas($dateStart, $dateEnd) {    
            setlocale(LC_TIME, 'es_ES.UTF-8');
    
            // Inicializar variables de etiquetas
            $periodicidad = "";
            $fecha1_label = "";
            $fecha2_label = "";
        
            // Convertir las fechas de entrada a tipo fecha para comparar
            $startDateTime = new DateTime($dateStart);
            $endDateTime = new DateTime($dateEnd);
        
            // Comparar si las fechas son iguales
            if($startDateTime->format('Y-m-d') == $endDateTime->format('Y-m-d')){
                $periodicidad = "daily";
                // Ajustar el formato para incluir el día de la semana y el mes en español
                $fecha1_label = strftime("%A %e de %B del %Y", $startDateTime->getTimestamp());
            } else {
                $periodicidad = "week";
                // Formatos para fechas distintas, asegurándose de que el mes y día de la semana están en español
                if($startDateTime->format('Y') == $endDateTime->format('Y')){
                    $fecha1_label = "Del" . strftime("%e de %B", $startDateTime->getTimestamp());
                    $fecha2_label = "Al" . strftime("%e de %B de %Y", $endDateTime->getTimestamp());
                } else {
                    $fecha1_label = "Del" . strftime("%e de %B de %Y", $startDateTime->getTimestamp());
                    $fecha2_label = "Al" . strftime("%e de %B de %Y", $endDateTime->getTimestamp());
                }
            }
        
            // Retornar un arreglo con las etiquetas de fecha y periodicidad
            return array("periodicidad" => $periodicidad, "fecha1_label" => $fecha1_label, "fecha2_label" => $fecha2_label);
        }
        
        public static function get_identidad($idViz){
            global $General;
            $ConfigMySQLVIZ = $General->getConexionVIZ(MOD_AMBIENT);
            #Consulto la data de header de reporte

            $sql_getidentidad = "SELECT primaryColor, logo, calendarColor2 as secondaryColor from estados WHERE idestado =".$idViz." LIMIT 1;";

                    
                    
            $resultado = mysqli_query($ConfigMySQLVIZ,$sql_getidentidad);
            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos IDENTIDAD " );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                       $get_row[] =$fila;
                    }
                    
                }
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }

          
            $get_row[0]["logoCliente"] = "https://intelektiaviz.com/pages/images/Gob_".$get_row[0]["logo"];
            $get_row[0]["logoFooter"] = "https://images-vis.s3.us-east-2.amazonaws.com/INTELEKTIA_logo_calado.png";
            $get_row[0]["logoHeader"] = "https://images-vis.s3.us-east-2.amazonaws.com/INTELEKTIA_logo_color.png";
          

            
           return $get_row[0];
        }

        public static function get___homo_id($id_edo,$plataforma){
            global $General;
            $ConfigMySQL = $General->getConexion(MOD_AMBIENT) ;
            #Consulto la data de header de reporte
            $sql_homo__id = "SELECT 
                                    id".$plataforma."  AS idHomo
                                FROM
                                    homologaciones_clientes 
                                WHERE idViz = ".$id_edo." 
                                LIMIT 1 ;
                                ";
                    
            $resultado = mysqli_query($ConfigMySQL,$sql_homo__id);
                            

            try{
                if (!$resultado) {
                    throw new Exception("Error de BD, no se pudo consultar la base de datos sql_homo__id" );
                    $General->closeConexcionDB($conexion);
                    $response["code"] = 301;
                    $response["msj"] = "Error de BD, no se pudo consultar la base de datos ";
                }
                else{
                    $get_row = array();
                    while ($fila =mysqli_fetch_array($resultado, MYSQLI_ASSOC)){
                        $get_row[] =$fila;
                    }
                    
                }
            }
            catch(Exception $e){
                echo $e->getMessage();
                die();
            }
            return $get_row[0]["idHomo"];
        }
        
        
        
}
?>


