Browse Source

validaciones de telefono y correo

master
hugoa 4 months ago
parent
commit
3cf1e6fda1
  1. 39
      ProyectoInventario-ejb/src/java/xforce/bl/UsuariosBL.java
  2. 31
      ProyectoInventario-ejb/src/java/xforce/dao/UsuariosDAO.java
  3. 10
      ProyectoInventario-war/web/marcaLista.xhtml
  4. 9
      ProyectoInventario-war/web/usuariosLista.xhtml

39
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;
@ -34,6 +35,7 @@ public class UsuariosBL implements UsuariosBLLocal {
RolesDAO rolesDao = new RolesDAO();
EstadosDAO estadosDao = new EstadosDAO();
ProveedorDAO proveedorDao = new ProveedorDAO();
// Verifica si las llaves foraneas existen
Roles rol = rolesDao.buscarId(usuarios.getRolesId());
@ -63,21 +65,52 @@ public class UsuariosBL implements UsuariosBLLocal {
}
Optional<Usuarios> usuarioEncontradoOptional = usuariosDAO.buscarUsuario(usuarios);
Optional<Usuarios> validarTel = usuariosDAO.buscarTelefono(usuarios.getTelefono());
//Optional<Proveedor> validarTelPro = proveedorDao.buscarTelefono(usuarios.getTelefono());
Optional<Usuarios> 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 {
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;
}

31
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<Usuarios> resDomicilio = q6.getResultList();
List<Usuarios> resRol = q7.getResultList();
List<Usuarios> resEstados = q8.getResultList();
List<Usuarios> 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);
@ -137,4 +142,28 @@ public class UsuariosDAO {
}
public Optional<Usuarios> 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<Usuarios> 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<Usuarios> 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<Usuarios> 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));
}
}

10
ProyectoInventario-war/web/marcaLista.xhtml

@ -17,6 +17,11 @@
<ui:define name="content">
<f:view>
<f:metadata>
<f:viewParam name="rol" value="#{demoBeanLogin.rol}" />
<f:event type="preRenderView" listener="#{demoBeanLogin.verificarAcceso('admin,gestor')}" />
</f:metadata>
<div>
<h:form>
<p:menubar >
@ -27,11 +32,6 @@
<p:menuitem value="Ubicaciones" action="ubicacionLista.xhtml" ajax="false"/>
<p:menuitem value="Usuarios" action="usuariosLista.xhtml" ajax="false"/>
<p:submenu label="Opciones" icon="pi pi-fw pi-list">
<p:menuitem value="Roles"
icon="pi pi-fw pi-users"
oncomplete="PF('rol').show()"
update=":rolD"
actionListener="#{demoBeanRoles.prepararNuevo()}"/>
<p:menuitem value="Paises"
icon="pi pi-globe"

9
ProyectoInventario-war/web/usuariosLista.xhtml

@ -17,6 +17,10 @@
<ui:define name="content">
<f:view>
<f:metadata>
<f:viewParam name="rol" value="#{demoBeanLogin.rol}" />
<f:event type="preRenderView" listener="#{demoBeanLogin.verificarAcceso('admin,gestor')}" />
</f:metadata>
<div>
<h:form>
<p:menubar >
@ -27,11 +31,6 @@
<p:menuitem value="Ubicaciones" action="ubicacionLista.xhtml" ajax="false"/>
<p:menuitem value="Usuarios" action="usuariosLista.xhtml" disabled="true" ajax="false"/>
<p:submenu label="Opciones" icon="pi pi-fw pi-list">
<p:menuitem value="Roles"
icon="pi pi-fw pi-users"
oncomplete="PF('rol').show()"
update=":rolD"
actionListener="#{demoBeanRoles.prepararNuevo()}"/>
<p:menuitem value="Paises"
icon="pi pi-globe"

Loading…
Cancel
Save