package Controlador;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Modelo.Detalle;
import Modelo.Encargado;
import Modelo.Estado_atencion;
import Modelo.Estado_cobro;
import Modelo.Item;
import Modelo.Jardin;
import Modelo.Origen;
import Modelo.Rol;
import Modelo.Solicitud;
import Modelo.Tipo;
import Modelo.Usuario;
import dao.CargoBD;
import dao.EncargadoBD;
import dao.JardinBD;
import dao.OrigenBD;
import dao.RolBD;
import dao.TipoBD;
import dao.UsuarioBD;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Enumeration;
import sun.tools.jar.resources.jar;

public class Controlador extends HttpServlet {

    //Para controlar peticiones del tipo GET
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    //Para controlar peticiones del tipo POST

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    private void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String accion = request.getParameter("accion");
        if(accion.equals("validarusuario")){
        Usuarionegocio us=new Usuarionegocio();
        us.validarusuario(request, response);
        }
        if (accion.equals("ingresarcargo")) {
            Cargonegocio Ca = new Cargonegocio();
            Ca.ingresarcargo(request, response);
        }
        if (accion.equals("actualizarcargo")) {
            Cargonegocio Ca = new Cargonegocio();
            Ca.actualizarcargo(request, response);
        }
        if (accion.equals("listadocargo")) {
            Cargonegocio Ca = new Cargonegocio();
            Modelo.Cargo c = new Modelo.Cargo();
            Enumeration en = request.getParameterNames();
            String id = "";
            String actionValue = "";
            while (en.hasMoreElements()) {
                id = (String) en.nextElement();
                actionValue = request.getParameter(id);
            }
            c.setCarg_id(Integer.parseInt(id));
            if (id.trim().equalsIgnoreCase("")) {
                request.setAttribute("errorMessage", "NO SE ENCUENTRA EL ID");
                request.getRequestDispatcher("/cargolistado.jsp").forward(request, response);
            } else {
                if (actionValue.contains("Eliminar")) {
                    Ca.eliminarcargo(request, response, c);
                } else {
                    if (actionValue.contains("Modificar")) {
                        Modelo.Cargo carg = CargoBD.obtenercargo(Integer.parseInt(id));
                        request.setAttribute("cargos", carg);
                        request.getRequestDispatcher("/ingresarcargo.jsp?opcion=Modificar").forward(request, response);
                    }
                }
            }
        }
        if (accion.equals("login")) {
            loginnegocio lo = new loginnegocio();
            lo.logeo(request, response);
        }
        if (accion.equals("ingresarjardin")) {
            Jardinnegocio ja = new Jardinnegocio();
            ja.ingresarjardin(request, response);
        }
        if (accion.equals("listadojardin")) {
            Jardinnegocio ja = new Jardinnegocio();
            Modelo.Jardin j = new Jardin();
            Enumeration en = request.getParameterNames();
            String id = "";
            String actionValue = "";
            while (en.hasMoreElements()) {
                id = (String) en.nextElement();
                actionValue = request.getParameter(id);
            }
            j.setJard_id(Integer.parseInt(id));
            if (id.trim().equalsIgnoreCase("")) {
                request.setAttribute("errorMessage", "NO SE ENCUENTRA EL ID");
                request.getRequestDispatcher("/jardinlistado.jsp").forward(request, response);
            } else {
                if (actionValue.contains("Eliminar")) {
                    ja.eliminarjardin(request, response, j);
                } else {
                    if (actionValue.contains("Modificar")) {
                        Modelo.Jardin jard = JardinBD.obtenerjardin(Integer.parseInt(id));
                        request.setAttribute("jardines", jard);
                        request.getRequestDispatcher("/ingresarjardin.jsp?opcion=Modificar").forward(request, response);
                    }
                }
            }
        }
        if (accion.equals("actualizarjardin")) {
            Jardinnegocio ja = new Jardinnegocio();
            ja.actualizarjardin(request, response);
        }
        if (accion.equals("ingresarencargado")) {
            Encargadonegocio en = new Encargadonegocio();
            en.ingresarencargado(request, response);
        }
        if (accion.equals("listadoencargado")) {
            Encargadonegocio enc=new Encargadonegocio();
            Encargado enca=new Encargado();
            Enumeration en = request.getParameterNames();
            String id = "";
            String actionValue = "";
            while (en.hasMoreElements()) {
                id = (String) en.nextElement();
                actionValue = request.getParameter(id);
            }
            enca.setEnca_id(Integer.parseInt(id));
            if (id.trim().equalsIgnoreCase("")) {
                request.setAttribute("errorMessage", "NO SE ENCUENTRA EL ID");
                request.getRequestDispatcher("/encargadolistado.jsp").forward(request, response);
            } else {
                if (actionValue.contains("Eliminar")) {
                    enc.eliminarjardin(request, response, enca);
                  } else {
                    if (actionValue.contains("Modificar")) {
                        Modelo.Encargado encarg=EncargadoBD.obtenerencargado(Integer.parseInt(id));
                        request.setAttribute("encargados", encarg);
                        request.getRequestDispatcher("/ingresarencargado.jsp?opcion=Modificar").forward(request, response);
                    }
                }
            }
        }
         if (accion.equals("actualizarencargado")) {
            Encargadonegocio enca=new Encargadonegocio();
            enca.actualizarencargado(request, response);
         }
         if (accion.equals("ingresartipo")) {
            Tiponegocio tip=new Tiponegocio();
            tip.ingresartipo(request, response);
        }
         if(accion.equals("actualizartipo")){
             Tiponegocio tip=new Tiponegocio();
             tip.actualizartipo(request, response);
         }
         if (accion.equals("listadotipo")) {
            Tiponegocio tip=new Tiponegocio();
            Tipo t=new Tipo();
            Enumeration en = request.getParameterNames();
            String id = "";
            String actionValue = "";
            while (en.hasMoreElements()) {
                id = (String) en.nextElement();
                actionValue = request.getParameter(id);
            }
            t.setTipo_id(Integer.parseInt(id));
            if (id.trim().equalsIgnoreCase("")) {
                request.setAttribute("errorMessage", "NO SE ENCUENTRA EL ID");
                request.getRequestDispatcher("/tipolistado.jsp").forward(request, response);
            } else {
                if (actionValue.contains("Eliminar")) {
                    tip.eliminartipo(request, response, t);
                    } else {
                    if (actionValue.contains("Modificar")) {
                        Modelo.Tipo tipo=TipoBD.obtenertipo(Integer.parseInt(id));
                        request.setAttribute("tipos", tipo);
                        request.getRequestDispatcher("/ingresartipo.jsp?opcion=Modificar").forward(request, response);
                    }
                }
            }
        }
          if (accion.equals("ingresarorigen")) {
              Origennegocio ori=new Origennegocio();
              ori.ingresarorigen(request, response);
        }
         if(accion.equals("actualizarorigen")){
             Origennegocio ori=new Origennegocio();
             ori.actualizarorigen(request, response);
         }
         if (accion.equals("listadoorigen")) {
            Origennegocio ori=new Origennegocio();
            Origen o= new Origen();
            Enumeration en = request.getParameterNames();
            String id = "";
            String actionValue = "";
            while (en.hasMoreElements()) {
                id = (String) en.nextElement();
                actionValue = request.getParameter(id);
            }
            o.setOri_id(Integer.parseInt(id));
            if (id.trim().equalsIgnoreCase("")) {
                request.setAttribute("errorMessage", "NO SE ENCUENTRA EL ID");
                request.getRequestDispatcher("/origenlistado.jsp").forward(request, response);
            } else {
                if (actionValue.contains("Eliminar")) {
                    ori.eliminarorigen(request, response, o);
                    } else {
                    if (actionValue.contains("Modificar")) {
                        Modelo.Origen origenes=OrigenBD.obtenerorigen(Integer.parseInt(id));
                        request.setAttribute("origenes", origenes);
                        request.getRequestDispatcher("/ingresarorigen.jsp?opcion=Modificar").forward(request, response);
                    }
                }
            }
        }
           if (accion.equals("ingresarrol")) {
              Rolnegocio ro=new Rolnegocio();
              ro.ingresarorigen(request, response);
        }
         if(accion.equals("actualizarrol")){
             Rolnegocio ro=new Rolnegocio();
             ro.actualizarrol(request, response);
         }
         if (accion.equals("listadorol")) {
            Rolnegocio ro=new Rolnegocio();
            Rol r= new Rol();
            Enumeration en = request.getParameterNames();
            String id = "";
            String actionValue = "";
            while (en.hasMoreElements()) {
                id = (String) en.nextElement();
                actionValue = request.getParameter(id);
            }
            r.setRol_id(Integer.parseInt(id));
            if (id.trim().equalsIgnoreCase("")) {
                request.setAttribute("errorMessage", "NO SE ENCUENTRA EL ID");
                request.getRequestDispatcher("/rollistado.jsp").forward(request, response);
            } else {
                if (actionValue.contains("Eliminar")) {
                    ro.eliminarrol(request, response, r);
                    } else {
                    if (actionValue.contains("Modificar")) {
                        Modelo.Rol roles=RolBD.obtenerrol(Integer.parseInt(id));
                        request.setAttribute("roles", roles);
                        request.getRequestDispatcher("/ingresarrol.jsp?opcion=Modificar").forward(request, response);
                    }
                }
            }
        }
            if (accion.equals("ingresarusuario")) {
              Usuarionegocio us=new Usuarionegocio();
              us.ingresarusuario(request, response);
          }
         if(accion.equals("actualizarusuario")){
             Usuarionegocio us=new Usuarionegocio();
             us.actualizarusuario(request, response);
         }
              if (accion.equals("listadousuario")) {
            Usuarionegocio us=new Usuarionegocio();
            Usuario u=new Usuario();
            Enumeration en = request.getParameterNames();
            String id = "";
            String actionValue = "";
            while (en.hasMoreElements()) {
                id = (String) en.nextElement();
                actionValue = request.getParameter(id);
            }
            u.setUsua_id(Integer.parseInt(id));
            if (id.trim().equalsIgnoreCase("")) {
                request.setAttribute("errorMessage", "NO SE ENCUENTRA EL ID");
                request.getRequestDispatcher("/rollistado.jsp").forward(request, response);
            } else {
                if (actionValue.contains("Eliminar")) {
                    us.eliminarusuario(request, response, u);
                  } else {
                    if (actionValue.contains("Modificar")) {
                        Modelo.Usuario usuarios=UsuarioBD.obtenerusuario(Integer.parseInt(id));
                        request.setAttribute("usuarios", usuarios);
                        request.getRequestDispatcher("/ingresarusuario.jsp?opcion=Modificar").forward(request, response);
                    }
                }
            }
        }
            if (accion.equals("ingresarsolicitud")) {
            Solicitudnegocio sn=new Solicitudnegocio();
            sn.ingresarsolicitud(request, response);
            EmailSenderService e=new EmailSenderService();
            
        }
        if (accion.equals("actualizarsolicitud")) {
            Solicitudnegocio sn=new Solicitudnegocio();
           sn.actualizarsolicitud(request, response);
        }

    }

}
