From 3cf1e6fda1bcd659c955e9552f6a68807ccaa86e Mon Sep 17 00:00:00 2001 From: hugoa Date: Fri, 10 May 2024 10:00:30 -0500 Subject: [PATCH] validaciones de telefono y correo --- .../src/java/xforce/bl/UsuariosBL.java | 57 +++++++++++++++---- .../src/java/xforce/dao/UsuariosDAO.java | 31 +++++++++- ProyectoInventario-war/web/marcaLista.xhtml | 10 ++-- .../web/usuariosLista.xhtml | 9 ++- 4 files changed, 84 insertions(+), 23 deletions(-) diff --git a/ProyectoInventario-ejb/src/java/xforce/bl/UsuariosBL.java b/ProyectoInventario-ejb/src/java/xforce/bl/UsuariosBL.java index aee9675..a5eadeb 100644 --- a/ProyectoInventario-ejb/src/java/xforce/bl/UsuariosBL.java +++ b/ProyectoInventario-ejb/src/java/xforce/bl/UsuariosBL.java @@ -10,6 +10,7 @@ import javax.ejb.Stateless; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import xforce.dao.EstadosDAO; +import xforce.dao.ProveedorDAO; import xforce.dao.RolesDAO; import xforce.dao.UsuariosDAO; import xforce.modelo.Estados; @@ -31,9 +32,10 @@ public class UsuariosBL implements UsuariosBLLocal { System.out.println("Llegaste al metodo de agregar usuario"); UsuariosDAO usuariosDAO = new UsuariosDAO(); Mensaje m; - + RolesDAO rolesDao = new RolesDAO(); EstadosDAO estadosDao = new EstadosDAO(); + ProveedorDAO proveedorDao = new ProveedorDAO(); // Verifica si las llaves foraneas existen Roles rol = rolesDao.buscarId(usuarios.getRolesId()); @@ -55,29 +57,60 @@ public class UsuariosBL implements UsuariosBLLocal { || usuarios.getContrasenia().isEmpty() || usuarios.getDomicilio().isEmpty() || usuarios.getEstadosId() == null - || usuarios.getRolesId() == null) { + || usuarios.getRolesId() == null){ System.out.println("Campos incompletos"); - + return Mensaje.CAMPOS_INCOMPLETOS; } Optional usuarioEncontradoOptional = usuariosDAO.buscarUsuario(usuarios); + Optional validarTel = usuariosDAO.buscarTelefono(usuarios.getTelefono()); + //Optional validarTelPro = proveedorDao.buscarTelefono(usuarios.getTelefono()); + Optional validarEmail = usuariosDAO.buscarCorreo(usuarios.getEmail()); if (usuarioEncontradoOptional.isPresent()) { // Manejar el caso en el que se encontró al menos un usuario usuarioEncontradoOptional.get(); System.out.println("Elemento duplicado"); - addMessage(FacesMessage.SEVERITY_ERROR,"ERROR","Elemento duplicado"); - m = Mensaje.ELEMENTO_DUPLICADO; - } else { - usuariosDAO.agregar(usuarios); - System.out.println("Agregado con exito"); - - addMessage(FacesMessage.SEVERITY_INFO,"INFO","Agregado con exito"); - - m = Mensaje.SIN_ERROR; + addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "Elemento duplicado"); + return Mensaje.ELEMENTO_DUPLICADO; + } +//validar telefono en usuario + if (validarTel.isPresent()) { + validarTel.get(); + System.out.println("Telefono duplicado"); + addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "Telefono duplicado"); + return Mensaje.ELEMENTO_DUPLICADO; } +//validar telefono en proveedor + /*if (validarTelPro.isPresent()) { + validarTelPro.get(); + System.out.println("Telefono duplicado en proveedor"); + addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "Telefono duplicado en proveedor"); + return Mensaje.ELEMENTO_DUPLICADO; + }*/ + +//validar email usuario + if (validarEmail.isPresent()) { + validarEmail.get(); + System.out.println("Email duplicado"); + addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "Email duplicado"); + return Mensaje.ELEMENTO_DUPLICADO; + } + +// validar email en proveedor + + + +//Todo salio bien + usuariosDAO.agregar(usuarios); + System.out.println("Agregado con exito"); + + addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Agregado con exito"); + + m = Mensaje.SIN_ERROR; + return m; } diff --git a/ProyectoInventario-ejb/src/java/xforce/dao/UsuariosDAO.java b/ProyectoInventario-ejb/src/java/xforce/dao/UsuariosDAO.java index 9acd2a6..ee7192a 100644 --- a/ProyectoInventario-ejb/src/java/xforce/dao/UsuariosDAO.java +++ b/ProyectoInventario-ejb/src/java/xforce/dao/UsuariosDAO.java @@ -103,6 +103,9 @@ public class UsuariosDAO { Query q6 = em.createNamedQuery("Usuarios.findByDomicilio"); q6.setParameter("domicilio", a.getDomicilio()); + Query q9 = em.createNamedQuery("Usuarios.findByEstado"); + q9.setParameter("estado", a.getEstado()); + Query q7 = em.createQuery("SELECT u FROM Usuarios u WHERE u.rolesId = :id"); q7.setParameter("id", a.getRolesId()); @@ -117,9 +120,10 @@ public class UsuariosDAO { List resDomicilio = q6.getResultList(); List resRol = q7.getResultList(); List resEstados = q8.getResultList(); + List resEstado = q9.getResultList(); if (!resNombre.isEmpty() && !resApellidoPaterno.isEmpty() && !resEmail.isEmpty() && !resTelefono.isEmpty() && !resContrasenia.isEmpty() && !resDomicilio.isEmpty() - && !resRol.isEmpty() && !resEstados.isEmpty()) { + && !resRol.isEmpty() && !resEstados.isEmpty() && !resEstado.isEmpty()) { Usuarios usuarioEncontrado = resNombre.stream() .filter(resApellidoPaterno::contains) .filter(resEmail::contains) @@ -128,6 +132,7 @@ public class UsuariosDAO { .filter(resDomicilio::contains) .filter(resRol::contains) .filter(resEstados::contains) + .filter(resEstado::contains) .findFirst() .orElse(null); return Optional.ofNullable(usuarioEncontrado); @@ -136,5 +141,29 @@ public class UsuariosDAO { } } + + public Optional buscarTelefono(String telefono) { + // Crear la consulta para buscar un usuario por su teléfono + Query q = em.createNamedQuery("Usuarios.findByTelefono"); + q.setParameter("telefono", telefono); + + // Obtener los resultados de la consulta + List resultados = q.getResultList(); + + // Si hay resultados, devolver el primer resultado, de lo contrario, devolver Optional.empty() + return resultados.isEmpty() ? Optional.empty() : Optional.of(resultados.get(0)); + } + + public Optional buscarCorreo(String email) { + // Crear la consulta para buscar un usuario por su teléfono + Query q = em.createNamedQuery("Usuarios.findByEmail"); + q.setParameter("email", email); + + // Obtener los resultados de la consulta + List resultados = q.getResultList(); + + // Si hay resultados, devolver el primer resultado, de lo contrario, devolver Optional.empty() + return resultados.isEmpty() ? Optional.empty() : Optional.of(resultados.get(0)); + } } diff --git a/ProyectoInventario-war/web/marcaLista.xhtml b/ProyectoInventario-war/web/marcaLista.xhtml index 6fa2029..c9b1969 100644 --- a/ProyectoInventario-war/web/marcaLista.xhtml +++ b/ProyectoInventario-war/web/marcaLista.xhtml @@ -17,6 +17,11 @@ + + + + +
@@ -27,11 +32,6 @@ - + + + +
@@ -27,11 +31,6 @@ -