Java tutorial
/* * 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 co.com.powersoft.lab.databaselab.controller; import co.com.powersoft.bean.Usuario; import co.com.powersoft.lab.bean.LineaGeneral; import co.com.powersoft.lab.bean.PlantaGeneral; import co.com.powersoft.lab.databaselab.util.ServiceFactory; import co.com.powersoft.logger.CustomLogger; import co.com.powersoft.logger.ErrorUtil; import co.com.powersoft.logger.constants.OperationConstants; import co.com.powersoft.util.HashEncripter; import co.com.powersoft.util.Utilidades; import co.com.powersoft.util.UtilidadesProperties; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; import java.io.IOException; import java.util.List; import java.util.Properties; import javax.naming.NamingException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * @since 2016-02-26 * @author Leonardo Solano */ @WebServlet(name = "LineaGeneral", urlPatterns = { "/LineaGeneral" }) public class LineaGeneralServlet extends HttpServlet { private CustomLogger logger = new CustomLogger(this.getClass()); private static Properties propiedades = UtilidadesProperties.getInstance().getPropertiesParametros(); HttpSession session; Usuario usuario; private static final String INFO_ADICIONAL = "SERVLET_LINEA_GENERAL"; private static final String MODULO = "LINEA_GENERAL"; private static final String RUTA_MODULO_INICIAL = "/modulos-web"; private static final String RUTA_MODULO = RUTA_MODULO_INICIAL + "/linea-general"; private static final String RESPUESTA = "/resp-linea-general.jsp"; private static final String INDEX = "/linea-general.jsp"; private static final String ACCESO_RESTRINGIDO = "/WEB-INF/Errorpages/AccesoRestringido.jsp"; // MAXIMO NMERO DE ELEMENTOS POR P?GINA private final Integer MAX_REGISTROS_PAGINA = Integer.parseInt(propiedades.getProperty("MAX_REGISTROS_PAGINA")); // MAXIMO NUMERO DE PAGINAS A MOSTRAR private final Integer MAX_NUMERO_PAGINAS_MOSTRAR = Integer .parseInt(propiedades.getProperty("MAX_NUMERO_PAGINAS_MOSTRAR")); //Constantes por defecto public final String TIPO_DOCUMENTO_DEFECTO = propiedades.getProperty("TIPO_DOCUMENTO_DEFECTO"); public final String PAIS_DEFECTO = propiedades.getProperty("PAIS_DEFECTO"); public final String ID_DEPARTAMENTO_DEFECTO = propiedades.getProperty("ID_DEPARTAMENTO_DEFECTO"); public final String DEPARTAMENTO_DEFECTO = propiedades.getProperty("DEPARTAMENTO_DEFECTO"); public final String ID_CIUDAD_DEFECTO = propiedades.getProperty("ID_CIUDAD_DEFECTO"); public final String CIUDAD_DEFECTO = propiedades.getProperty("CIUDAD_DEFECTO"); //Del 1 al 10 Metodos de validacion //Del 11 al 20 Metodos basicos public static final int AGREGAR_LINEA_GENERAL = 11; public static final int ELIMINAR_LINEA_GENERAL = 12; public static final int MODIFICAR_LINEA = 13; //Del 21 al 30 Metodos de carga public static final int MOSTRAR_PANTALLA_1 = 21; public static final int MOSTRAR_PANTALLA_2 = 22; public static final int CARGAR_PLANTAS = 23; public static final int OBTENER_LINEAS_GENERAL_X_PLANTA = 24; public static final int CARGAR_SELECCIONAR_PLANTA_GENERAL = 25; //Del 31 en adelante Metodos generales public static final int MOSTRAR_MODAL_VER_LINEA_GENERAL = 31; public static final int MOSTRAR_MODAL_AGREGAR_LINEA_GENERAL = 32; public static final int MOSTRAR_MODAL_MODIFICAR_LINEA_GENERAL = 33; public static final int MOSTRAR_MODAL_SELECCIONAR_PLANTA_GENERAL = 34; protected void processRequest(HttpServletRequest request, HttpServletResponse response, String tipo) { //Nombre de la operacin String OPERACION = OperationConstants.SERVLET_INICIAL; try { session = request.getSession(); usuario = (Usuario) session.getAttribute("usuario"); //Validamos si tenemos acceso al modulo if (Utilidades.getInstance().validarAccesoModulo(usuario.getListaRoles(), MODULO)) { //Obtenemos los roles usuario.setListaRoles(ServiceFactory.getInstance().getServiceBeanGeneral() .obtenerRolesUsuarioModulo(usuario, MODULO)); session.setAttribute("usuario", usuario); int op = Integer.parseInt(request.getParameter("op") == null ? "-1" : request.getParameter("op")); System.out.println("LineaGeneralController OP: " + op); request.setAttribute("button", "btn-primary"); request.setAttribute("color", "color-blue"); request.setAttribute("iconColor", "color-black"); request.setAttribute("title", "color-white"); request.setAttribute("background", "background-blue"); request.setAttribute("background2", "background-gray"); request.setAttribute("border", "border-blue"); request.setAttribute("border2", "border-gray"); request.setAttribute("thead", "thead-blue"); if (op != -1) { switch (op) { case AGREGAR_LINEA_GENERAL://11 agregarLineaGeneral(request, response); break; case ELIMINAR_LINEA_GENERAL://12 eliminarLineaGeneral(request, response); break; case MODIFICAR_LINEA://13 modificarLineaGeneral(request, response); break; case MOSTRAR_PANTALLA_1://21 mostrarPantalla1(request, response, op); break; case MOSTRAR_PANTALLA_2://22 mostrarPantalla2(request, response, op); break; case CARGAR_PLANTAS://23 cargarPlantas(request, response, op); break; case OBTENER_LINEAS_GENERAL_X_PLANTA://24 obtenerLineasPorPlanta(request, response, op); break; case CARGAR_SELECCIONAR_PLANTA_GENERAL://25 cargarSeleccionarPlantaGeneral(request, response, op); break; case MOSTRAR_MODAL_VER_LINEA_GENERAL://31 mostrarModalVerLineaGeneral(request, response, op); break; case MOSTRAR_MODAL_AGREGAR_LINEA_GENERAL://32 mostrarModalAgregarLineaGeneral(request, response, op); break; case MOSTRAR_MODAL_MODIFICAR_LINEA_GENERAL://33 mostrarModalModificarLineaGeneral(request, response, op); break; case MOSTRAR_MODAL_SELECCIONAR_PLANTA_GENERAL://34 mostrarModalSeleccionarPlantaGeneral(request, response, op); break; } } else { //Redireccionamos getServletContext().getRequestDispatcher(RUTA_MODULO + INDEX).forward(request, response); } } else { //Mostramos la pagina de Error getServletContext().getRequestDispatcher(ACCESO_RESTRINGIDO).forward(request, response); } } catch (NumberFormatException | IOException | ServletException | NamingException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite insertar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso, 2 si ya existe o 0 si no fue * exitoso * @exception IOException */ public void agregarLineaGeneral(HttpServletRequest request, HttpServletResponse response) throws IOException { //Nombre de la operacin String OPERACION = OperationConstants.AGREGAR_LINEA_GENERAL; int resp = 0; try { //Objetos JSON String jsonElementos = request.getParameter("jsonElementos") == null ? "{}" : request.getParameter("jsonElementos"); //Validamos que no sea vacio if (jsonElementos != null && !jsonElementos.equals("{}")) { Gson gson = new Gson(); JsonObject result = gson.fromJson(jsonElementos, JsonElement.class).getAsJsonObject(); //Nombre del prefijo del formulario String prefijo = "linea_"; String idPlanta = request.getParameter("idPlanta") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idPlanta")); //Validamos que exista un idPlanta if (!idPlanta.equals("0")) { JsonArray arrayCodigo = (JsonArray) result.get(prefijo + "codigo"); JsonArray arrayNombre = (JsonArray) result.get(prefijo + "nombre"); //Organizamos el objeto a agregar LineaGeneral lineaGeneral = new LineaGeneral(); for (int i = 0; i < arrayCodigo.size(); i++) { lineaGeneral.setCodigo( arrayCodigo.get(i).getAsString().isEmpty() ? "" : arrayCodigo.get(i).getAsString()); lineaGeneral.setNombre( arrayNombre.get(i).getAsString().isEmpty() ? "" : arrayNombre.get(i).getAsString()); PlantaGeneral plantaGeneral = new PlantaGeneral(); plantaGeneral.setId(Integer.parseInt(idPlanta)); lineaGeneral.setPlantaGeneral(plantaGeneral); } //Agregamos el objeto a la BD resp = ServiceFactory.getInstance().getServiceBeanLab().agregarLineaGeneral(usuario, lineaGeneral); } } //Retornamos la respuesta al JSP respuestaServer(response, resp); } catch (NumberFormatException | JsonSyntaxException | NamingException e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite eliminar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @exception IOException */ public void eliminarLineaGeneral(HttpServletRequest request, HttpServletResponse response) throws IOException { //Nombre de la operacin String OPERACION = OperationConstants.ELIMINAR_LINEA_GENERAL; int resp = 0; try { //Obtenemos el id de la planta String idLinea = request.getParameter("id") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("id")); //Eliminamos la planta resp = ServiceFactory.getInstance().getServiceBeanLab().eliminarLineaGeneral(usuario, Integer.parseInt(idLinea)); //Retornamos la respuesta al JSP respuestaServer(response, resp); } catch (NumberFormatException | NamingException e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite modificar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @exception IOException */ public void modificarLineaGeneral(HttpServletRequest request, HttpServletResponse response) throws IOException { //Nombre de la operacin String OPERACION = OperationConstants.MODIFICAR_LINEA_GENERAL; int resp = 0; try { //Objetos JSON String jsonElementos = request.getParameter("jsonElementos") == null ? "{}" : request.getParameter("jsonElementos"); //Validamos que no sea vacio if (jsonElementos != null && !jsonElementos.equals("{}")) { Gson gson = new Gson(); JsonObject result = gson.fromJson(jsonElementos, JsonElement.class).getAsJsonObject(); //Nombre del prefijo del formulario String prefijo = "linea_"; JsonArray arrayIdLinea = (JsonArray) result.get(prefijo + "idLinea"); JsonArray arrayCodigo = (JsonArray) result.get(prefijo + "codigo"); JsonArray arrayNombre = (JsonArray) result.get(prefijo + "nombre"); JsonArray arrayIdPlantaGeneral = (JsonArray) result.get(prefijo + "idPlantaNew"); //Organizamos el objeto a agregar LineaGeneral lineaGeneral = new LineaGeneral(); for (int i = 0; i < arrayIdLinea.size(); i++) { lineaGeneral.setId(Integer.parseInt( HashEncripter.getInstance().desencrypterKey(arrayIdLinea.get(i).getAsString()))); lineaGeneral.setCodigo( arrayCodigo.get(i).getAsString().isEmpty() ? "" : arrayCodigo.get(i).getAsString()); lineaGeneral.setNombre( arrayNombre.get(i).getAsString().isEmpty() ? "" : arrayNombre.get(i).getAsString()); PlantaGeneral plantaGeneral = new PlantaGeneral(); plantaGeneral.setId(Integer.parseInt(HashEncripter.getInstance() .desencrypterKey(arrayIdPlantaGeneral.get(i).getAsString()))); lineaGeneral.setPlantaGeneral(plantaGeneral); } //Obtenemos el usuario por session //Modificamos el objeto a la BD resp = ServiceFactory.getInstance().getServiceBeanLab().modificarLinea(usuario, lineaGeneral); } //Retornamos la respuesta al JSP respuestaServer(response, resp); } catch (NumberFormatException | JsonSyntaxException | NamingException e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar una SECCION * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarPantalla1(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MOSTRAR_SECCION; try { request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar una SECCION * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarPantalla2(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MOSTRAR_SECCION; try { request.setAttribute("op", op); request.setAttribute("nombrePlanta", request.getParameter("nombrePlanta")); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite obtener todas las personas existentes PAGINADAS * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void cargarPlantas(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.CARGAR_PLANTAS; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadPlantas(idEmpresaGeneral, buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<PlantaGeneral> listaPlantas = ServiceFactory.getInstance().getServiceBeanLab() .cargarPlantas(idEmpresaGeneral, buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("op", op); request.setAttribute("listaPlantas", listaPlantas); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); // nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite obtener todas las personas existentes PAGINADAS * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void obtenerLineasPorPlanta(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.OBTENER_LINEAS_GENERAL_X_PLANTA; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Obtenemos el id de la planta String idPlanta = request.getParameter("idPlanta") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idPlanta")); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadLineas(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<LineaGeneral> listaLineas = ServiceFactory.getInstance().getServiceBeanLab() .obtenerLineasPorPlanta(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("op", op); request.setAttribute("listaLineas", listaLineas); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); // nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite buscar una planta general existente PAGINADAS * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void cargarSeleccionarPlantaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.CARGAR_SELECCIONAR_PLANTA_GENERAL; try { //Obtenemos el Personal x Cargo de la planta int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadPlantas(idEmpresaGeneral, buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<PlantaGeneral> listaPlantaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .cargarPlantas(idEmpresaGeneral, buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("listaPlantas", listaPlantaGeneral); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para VER * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalVerLineaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_VER; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Planta General String idLinea = request.getParameter("idLinea") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idLinea")); LineaGeneral lineaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .obtenerLineaGeneral(idEmpresaGeneral, Integer.parseInt(idLinea)); request.setAttribute("lineaGeneral", lineaGeneral); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para AGREGAR * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalAgregarLineaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_AGREGAR; try { request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para modificar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalModificarLineaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_MODIFICAR; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Planta General String idLinea = request.getParameter("idLinea") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idLinea")); LineaGeneral lineaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .obtenerLineaGeneral(idEmpresaGeneral, Integer.parseInt(idLinea)); request.setAttribute("lineaGeneral", lineaGeneral); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para seleccionar una planta * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalSeleccionarPlantaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_SELECCIONAR; try { //Obtenemos el Personal x Cargo de la planta int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadPlantas(idEmpresaGeneral, buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<PlantaGeneral> listaPlantaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .cargarPlantas(idEmpresaGeneral, buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("listaPlantas", listaPlantaGeneral); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite setear la respuesta a un HttpServletResponse * * @autor Leonardo Solano * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param resp (int) respuesta de la operacion */ public void respuestaServer(HttpServletResponse response, int resp) { //Nombre de la operacin String OPERACION = OperationConstants.RESPUESTA_SERVLET; ServletOutputStream outStream = null; try { String respJSON = "{\"resp\":\"" + resp + "\"}"; response.setContentType("application/json;charset=UTF-8"); outStream = response.getOutputStream(); outStream.print(respJSON); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } finally { try { if (outStream != null) { outStream.flush(); outStream.close(); } } catch (IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response, "GET"); } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response, "POST"); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }