Modelo.Manager_BD.java Source code

Java tutorial

Introduction

Here is the source code for Modelo.Manager_BD.java

Source

/*
 * 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 Modelo;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
import java.util.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.TreeSet;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 *
 * @author aaron
 */
public class Manager_BD {

    private Connection connect = null;
    private final Statement statement = null;
    private final PreparedStatement preparedStatement = null;
    private final ResultSet resultSet = null;
    //  private final String Usuario="telmexbb";
    //  private final String Password="8OjWarUdChakKa";
    //  private final String baseDatos="telmexbb_sitio_sapflock";
    private final String Usuario = "sapflock";
    private final String Password = "b8jeHbyTEeWwpLVw";
    private final String baseDatos = "sapflock";

    public void iniciarConexion() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connect = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/" + baseDatos + "", Usuario,
                    Password);
        } catch (Exception e) {
            System.err.println("Iniciar conexion: " + e);
        }
    }

    public List<Tarea> obtenerTareasdeHoyUsuario(String usuario_Mail) {
        List<Tarea> lista = new ArrayList<>();

        try {

            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st
                    .executeQuery("select nombre_Cliente,nombre_Proyecto, nombre_Tarea, horas_Tarea, fecha  from "
                            + baseDatos + ".Usuarios inner join " + baseDatos
                            + ".Tareas on Usuarios.idUsuarios=Tareas.idUsuarios and Usuarios.email=\""
                            + usuario_Mail + "\" inner join " + baseDatos
                            + ".Clientes on Clientes.idClientes=Tareas.idCliente");
            Date fecha = new Date();
            SimpleDateFormat formatoFecha = new SimpleDateFormat("YYYY-MM-dd");

            while (rs.next()) {
                System.out.println(formatoFecha.format(fecha));
                System.out.println(rs.getDate("fecha"));

                if (rs.getString("fecha").equals(formatoFecha.format(fecha))) {

                    Tarea tar = new Tarea();
                    tar.setCliente(rs.getString("nombre_Cliente"));
                    tar.setProyecto(rs.getString("nombre_Proyecto"));
                    tar.setNombre(rs.getString("nombre_Tarea"));
                    tar.setHoras_asignadas(rs.getInt("horas_Tarea"));
                    tar.setFecha(rs.getDate("fecha"));
                    System.err.println(rs.getDate("fecha"));
                    lista.add(tar);
                }

            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }
        return lista;
    }

    public List<Tarea> obtenerTodaslasTareasUsuario(String usuario_Mail) {
        List<Tarea> lista = new ArrayList<>();

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery(
                    "select email,nombre_Cliente,nombre_Proyecto, nombre_Tarea, horas_Tarea, fecha  from "
                            + baseDatos + ".Usuarios inner join " + baseDatos
                            + ".Tareas on Usuarios.idUsuarios=Tareas.idUsuarios and Usuarios.email=\""
                            + usuario_Mail + "\" inner join " + baseDatos
                            + ".Clientes on Clientes.idClientes=Tareas.idCliente");

            while (rs.next()) {

                Tarea tar = new Tarea();
                tar.setCliente(rs.getString("nombre_Cliente"));
                tar.setProyecto(rs.getString("nombre_Proyecto"));
                tar.setNombre(rs.getString("nombre_Tarea"));
                tar.setHoras_asignadas(rs.getInt("horas_Tarea"));
                tar.setFecha(rs.getDate("fecha"));

                System.err.println(rs.getDate("fecha"));
                lista.add(tar);

            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }
        return lista;

    }

    public String login(String email) {

        String liga = "Login Fail";

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("select email,tipo_Usuario from " + baseDatos + ".Usuarios");

            while (rs.next()) {

                if (rs.getString("email").equals(email)) {

                    if (rs.getInt("tipo_Usuario") == 0) {
                        liga = "inicio_dios.jsp";
                    } else if (rs.getInt("tipo_Usuario") == 1) {
                        liga = "inicio_admin.jsp";
                    } else {
                        liga = "inicio_normal.jsp";
                    }

                } else {

                    System.err.println("Algo valio Mothers");

                }

            }

            rs.close();
            st.close();

        } catch (Exception e) {
            System.err.println("Router Fail");
        }

        return liga;
    }

    public boolean registraUsuario(String email, String nombre, String apellido, int nivelUsuario) {
        boolean x = false;
        try {
            Statement st = (Statement) connect.createStatement();

            st.execute("INSERT INTO " + baseDatos + ".Usuarios (nombre, ap_Paterno, email, tipo_Usuario) VALUES ('"
                    + nombre + "', '" + apellido + "', '" + email + "', " + nivelUsuario + ");");
            x = true;
            st.close();

        } catch (Exception e) {
            x = false;
            System.err.println("Fallo al Crear Cliente Proyecto" + e);
        }
        return x;

    }

    public boolean checkExistenciaUsuario(String email) {
        boolean x = false;
        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("select email, tipo_Usuario from " + baseDatos + ".Usuarios");

            while (rs.next()) {
                if (email.equals(rs.getString("email"))) {
                    x = true;
                }
            }
            rs.close();
            st.close();

        } catch (Exception e) {
            x = false;
            System.err.println("Router Fail");
        }
        return x;
    }

    public int routearUsuario(String email) {

        int tipo_usuario = 99; //0 dios, 1 admin , 2 normal

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("select email, tipo_Usuario from " + baseDatos + ".Usuarios");

            while (rs.next()) {
                if (email.equals(rs.getString("email"))) {
                    tipo_usuario = rs.getInt("tipo_Usuario");
                }
            }
            rs.close();
            st.close();

        } catch (Exception e) {
            System.err.println("Router Fail");
        }

        return tipo_usuario;

    }

    public void crearClienteProyecto(String cliente, String proyecto) {

        try {
            Statement st = (Statement) connect.createStatement();

            st.execute("INSERT INTO " + baseDatos + ".Clientes (nombre_Cliente, nombre_Proyecto) VALUES (\""
                    + cliente.toUpperCase() + "\", \"" + proyecto.toUpperCase() + "\");");

            st.close();

        } catch (Exception e) {
            System.err.println("Fallo al Crear Cliente Proyecto" + e);
        }

    }

    public TreeSet<String> obtenerClientes() {
        TreeSet<String> listaClientes = new TreeSet<>();

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("select * from " + baseDatos + ".Clientes");

            while (rs.next()) {

                listaClientes.add(rs.getString("nombre_Cliente").toUpperCase());

            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }

        return listaClientes;

    }

    public TreeSet<String> obtenerProyectos() {
        TreeSet<String> listaClientes = new TreeSet<>();

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("select * from " + baseDatos + ".Clientes");

            while (rs.next()) {

                listaClientes.add(rs.getString("nombre_Proyecto").toUpperCase());

            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }

        return listaClientes;

    }

    public TreeSet<String> obtenerProyectosporCliente(String cliente) {
        TreeSet<String> listaClientes = new TreeSet<>();

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery(
                    "select * from " + baseDatos + ".Clientes where nombre_Cliente=\"" + cliente + "\"");

            while (rs.next()) {

                listaClientes.add(rs.getString("nombre_Proyecto").toUpperCase());

            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }

        return listaClientes;

    }

    public void crearTareaSimple(String cliente, String proyecto, String tarea) {

        try {
            Statement st = (Statement) connect.createStatement();

            st.execute("INSERT INTO " + baseDatos + ".TareasSimples (Cliente, Proyecto, Tarea) VALUES (\"" + cliente
                    + "\", \"" + proyecto + "\", \"" + tarea + "\")");

            st.close();

        } catch (Exception e) {
            System.err.println("Fallo al Crear Tarea" + e);
        }

    }

    public TreeSet<String> obtenerTareasSimples() {

        TreeSet<String> listaTareas = new TreeSet<>();

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("select * from " + baseDatos + ".TareasSimples");

            while (rs.next()) {

                listaTareas.add(rs.getString("Tarea").toUpperCase());

            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }

        return listaTareas;

    }

    public void asignarTarea(int idUsuario, int idCliente, String nombreTarea, String fecha, int horasTarea) {

        //INSERT INTO "+baseDatos+".Tareas (nombre_Tarea, fecha, horas_Tarea, idUsuarios, idCliente) VALUES ('nombre tarea', '2014-02-10', 2, X, Z);
        try {
            Statement st = (Statement) connect.createStatement();

            st.execute("INSERT INTO " + baseDatos
                    + ".Tareas (nombre_Tarea, fecha, horas_Tarea, idUsuarios, idCliente) VALUES (\"" + nombreTarea
                    + "\", \"" + fecha + "\", " + horasTarea + ", " + idUsuario + ", " + idCliente + ")");

            st.close();

        } catch (Exception e) {
            System.err.println("Fallo al Crear Tarea" + e);
        }
    }

    public int getIdUsuario(String email) {
        int idUsuario = -1;
        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("Select idUsuarios,email from " + baseDatos + ".Usuarios");

            while (rs.next()) {

                if (rs.getString("email").equals(email)) {
                    idUsuario = rs.getInt("idUsuarios");
                }

            }

            rs.close();
            st.close();

        } catch (Exception e) {
            System.err.println("Router Fail");
        }
        return idUsuario;
    }

    public int obtenerHorasPorDia(String mail, String fecha) {

        int horas_diarias = 0;
        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("SELECT SUM(horas_Tarea) FROM " + baseDatos + ".Tareas inner join "
                    + baseDatos + ".Usuarios on Usuarios.idUsuarios=Tareas.idUsuarios and Usuarios.email=\"" + mail
                    + "\" and Tareas.fecha=\"" + fecha + "\"");

            while (rs.next()) {
                horas_diarias = rs.getInt(1);
            }

            rs.close();
            st.close();

        } catch (Exception e) {
            System.err.println("Router Fail");
        }

        return horas_diarias;
    }

    public List<String> verificarUsuarioRelacionProyecto(String email, String Cliente, String Proyecto) {

        List<String> listadatos = new ArrayList<>();

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery(
                    "select email, idUsuarios, idClientes from " + baseDatos + ".Usuarios inner join " + baseDatos
                            + ".Clientes where Usuarios.email=\"" + email + "\" and Clientes.nombre_Cliente=\""
                            + Cliente + "\" and Clientes.nombre_Proyecto=\"" + Proyecto + "\"");

            while (rs.next()) {

                listadatos.add(rs.getString("email"));
                listadatos.add(rs.getInt("idUsuarios") + "");
                listadatos.add(rs.getInt("idClientes") + "");

            }

            rs.close();
            st.close();

        } catch (Exception e) {
            System.err.println("Router Fail");
        }

        return listadatos;
    }

    public List<Tarea> obtenerTareasNOHechasODeLaFecha(String email, String fechaInicio, String fechaFinal) {
        List<Tarea> listaTareas = new ArrayList<>();
        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("SELECT * FROM " + baseDatos + ".Tareas inner join " + baseDatos
                    + ".Usuarios on Usuarios.idUsuarios=Tareas.idUsuarios inner join " + baseDatos
                    + ".Clientes on Clientes.idClientes=Tareas.idCliente where (Tareas.fecha between \""
                    + fechaInicio + "\" and \"" + fechaFinal
                    + "\" || Tareas.fecha=\"2014-02-00\") and Usuarios.email=\"" + email + "\"");

            while (rs.next()) {
                Tarea tarea = new Tarea();

                tarea.setIdTarea(rs.getInt("idTareas"));
                tarea.setNombre(rs.getString("nombre_Tarea"));
                tarea.setHoras_asignadas(rs.getInt("horas_Tarea"));
                tarea.setFecha(rs.getDate("fecha"));
                tarea.setProyecto(rs.getString("nombre_Proyecto"));
                tarea.setCliente(rs.getString("nombre_Cliente"));

                listaTareas.add(tarea);
            }

            rs.close();
            st.close();

        } catch (Exception e) {
            System.err.println("Router Fail");
        }

        return listaTareas;
    }

    public void actualizarHorasdeunDia(int idUsuario, String fecha, int horas, String tarea, int idTarea) {

        try {
            Statement st = (Statement) connect.createStatement();

            st.execute("UPDATE " + baseDatos + ".Tareas SET horas_Tarea=" + horas + ", fecha=\"" + fecha
                    + "\" WHERE idUsuarios=" + idUsuario + " and nombre_Tarea=\"" + tarea + "\" and idTareas="
                    + idTarea + ";");

            st.close();

        } catch (Exception e) {
            System.err.println("Fallo al Crear Tarea" + e);
        }

    }

    public void eliminarTarea(int id) {
        try {
            Statement st = (Statement) connect.createStatement();

            st.execute("DELETE FROM " + baseDatos + ".Tareas WHERE idTareas=" + id + ";");

            st.close();

        } catch (Exception e) {
            System.err.println("Fallo al Crear Tarea" + e);
        }

    }

    public List<Tarea> obtenerTareasporFecha(String email, String fecha) {
        List<Tarea> lista = new ArrayList<>();

        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("SELECT * FROM " + baseDatos + ".Tareas inner join " + baseDatos
                    + ".Usuarios on Usuarios.idUsuarios=Tareas.idUsuarios inner join " + baseDatos
                    + ".Clientes on Tareas.idCliente=Clientes.idClientes where  Usuarios.email=\"" + email
                    + "\" and Tareas.fecha=\"" + fecha + "\"");

            while (rs.next()) {

                Tarea tar = new Tarea();
                tar.setIdTarea(rs.getInt("idTareas"));
                tar.setCliente(rs.getString("nombre_Cliente"));
                tar.setProyecto(rs.getString("nombre_Proyecto"));
                tar.setNombre(rs.getString("nombre_Tarea"));
                tar.setHoras_asignadas(rs.getInt("horas_Tarea"));
                tar.setFecha(rs.getDate("fecha"));

                lista.add(tar);

            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }
        return lista;
    }

    public Workbook tareasParaReporte(String fechaI, String fechaF, String cliente, String proyecto) {

        Workbook libro = new XSSFWorkbook();

        // Se crea una hoja dentro del libro
        Sheet hoja = libro.createSheet();

        // Se crea una fila dentro de la hoja
        Row fila = hoja.createRow(1);
        try {
            Statement st = (Statement) connect.createStatement();
            ResultSet rs = st.executeQuery("select * from " + baseDatos + ".Tareas inner join " + baseDatos
                    + ".Usuarios on Tareas.idUsuarios=Usuarios.idUsuarios inner join " + baseDatos
                    + ".Clientes on Clientes.idClientes=Tareas.idCliente ORDER BY nombre_Cliente");

            Calendar c1 = GregorianCalendar.getInstance();
            Calendar c2 = GregorianCalendar.getInstance();

            Calendar fb = GregorianCalendar.getInstance();

            SimpleDateFormat formatoSlash = new SimpleDateFormat("MM/dd/yyyy");
            SimpleDateFormat formatoGuion = new SimpleDateFormat("yyyy-MM-dd");

            c1.setTime(formatoSlash.parse(fechaI));

            c2.setTime(formatoSlash.parse(fechaF));

            // Se crea una celda dentro de la fila
            Cell celda = fila.createCell(1);
            celda.setCellValue("Reporte de Horas de:");

            fila.createCell(2).setCellValue(fechaI);
            fila.createCell(3).setCellValue("al");
            fila.createCell(4).setCellValue(fechaF);

            int filas = 3;
            int filasabajo = filas + 3;

            while (rs.next()) {
                fb.setTime(formatoGuion.parse(rs.getString("fecha").toString()));

                for (int i = 0; i < 999; i++) {
                }

                if (fb.before(c2) && fb.after(c1)) {

                    if (cliente.equals("TODOS")) {

                        if (proyecto.equals("TODOS")) {

                        } else {

                        }

                    } else {

                        if (proyecto.equals("TODOS")) {

                        } else {
                            hoja.createRow(filas).createCell(1).setCellValue(cliente);
                            hoja.createRow(filas + 1).createCell(1).setCellValue(proyecto);

                            if (cliente.equals(rs.getString("nombre_Cliente"))) {
                                Row filaX = hoja.createRow(filasabajo);

                                filaX.createCell(2).setCellValue(rs.getString("email"));
                                filaX.createCell(3).setCellValue(rs.getString("nombre_Tarea"));
                                filaX.createCell(4).setCellValue(rs.getString("horas_Tarea"));
                                filaX.createCell(5).setCellValue(rs.getString("fecha"));
                                filasabajo++;
                            }

                        }

                    }

                }
            }
            rs.close();
            st.close();

        }

        catch (Exception e) {
            e.printStackTrace();
        }

        return libro;
    }

    public void cerrarConexion() {

        try {
            connect.close();
        } catch (Exception e) {

            System.err.println("Cerrar conexion: " + e);

        }

    }

}