/*
 * 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.Turno;
import pe.siso.horario.DAO.TurnoDAO;

/**
 *
 * @author fcelestino
 */
public class MySqlTurnoDAO implements TurnoDAO {

    @Override
    public ArrayList<Turno> cargarTurno() throws Exception {
        ArrayList<Turno> lista = new ArrayList<Turno>();
        String base = "horario";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();

            String query = "SELECT codturno,desturno,estado FROM turno WHERE estado='1'";

            ResultSet rs = st.executeQuery(query);

            while (rs.next()) {
                Turno turno = new Turno();
                turno.setCodigoTurno(rs.getInt("codturno"));
                turno.setNombreTurno(rs.getString("desturno"));
                turno.setEstadoTurno(rs.getInt("estado"));
                lista.add(turno);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<Turno> cargarTurno(String codigoSede, String codigoTipoCentro, String codigoCentro, String codigoNivel, String codigoTipoGrado, String codigoGrado, String codigoSeccion) throws Exception {
        ArrayList<Turno> lista = new ArrayList<Turno>();
        String base = "horario";
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(base);
            Statement st = cnx.createStatement();

            String query = "SELECT DISTINCT aula.codlocal,turno.codturno,turno.desturno "
                    + "from aula "
                    + "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 aula.codlocal='" + codigoSede + "' AND tipo_centro.codtipocentro='" + codigoTipoCentro + "' and centro.codcentro='" + codigoCentro + "'  "
                    + "and nivel.codnivel='" + codigoNivel + "' and tipo_grado.codtipogrado='" + codigoTipoGrado + "' and grado.codgrado='" + codigoGrado + "'  and seccion.codseccion='" + codigoSeccion + "' and turno.estado='1'";

            ResultSet rs = st.executeQuery(query);
            System.out.println(query);
            while (rs.next()) {
                Turno turno = new Turno();
                turno.setCodigoTurno(rs.getInt("codturno"));
                turno.setNombreTurno(rs.getString("desturno"));
                lista.add(turno);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

}
