/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.siso.horario.MySqlDAO;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import pe.siso.horario.Beans.Aula;
import pe.siso.horario.Beans.ReporteEncuesta;
import pe.siso.horario.DAO.ReporteEncuestaDAO;

/**
 *
 * @author fcelestino
 */
public class MySqlReporteEncuestaDAO implements ReporteEncuestaDAO {

    @Override
    public ArrayList<ReporteEncuesta> listarPeriodoHorario() throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "horario";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT cod_per,nom_per,fec_ini_per,fec_fin_per,est_per FROM periodo_academico "
                    + "ORDER BY fec_ini_per DESC";
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCodigoPeriodoHorario(rs.getString("cod_per"));
                reporte.setNombrePeriodoHorario(rs.getString("nom_per"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;

    }

    @Override
    public ArrayList<ReporteEncuesta> listarPeriodoEncuesta(String periodoHorario) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT cod_enc,nom_enc,cod_per,ani_enc,fec_enc,est_act_enc,est_enc FROM encuesta WHERE cod_per='" + periodoHorario + "'";
            System.out.println("query " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCodigoPeriodoEncuesta(rs.getString("cod_enc"));
                reporte.setNombrePeriodoEncuesta(rs.getString("nom_enc"));
                reporte.setEstadoActualEncuesta(rs.getString("est_act_enc"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<ReporteEncuesta> listarDocentes(String periodoH, String periodoE) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT cod_pro,nom_pro "
                    + "FROM encuesta_resultado "
                    + "WHERE cod_per='" + periodoH + "' and cod_enc='" + periodoE + "' AND est_res='1' "
                    + "GROUP BY cod_pro,nom_pro "
                    + "ORDER BY nom_pro";
            System.out.println("query " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCodigoDocente(rs.getString("cod_pro"));
                reporte.setNombreDocente(rs.getString("nom_pro"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<ReporteEncuesta> listarDias(String periodoH, String Docente) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "horario";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT dia,IF(dia=1,'LUNES',IF(dia=2,'MARTES',IF(dia=3,'MIÉRCOLES',IF(dia=4,'JUEVES',IF(dia=5,'VIERNES',IF(dia=6,'SÁBADO','')))))) AS nom_dia   "
                    + "FROM horarios_docente.horario_curso_docente WHERE cod_per='" + periodoH + "' and cod_doc='" + Docente + "'   "
                    + "GROUP BY dia  "
                    + "ORDER BY dia";
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCodigoDia(rs.getString("dia"));
                reporte.setNombreDia(rs.getString("nom_dia"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<ReporteEncuesta> listarGrupoAula(String periodoH, String Docente) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "horario";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT a.cod_gru_aul,a.cad_aul  "
                    + "FROM horario_curso_docente as h "
                    + "INNER JOIN grupo_aulas as a on  a.cod_per='" + periodoH + "' AND (a.cad_aul = h.codAula or a.cad_aul LIKE '%,$h.codAula,%' or a.cad_aul LIKE '%,$h.codAula' or a.cad_aul LIKE '$h.codAula,%') and a.est_gru_aul='1' "
                    + "WHERE h.cod_doc='" + Docente + "' "
                    + "GROUP BY a.cod_gru_aul,a.cad_aul ";
            System.out.println("--<>> " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCodigoGrupoAula(rs.getString("cod_gru_aul"));
                reporte.setCadenaGrupoAula(rs.getString("cad_aul"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<Aula> listarAulaPorGrupo(String cadenaAula) throws Exception {
        ArrayList<Aula> lista = new ArrayList<Aula>();
        String base = "horario";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            if (cadenaAula.equals("")) {
                cadenaAula = "0";
            }
            String query = "SELECT  "
                    + "aula.codaula,  "
                    + "sede.des_loc,  "
                    + "tipo_centro.destipocentro,  "
                    + "centro.descentro,  "
                    + "nivel.desnivel,  "
                    + "tipo_grado.destipogrado,  "
                    + "grado.desgrado,  "
                    + "seccion.desseccion,  "
                    + "turno.desturno  "
                    + "FROM  "
                    + "aula  "
                    + "INNER JOIN sede ON sede.cod_loc = aula.codlocal  "
                    + "INNER JOIN tipo_centro ON tipo_centro.codtipocentro = aula.codtipocentro  "
                    + "INNER JOIN centro ON centro.codcentro = aula.cocentro  "
                    + "INNER JOIN nivel ON nivel.codnivel = aula.codnivel  "
                    + "INNER JOIN tipo_grado ON tipo_grado.codtipogrado = aula.codtipogrado  "
                    + "INNER JOIN grado ON grado.codgrado = aula.codgrado  "
                    + "INNER JOIN seccion ON seccion.codseccion = aula.codseccion  "
                    + "INNER JOIN turno ON turno.codturno = aula.codturno  "
                    + "WHERE codaula in (" + cadenaAula + ") ";
            System.out.println("listarAulaPorGrupo " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                Aula aula = new Aula();
                aula.setCodigoAula(rs.getInt("codaula"));
                aula.setNombreLocal(rs.getString("des_loc"));
                aula.setNombreTipoCentro(rs.getString("destipocentro"));
                aula.setNombreCentro(rs.getString("descentro"));
                aula.setNombreNivel(rs.getString("desnivel"));
                aula.setNombreTipoGrado(rs.getString("destipogrado"));
                aula.setNombreGrado(rs.getString("desgrado"));
                aula.setNombreSeccion(rs.getString("desseccion"));
                aula.setNombreTurno(rs.getString("desturno"));
                lista.add(aula);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<ReporteEncuesta> puntajeDocente(String codPeriodoE, String codDocente, String cadenaAula, String codigoAula) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "";
            if (codigoAula.equals("T")) {
                query = " SELECT e.cod_pro,plana.cod_pla,plana.nom_pla,(AVG(e.tot_res)/5) AS PROMEDIO,count(e.tot_res) as cantidad "
                        + "FROM encuesta_resultado as e  "
                        + "INNER JOIN horarios_docente.curso on curso.cod_cur=e.cod_cur  "
                        + "INNER JOIN horarios_docente.plana on plana.cod_pla=curso.cod_pla  "
                        + "WHERE e.cod_pro='" + codDocente + "' AND e.codaula in (" + cadenaAula + ") AND e.cod_enc='" + codPeriodoE + "' AND e.est_res='1'  "
                        + "GROUP BY e.cod_pro,plana.cod_pla ";
            } else {
                query = " SELECT e.codaula,e.cod_pro,plana.cod_pla,plana.nom_pla,(AVG(e.tot_res)/5) AS PROMEDIO,count(e.tot_res) as cantidad   "
                        + "FROM encuesta_resultado as e  "
                        + "INNER JOIN horarios_docente.curso on curso.cod_cur=e.cod_cur  "
                        + "INNER JOIN horarios_docente.plana on plana.cod_pla=curso.cod_pla  "
                        + "WHERE e.cod_pro='" + codDocente + "' AND e.codaula = '" + codigoAula + "' AND e.cod_enc='" + codPeriodoE + "' AND e.est_res='1'  "
                        + "GROUP BY e.cod_pro,plana.cod_pla ";
            }

            System.out.println("PUNTAJE " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setP_codigoDocente(rs.getString("cod_pro"));
                reporte.setP_codigoPlana(rs.getString("cod_pla"));
                reporte.setP_nombrePlana(rs.getString("nom_pla"));
                reporte.setP_puntaje(rs.getString("PROMEDIO"));
                reporte.setP_cantidadEncuestas(rs.getString("cantidad"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;

    }

    @Override
    public ArrayList<ReporteEncuesta> listarDocentesEncuesta(String periodoH, String periodoE) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT  "
                    + " GROUP_CONCAT(TABLA.codaula ORDER BY TABLA.codaula) AS cadena_aulas, "
                    + "	TABLA.cod_pro, "
                    + "	TABLA.nom_pro, "
                    + "	TABLA.cod_per, "
                    + "	TABLA.cod_enc "
                    + " FROM "
                    + "( "
                    + "	SELECT "
                    + "	er.codaula, "
                    + "	er.cod_pro, "
                    + "	er.nom_pro, "
                    + "	er.cod_per, "
                    + "	er.cod_enc "
                    + "	FROM "
                    + "	encuesta_resultado AS er "
                    + "	WHERE "
                    + "	er.cod_enc = '" + periodoE + "' AND "
                    + "	er.cod_per = '" + periodoH + "' "
                    + "	GROUP BY  "
                    + "	er.cod_pro,er.codaula "
                    + "	ORDER BY  "
                    + "	er.cod_pro "
                    + ") as TABLA "
                    + "GROUP BY  "
                    + "	TABLA.cod_pro "
                    + "	ORDER BY  "
                    + "	TABLA.nom_pro";

            System.out.println("listarDocentesEncuesta " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCadenaGrupoAula(rs.getString("cadena_aulas"));
                reporte.setCodigoDocente(rs.getString("cod_pro"));
                reporte.setNombreDocente(rs.getString("nom_pro"));
                reporte.setCodigoPeriodoHorario(rs.getString("cod_per"));
                reporte.setCodigoPeriodoEncuesta(rs.getString("cod_enc"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;

    }

    @Override
    public int cantidadListaDocentesEncuesta(String periodoH, String periodoE, String codigoDocente) throws Exception {
        int cantidad = 0;
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT "
                    + "	COUNT(DISTINCT TABLA.cod_pro) AS cantidad "
                    + "FROM "
                    + "	( "
                    + "		SELECT "
                    + "			er.codaula, "
                    + "			er.cod_pro, "
                    + "			er.nom_pro, "
                    + "			er.cod_per, "
                    + "			er.cod_enc "
                    + "		FROM "
                    + "			encuesta_resultado AS er "
                    + "		WHERE "
                    + "			er.cod_enc = '" + periodoE + "' "
                    + "		AND er.cod_per = '" + periodoH + "' ";
            if (codigoDocente.equals("todo")) {
                query += " ";
            } else {
                query += " AND er.cod_pro='" + codigoDocente + "' ";
            }
            query += " GROUP BY "
                    + "			er.cod_pro, "
                    + "			er.codaula "
                    + "		ORDER BY "
                    + "			er.cod_pro "
                    + "	) AS TABLA ";
            System.out.println("cantidadListaDocentesEncuesta => " + query);
            ResultSet rs = st.executeQuery(query);
            if (rs.next()) {
                cantidad = rs.getInt("cantidad");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return cantidad;
    }

    @Override
    public ArrayList<ReporteEncuesta> listarDocentesEncuesta(String periodoH, String periodoE, String codigoDocente) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();

            String query = "SELECT  "
                    + " GROUP_CONCAT(TABLA.codaula ORDER BY TABLA.codaula) AS cadena_aulas, "
                    + "	TABLA.cod_pro, "
                    + "	TABLA.nom_pro, "
                    + "	TABLA.cod_per, "
                    + "	TABLA.cod_enc "
                    + " FROM "
                    + "( SELECT "
                    + "	er.codaula, "
                    + "	er.cod_pro, "
                    + "	er.nom_pro, "
                    + "	er.cod_per, "
                    + "	er.cod_enc "
                    + "	FROM "
                    + "	encuesta_resultado AS er "
                    + "	WHERE "
                    + "	er.cod_enc = '" + periodoE + "' AND er.cod_per = '" + periodoH + "' ";
            if (codigoDocente.equals("todo")) {
                query += " ";
            } else {
                query += " AND er.cod_pro='" + codigoDocente + "' ";
            }
            query += "	GROUP BY  "
                    + "	er.cod_pro,er.codaula "
                    + "	ORDER BY  "
                    + "	er.cod_pro "
                    + ") as TABLA "
                    + "GROUP BY  "
                    + "	TABLA.cod_pro "
                    + "	ORDER BY  "
                    + "	TABLA.nom_pro ";
//        if(codigoDocente.equals("todo")){
//            query += " LIMIT 0,10 ";
//        }else{
//            query += " ";
//        }

            System.out.println("listarDocentesEncuesta 2" + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCadenaGrupoAula(rs.getString("cadena_aulas"));
                reporte.setCodigoDocente(rs.getString("cod_pro"));
                reporte.setNombreDocente(rs.getString("nom_pro"));
                reporte.setCodigoPeriodoHorario(rs.getString("cod_per"));
                reporte.setCodigoPeriodoEncuesta(rs.getString("cod_enc"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<ReporteEncuesta> listarDocentesEncuesta(String periodoH, String periodoE, String codigoDocente, int inicio, int cantidad) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();

            String query = "SELECT  "
                    + " GROUP_CONCAT(TABLA.codaula ORDER BY TABLA.codaula) AS cadena_aulas, "
                    + "	TABLA.cod_pro, "
                    + "	TABLA.nom_pro, "
                    + "	TABLA.cod_per, "
                    + "	TABLA.cod_enc "
                    + " FROM "
                    + "( SELECT "
                    + "	er.codaula, "
                    + "	er.cod_pro, "
                    + "	er.nom_pro, "
                    + "	er.cod_per, "
                    + "	er.cod_enc "
                    + "	FROM "
                    + "	encuesta_resultado AS er "
                    + "	WHERE "
                    + "	er.cod_enc = '" + periodoE + "' AND er.cod_per = '" + periodoH + "' ";
            if (codigoDocente.equals("todo")) {
                query += " ";
            } else {
                query += " AND er.cod_pro='" + codigoDocente + "' ";
            }
            query += "	GROUP BY  "
                    + "	er.cod_pro,er.codaula "
                    + "	ORDER BY  "
                    + "	er.cod_pro "
                    + ") as TABLA "
                    + "GROUP BY  "
                    + "	TABLA.cod_pro "
                    + "	ORDER BY  "
                    + "	TABLA.nom_pro ";
            // if(codigoDocente.equals("todo")){
            query += " LIMIT " + inicio + "," + cantidad + " ";
        //}else{
            //    query += " ";
            //}

            System.out.println("listarDocentesEncuesta 3 " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setCadenaGrupoAula(rs.getString("cadena_aulas"));
                reporte.setCodigoDocente(rs.getString("cod_pro"));
                reporte.setNombreDocente(rs.getString("nom_pro"));
                reporte.setCodigoPeriodoHorario(rs.getString("cod_per"));
                reporte.setCodigoPeriodoEncuesta(rs.getString("cod_enc"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<ReporteEncuesta> listarGrupoAula2(String periodoH, String codigoDocente) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "horario";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = "SELECT "
                    + "	curso.cod_pla, "
                    + "	hcd.dia, "
                    + "	aula.codlocal, "
                    + "	sede.des_loc, "
                    + "	hcd.cod_cur, "
                    + "	curso.nom_cur, "
                    + "	nivel.abrnivel, "
                    + "	turno.codturno, "
                    + " "
                    + "IF ( "
                    + "	turno.desturno = 'MAÑANA', "
                    + "	'M', "
                    + " "
                    + "IF ( "
                    + "	turno.desturno = 'TARDE', "
                    + "	'T', "
                    + " "
                    + "IF ( "
                    + "	turno.desturno = 'NOCHE', "
                    + "	'N', "
                    + "	'X' "
                    + ") "
                    + ") "
                    + ") AS desturno, "
                    + " ( "
                    + "	SELECT "
                    + " "
                    + "	IF ( "
                    + "		nivel.abrnivel = 'SEC', "
                    + "		GROUP_CONCAT( "
                    + "			grado.abrGrado, "
                    + " "
                    + "		IF ( "
                    + "			tipo_grado.abrTipGrado = 'REG', "
                    + "			'', "
                    + "			tipo_grado.abrTipGrado "
                    + "		), "
                    + "		seccion.desseccion "
                    + "		), "
                    + "		GROUP_CONCAT( "
                    + " "
                    + "			IF ( "
                    + "				grado.abrGrado = 'REG', "
                    + "				'', "
                    + "				grado.abrGrado "
                    + "			), "
                    + " "
                    + "		IF ( "
                    + "			tipo_grado.abrTipGrado = 'REG', "
                    + "			'', "
                    + "			CONCAT(tipo_grado.abrTipGrado, '-') "
                    + "		), "
                    + "		seccion.desseccion "
                    + "		) "
                    + "	) "
                    + "	FROM "
                    + "		horario_curso_docente AS h1 "
                    + "	INNER JOIN aula AS aula1 ON h1.codAula = aula1.codaula "
                    + "	INNER JOIN tipo_grado ON tipo_grado.codtipogrado = aula1.codtipogrado "
                    + "	INNER JOIN grado ON grado.codgrado = aula1.codgrado "
                    + "	INNER JOIN seccion ON seccion.codseccion = aula1.codseccion "
                    + "	WHERE "
                    + "		aula1.codlocal = aula.codlocal "
                    + "	AND h1.dia = hcd.dia "
                    + "	AND h1.cod_cur = hcd.cod_cur "
                    + "	AND h1.cod_doc = '" + codigoDocente + "' "
                    + "	AND h1.cod_per = '" + periodoH + "' "
                    + "	AND h1.est_hcd = '1' "
                    + ") AS GTS, "
                    + " GROUP_CONCAT(aula.codaula	ORDER BY	aula.codaula) AS grupAula "
                    + "FROM "
                    + "	horario_curso_docente AS hcd "
                    + "INNER JOIN aula ON aula.codaula = hcd.codAula "
                    + "INNER JOIN sede ON aula.codlocal = sede.cod_loc "
                    + "INNER JOIN nivel ON nivel.codnivel = aula.codnivel "
                    + "INNER JOIN turno ON turno.codturno = aula.codturno "
                    + "INNER JOIN curso ON curso.cod_cur = hcd.cod_cur "
                    + "WHERE "
                    + "	hcd.cod_doc = '" + codigoDocente + "' "
                    + "AND hcd.cod_per = '" + periodoH + "' "
                    + "AND hcd.est_hcd = '1' "
                    + "GROUP BY "
                    + "	hcd.dia, "
                    + "	aula.codlocal, "
                    + "	hcd.cod_cur, "
                    + "	nivel.abrnivel, "
                    + "	turno.desturno";
            System.out.println("listarGrupoAula2" + query);
            ResultSet rs = st.executeQuery(query);

            while (rs.next()) {
                ReporteEncuesta encuesta = new ReporteEncuesta();
                encuesta.setP_sede(rs.getString("des_loc"));
                encuesta.setP_nombrePlana(rs.getString("nom_cur"));
                encuesta.setP_nivel(rs.getString("abrnivel"));
                encuesta.setP_turno(rs.getString("desturno"));
                encuesta.setGrupoAula(rs.getString("GTS"));
                encuesta.setCadenaGrupoAula(rs.getString("grupAula"));
                lista.add(encuesta);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<ReporteEncuesta> puntajeDocente(String codPeriodoE, String codDocente, String cadenaAula) throws Exception {
        ArrayList<ReporteEncuesta> lista = new ArrayList<ReporteEncuesta>();
        String base = "encuentas";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();
            String query = " SELECT e.cod_pro,plana.cod_pla,plana.nom_pla,(AVG(e.tot_res)/5) AS PROMEDIO,count(e.tot_res) as cantidad "
                    + "FROM encuesta_resultado as e  "
                    + "INNER JOIN horarios_docente.curso on curso.cod_cur=e.cod_cur  "
                    + "INNER JOIN horarios_docente.plana on plana.cod_pla=curso.cod_pla  "
                    + "WHERE e.cod_pro='" + codDocente + "' AND e.codaula in (" + cadenaAula + ") AND e.cod_enc='" + codPeriodoE + "' AND e.est_res='1'  "
                    + "GROUP BY e.cod_pro,plana.cod_pla ";
            System.out.println("puntajeDocente2 " + query);
            ResultSet rs = st.executeQuery(query);
            while (rs.next()) {
                ReporteEncuesta reporte = new ReporteEncuesta();
                reporte.setP_codigoDocente(rs.getString("cod_pro"));
                reporte.setP_codigoPlana(rs.getString("cod_pla"));
                reporte.setP_nombrePlana(rs.getString("nom_pla"));
                reporte.setP_puntaje(rs.getString("PROMEDIO"));
                reporte.setP_cantidadEncuestas(rs.getString("cantidad"));
                lista.add(reporte);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

}
