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

/**
 *
 * @author fcelestino
 */
public class MySqlCategoriaDAO implements CategoriaDAO {

    @Override
    public ArrayList<Categoria> listarCategoria(int idModulo) throws Exception {
        String Base = "horario";
        ArrayList<Categoria> lista = new ArrayList<Categoria>();
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(Base);
            Statement st = cnx.createStatement();

            String query;
            query = "SELECT "
                    + "cat.cod_cat, "
                    + "cat.cod_mod, "
                    + "cat.nom_cat, "
                    + "cat.acc_cat, "
                    + "cat.ord_cat, "
                    + "cat.est_cat "
                    + "FROM "
                    + "categoria AS cat "
                    + "WHERE "
                    + "cat.cod_mod = " + idModulo + "";

            ResultSet rs = st.executeQuery(query);

            while (rs.next()) {
                Categoria categoria = new Categoria();
                categoria.setIdCategoria(rs.getInt("cod_cat"));
                categoria.setIdModulo(rs.getInt("cod_mod"));
                categoria.setNombreCategoria(rs.getString("nom_cat"));
                categoria.setAccionCategoria(rs.getString("acc_cat"));
                categoria.setOrdenCategoria(rs.getInt("ord_cat"));
                categoria.setEstadoCategoria(rs.getInt("est_cat"));

                lista.add(categoria);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public ArrayList<Categoria> listarCategoria(int idModulo, int tipoUsuario) throws Exception {
        String Base = "horario";
        ArrayList<Categoria> lista = new ArrayList<Categoria>();
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(Base);
            Statement st = cnx.createStatement();

            String query;
            query = "SELECT cat.cod_cat, cat.cod_mod,cat.nom_cat,cat.acc_cat,cat.ord_cat,cat.est_cat "
                    + "FROM categoria as cat "
                    + "INNER JOIN conf_categoria as conf ON conf.cod_cat=cat.cod_cat  "
                    + "WHERE cat.est_cat='1' AND cat.cod_mod='" + idModulo + "' AND conf.cod_tip_usu='" + tipoUsuario + "' order by cat.ord_cat";
//            System.out.println(query);
            ResultSet rs = st.executeQuery(query);

            while (rs.next()) {
                Categoria categoria = new Categoria();
                categoria.setIdCategoria(rs.getInt("cod_cat"));
                categoria.setIdModulo(rs.getInt("cod_mod"));
                categoria.setNombreCategoria(rs.getString("nom_cat"));
                categoria.setAccionCategoria(rs.getString("acc_cat"));
                categoria.setOrdenCategoria(rs.getInt("ord_cat"));
                categoria.setEstadoCategoria(rs.getInt("est_cat"));

                lista.add(categoria);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return lista;
    }

    @Override
    public Categoria consultarCategoria(String pagina) throws Exception {
        String Base = "sacointranet";
        Categoria categoria = new Categoria();
        Connection cnx = null;
        try {
            cnx = MySqlDAOFactory.obtenerConexion(Base);
            Statement st = cnx.createStatement();
            String query = "SELECT  "
                    + "categoria.cod_cat,  "
                    + "categoria.cod_mod  "
                    + "FROM  "
                    + "categoria  "
                    + "WHERE  "
                    + "categoria.acc_cat = '" + pagina + "'";
            ResultSet rs = st.executeQuery(query);

            if (rs.next()) {
                categoria.setIdModulo(rs.getInt("cod_mod"));
                categoria.setIdCategoria(rs.getInt("cod_cat"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            cnx.close();
        }
        return categoria;
    }
}
