Browse Source

login terminado

master
Ely 4 months ago
parent
commit
b51fda2eec
  1. 130
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/RolBL.java
  2. 30
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/RolBLLocal.java
  3. 45
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/UsuariosBL.java
  4. 4
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/UsuariosBLLocal.java
  5. 128
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/RolDAO.java
  6. 81
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/UsuariosDAO.java
  7. 204
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/modelo/Domicilio.java
  8. 20
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/modelo/Rol.java
  9. 234
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/modelo/Usuarios.java
  10. 31
      Inventario-war/src/java/mx/edu/tjs/chapala/sistemas/seguridad/Login.java
  11. 45
      Inventario-war/src/java/mx/edu/tjs/chapala/sistemas/vista/DemoBeanUsuarios.java
  12. 29
      Inventario-war/web/index.xhtml
  13. 2
      Inventario-war/web/resources/css/cssLayout.css
  14. BIN
      Inventario-war/web/resources/imagen/usuario.png
  15. 149
      Inventario-war/web/rolLista.xhtml
  16. 323
      Inventario-war/web/usuariosLista.xhtml

130
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/RolBL.java

@ -0,0 +1,130 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/J2EE/EJB30/StatelessEjbClass.java to edit this template
*/
package mx.edu.tjs.chapala.sistemas.bl;
import java.util.List;
import java.util.Optional;
import javax.ejb.Stateless;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import mx.edu.tjs.chapala.sistemas.dao.RolDAO;
import mx.edu.tjs.chapala.sistemas.modelo.Rol;
import mx.edu.tjs.chapala.sistemas.msg.Mensaje;
/**
*
* @author Ely
*/
@Stateless
public class RolBL implements RolBLLocal {
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method")
public void addMessage(FacesMessage.Severity severity, String summary, String detail) {
FacesContext.getCurrentInstance().
addMessage(null, new FacesMessage(severity, summary, detail));
}
@Override
public Mensaje agregar(Rol rol) {
System.out.println("Llegaste al metodo de agregar rol");
RolDAO rolDAO = new RolDAO();
Mensaje m = null;
//Toda la logica
Optional<Rol> rolEncontradoOptional =rolDAO.buscarRol(rol);
if (rolEncontradoOptional.isPresent()) {
rolEncontradoOptional.get();
m = Mensaje.ELEMENTO_DUPLICADO;
System.out.println("NO SE PUEDE AGREGAR, EL ROL YA EXISTE");
addMessage(FacesMessage.SEVERITY_ERROR, "", "¡Error! El elemento ya existe");
} else {
rolDAO.agregar(rol);
m = Mensaje.SIN_ERROR;
System.out.println("AGREGADO CON EXITO");
addMessage(FacesMessage.SEVERITY_INFO, "", "¡Elemento agregado con éxito!");
}
return m;
}
@Override
public Rol buscarId(Rol rol) {
System.out.println("Llegaste al metodo de buscar por id");
RolDAO r = new RolDAO();
Mensaje m = null;
Rol rolEncontrado = r.buscarPorId(rol);
if (rolEncontrado == null) {
m = Mensaje.ELEMENTO_NO_ENCONTRADO;
System.out.println("NO EXISTE EL rol");
return rolEncontrado;
} else {
m = Mensaje.SIN_ERROR;
System.out.println("ROL ENCONTRADO CON EXITO: " + rolEncontrado.getId());
return rolEncontrado;
}
}
@Override
public Rol buscarNombre(Rol rol) {
System.out.println("Llegaste al metodo de buscar por nombre");
RolDAO r = new RolDAO();
Mensaje m = null;
Rol rolEncontrado = r.buscarPorRol(rol);
if (rolEncontrado == null) {
m = Mensaje.ELEMENTO_NO_ENCONTRADO;
System.out.println("NO EXISTE EL Usuarios");
return rolEncontrado;
} else {
m = Mensaje.SIN_ERROR;
System.out.println("Usuarios ENCONTRADO CON EXITO: " + rolEncontrado.getRol());
return rolEncontrado;
}
}
@Override
public List<Rol> buscarStatus(boolean b) {
RolDAO r = new RolDAO();
List l = r.buscarStatus(b);
System.out.println(l);
return l;
}
@Override
public void eliminarId(Rol r) {
RolDAO rl = new RolDAO();
Mensaje m = null;
if (rl.eliminar(r)) {
m = Mensaje.SIN_ERROR;
System.out.println("ELIMINADO CON EXITO");
addMessage(FacesMessage.SEVERITY_INFO, "", "¡rol eliminado correctamente!");
} else {
m = Mensaje.ELEMENTO_NO_ENCONTRADO;
System.out.println("NO SE PUDO ELIMINAR");
addMessage(FacesMessage.SEVERITY_WARN, "", "¡Error! No se pudo eliminar el rol");
}
}
@Override
public void editar(Rol rol) {
RolDAO r = new RolDAO();
Mensaje m = null;
r.editar(rol);
}
}

30
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/RolBLLocal.java

@ -0,0 +1,30 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/J2EE/EJB30/SessionLocal.java to edit this template
*/
package mx.edu.tjs.chapala.sistemas.bl;
import java.util.List;
import javax.ejb.Local;
import mx.edu.tjs.chapala.sistemas.modelo.Rol;
import mx.edu.tjs.chapala.sistemas.msg.Mensaje;
/**
*
* @author Ely
*/
@Local
public interface RolBLLocal {
public void editar(Rol rol);
public void eliminarId(Rol r);
public List<Rol> buscarStatus(boolean b);
public Rol buscarNombre(Rol rol);
public Rol buscarId(Rol rol);
public Mensaje agregar(Rol rol);
}

45
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/UsuariosBL.java

@ -124,10 +124,49 @@ public class UsuariosBL implements UsuariosBLLocal {
@Override
public void editar(Usuarios usuarios) {
UsuariosDAO u = new UsuariosDAO();
public Mensaje editar(Usuarios usuarios) {
UsuariosDAO usuariosDAO = new UsuariosDAO();
Mensaje m = null;
u.editar(usuarios);
//Toda la logica
Optional<Usuarios> usuariosEncontradoOptional = usuariosDAO.buscarUsuarios(usuarios);
if (usuariosEncontradoOptional.isPresent()) {
usuariosEncontradoOptional.get();
m = Mensaje.ELEMENTO_DUPLICADO;
System.out.println("NO SE PUEDE AGREGAR, EL usuario YA EXISTE");
addMessage(FacesMessage.SEVERITY_ERROR, "", "¡Error! El elemento ya existe");
} else {
usuariosDAO.agregar(usuarios);
m = Mensaje.SIN_ERROR;
System.out.println("AGREGADO CON EXITO");
addMessage(FacesMessage.SEVERITY_INFO, "", "¡Elemento agregado con éxito!");
}
return m;
}
@Override
public Mensaje loginValidar(Usuarios usuarios) {
UsuariosDAO usuariosDAO=new UsuariosDAO();
Mensaje m = null;
//Toda la logica
Optional<Usuarios> EncontradoOptional = usuariosDAO.validar(usuarios);
if (EncontradoOptional.isPresent()) {
EncontradoOptional.get();
usuariosDAO.validar(usuarios);
m = Mensaje.SIN_ERROR;
System.out.println("No Se Inisio Sesion");
addMessage(FacesMessage.SEVERITY_ERROR, "", "¡Error! algun campo incorecto");
} else {
usuariosDAO.validar(usuarios);
m = Mensaje.ELEMENTO_DUPLICADO;System.out.println("Inisio Sesion");
addMessage(FacesMessage.SEVERITY_INFO, "", "¡entrado!");
}
return m;
}

4
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/UsuariosBLLocal.java

@ -16,7 +16,7 @@ import mx.edu.tjs.chapala.sistemas.msg.Mensaje;
@Local
public interface UsuariosBLLocal {
public void editar(Usuarios usuarios);
public Mensaje editar(Usuarios usuarios);
public void eliminarId(Usuarios usuarios);
@ -28,4 +28,6 @@ public interface UsuariosBLLocal {
public Mensaje agregar(Usuarios usuarios);
public Mensaje loginValidar(Usuarios usuarios);
}

128
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/RolDAO.java

@ -0,0 +1,128 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package mx.edu.tjs.chapala.sistemas.dao;
import java.util.List;
import java.util.Optional;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import mx.edu.tjs.chapala.sistemas.modelo.Rol;
/**
*
* @author Ely
*/
public class RolDAO {
private EntityManager em; //Manejador de entidades (entidad=bean del modelo)
public RolDAO() {
//conexion
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Inventario-ejbPU");
em = emf.createEntityManager();
}
public void agregar(Rol r) {
em.getTransaction().begin();
r.setStatus(1);
em.persist(r); //Almacenar en la BD
em.getTransaction().commit();
}
public void editar(Rol r) {
buscarPorId(r);
em.getTransaction().begin();
em.merge(r); //Editar en la BD
em.getTransaction().commit();
}
public boolean eliminar(Rol r) {
if (buscarPorId(r) == null) {
return false;
} else {
em.getTransaction().begin();
// Obtener usuarios actualizado desde la base de datos
Rol ro = em.find(Rol.class, r.getId());
r.setRol(ro.getRol());
// Modificar solo el estado
r.setStatus(0);
em.merge(r);
em.getTransaction().commit();
return true;
}
}
public Optional<Rol> buscarRol(Rol r) {
Query q1 = em.createNamedQuery("Rol.findByRol");
q1.setParameter("rol",r.getRol());
List<Rol> resultadoRol = q1.getResultList();
// Verifica si hay resultados para todos los campos
if (!resultadoRol.isEmpty()) {
// Compara si el mismo autor está en los tres resultados
Rol rolEncontrado = resultadoRol.stream()
.findFirst()
.orElse(null);
return Optional.ofNullable(rolEncontrado);
} else {
// Devuelve Optional vacío para indicar ausencia de resultados
return Optional.empty();
}
}
public Rol buscarPorId(Rol r) {
Query q = em.createNamedQuery("Rol.findById");
q.setParameter("id", r.getId());
if (q.getResultList().isEmpty()) {
return null;
} else {
return (Rol) q.getResultList().get(0);
}
}
public Rol buscarPorRol(Rol r) {
Query q = em.createNamedQuery("Rol.findByRol");
q.setParameter("rol", r.getRol());
if (q.getResultList().isEmpty()) {
return null;
} else {
return (Rol) q.getResultList().get(0);
}
}
public List<Rol> buscarStatus(boolean status) {
Query q = em.createNamedQuery("Rol.findByStatus");
int s = status ? 1 : 0;
if(s==1){
System.out.println("Rol activos");
} else {
System.out.println("Rol inactivos");
}
q.setParameter("status", s);
return q.getResultList();
}
}

81
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/UsuariosDAO.java

@ -33,6 +33,32 @@ public class UsuariosDAO {
em.getTransaction().commit();
}
public Optional<Usuarios> validar(Usuarios u) {
Query q = em.createNamedQuery("Usuarios.findByUsuario");
q.setParameter("usuario", u.getUsuario());
Query q1 = em.createNamedQuery("Usuarios.findByContrasenia");
q1.setParameter("contrasenia", u.getContrasenia());
List<Usuarios> uresultado = q.getResultList();
List<Usuarios> cresultado = q1.getResultList();
if (!uresultado.isEmpty() && !cresultado.isEmpty()) {
Usuarios Encontrado = uresultado.stream()
.filter(uresultado::contains)
.filter(cresultado::contains)
.findFirst()
.orElse(null);
return Optional.ofNullable(Encontrado);
} else {
// Devuelve Optional vacío para indicar ausencia de resultados
return Optional.empty();
}
}
public void editar(Usuarios u) {
buscarPorId(u);
em.getTransaction().begin();
@ -65,18 +91,65 @@ public class UsuariosDAO {
}
public Optional<Usuarios> buscarUsuarios(Usuarios u) {
Query q1 = em.createNamedQuery("Usuarios.findByUsuario");
q1.setParameter("usuario", u.getUsuario());
Query q = em.createNamedQuery("Usuarios.findByNombre");
q.setParameter("nombre", u.getNombre());
Query q1 = em.createNamedQuery("Usuarios.findByApellidop");
q1.setParameter("apellidop", u.getApellidop());
Query q2 = em.createNamedQuery("Usuarios.findByApellidom");
q2.setParameter("apellidom", u.getApellidom());
Query q3 = em.createNamedQuery("Usuarios.findByUsuario");
q3.setParameter("usuario", u.getUsuario());
Query q5 = em.createNamedQuery("Usuarios.findByPais");
q5.setParameter("pais", u.getPais());
Query q6 = em.createNamedQuery("Usuarios.findByEstado");
q6.setParameter("estado", u.getEstado());
Query q7 = em.createNamedQuery("Usuarios.findByMunicipio");
q7.setParameter("municipio", u.getMunicipio());
Query q8 = em.createNamedQuery("Usuarios.findByLocalidad");
q8.setParameter("localidad", u.getLocalidad());
List<Usuarios> resultadoNombre = q.getResultList();
List<Usuarios> resultadoApellidop = q1.getResultList();
List<Usuarios> resultadoApellidom = q2.getResultList();
List<Usuarios> resultadoUsuarios = q3.getResultList();
List<Usuarios> resultadoPais = q5.getResultList();
List<Usuarios> resultadoEstado = q6.getResultList();
List<Usuarios> resultadoUsuarios = q1.getResultList();
List<Usuarios> resultadoMunicipio = q7.getResultList();
List<Usuarios> resultadoLocalidad = q8.getResultList();
// Verifica si hay resultados para todos los campos
if (!resultadoUsuarios.isEmpty()) {
if (!resultadoNombre.isEmpty() && !resultadoApellidop.isEmpty() && !resultadoApellidom.isEmpty()
&& !resultadoUsuarios.isEmpty() && !resultadoPais.isEmpty()
&& !resultadoEstado.isEmpty() && !resultadoMunicipio.isEmpty() && !resultadoLocalidad.isEmpty()) {
// Compara si el mismo autor está en los tres resultados
Usuarios usuariosEncontrado = resultadoUsuarios.stream()
.filter(resultadoNombre::contains)
.filter(resultadoApellidop::contains)
.filter(resultadoApellidom::contains)
.filter(resultadoUsuarios::contains)
.filter(resultadoPais::contains)
.filter(resultadoEstado::contains)
.filter(resultadoMunicipio::contains)
.filter(resultadoLocalidad::contains)
.findFirst()
.orElse(null);

204
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/modelo/Domicilio.java

@ -1,204 +0,0 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package mx.edu.tjs.chapala.sistemas.modelo;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author nickdalyrendon
*/
@Entity
@Table(name = "domicilio")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Domicilio.findAll", query = "SELECT d FROM Domicilio d"),
@NamedQuery(name = "Domicilio.findById", query = "SELECT d FROM Domicilio d WHERE d.id = :id"),
@NamedQuery(name = "Domicilio.findByPais", query = "SELECT d FROM Domicilio d WHERE d.pais = :pais"),
@NamedQuery(name = "Domicilio.findByEstado", query = "SELECT d FROM Domicilio d WHERE d.estado = :estado"),
@NamedQuery(name = "Domicilio.findByMunicipio", query = "SELECT d FROM Domicilio d WHERE d.municipio = :municipio"),
@NamedQuery(name = "Domicilio.findByLocalidad", query = "SELECT d FROM Domicilio d WHERE d.localidad = :localidad"),
@NamedQuery(name = "Domicilio.findByCp", query = "SELECT d FROM Domicilio d WHERE d.cp = :cp"),
@NamedQuery(name = "Domicilio.findByCalle", query = "SELECT d FROM Domicilio d WHERE d.calle = :calle"),
@NamedQuery(name = "Domicilio.findByNumero", query = "SELECT d FROM Domicilio d WHERE d.numero = :numero")})
public class Domicilio implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "pais")
private String pais;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "estado")
private String estado;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "municipio")
private String municipio;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "localidad")
private String localidad;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "cp")
private String cp;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "calle")
private String calle;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "numero")
private String numero;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "domicilioId")
private List<Usuarios> usuariosList;
public Domicilio() {
}
public Domicilio(Integer id) {
this.id = id;
}
public Domicilio(Integer id, String pais, String estado, String municipio, String localidad, String cp, String calle, String numero) {
this.id = id;
this.pais = pais;
this.estado = estado;
this.municipio = municipio;
this.localidad = localidad;
this.cp = cp;
this.calle = calle;
this.numero = numero;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getPais() {
return pais;
}
public void setPais(String pais) {
this.pais = pais;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getMunicipio() {
return municipio;
}
public void setMunicipio(String municipio) {
this.municipio = municipio;
}
public String getLocalidad() {
return localidad;
}
public void setLocalidad(String localidad) {
this.localidad = localidad;
}
public String getCp() {
return cp;
}
public void setCp(String cp) {
this.cp = cp;
}
public String getCalle() {
return calle;
}
public void setCalle(String calle) {
this.calle = calle;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
@XmlTransient
public List<Usuarios> getUsuariosList() {
return usuariosList;
}
public void setUsuariosList(List<Usuarios> usuariosList) {
this.usuariosList = usuariosList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Domicilio)) {
return false;
}
Domicilio other = (Domicilio) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "mx.edu.tjs.chapala.sistemas.modelo.Domicilio[ id=" + id + " ]";
}
}

20
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/modelo/Rol.java

@ -24,7 +24,7 @@ import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author nickdalyrendon
* @author Ely
*/
@Entity
@Table(name = "rol")
@ -32,7 +32,8 @@ import javax.xml.bind.annotation.XmlTransient;
@NamedQueries({
@NamedQuery(name = "Rol.findAll", query = "SELECT r FROM Rol r"),
@NamedQuery(name = "Rol.findById", query = "SELECT r FROM Rol r WHERE r.id = :id"),
@NamedQuery(name = "Rol.findByRol", query = "SELECT r FROM Rol r WHERE r.rol = :rol")})
@NamedQuery(name = "Rol.findByRol", query = "SELECT r FROM Rol r WHERE r.rol = :rol"),
@NamedQuery(name = "Rol.findByStatus", query = "SELECT r FROM Rol r WHERE r.status = :status")})
public class Rol implements Serializable {
private static final long serialVersionUID = 1L;
@ -46,6 +47,10 @@ public class Rol implements Serializable {
@Size(min = 1, max = 45)
@Column(name = "rol")
private String rol;
@Basic(optional = false)
@NotNull
@Column(name = "status")
private int status;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "rolId")
private List<Usuarios> usuariosList;
@ -56,9 +61,10 @@ public class Rol implements Serializable {
this.id = id;
}
public Rol(Integer id, String rol) {
public Rol(Integer id, String rol, int status) {
this.id = id;
this.rol = rol;
this.status = status;
}
public Integer getId() {
@ -77,6 +83,14 @@ public class Rol implements Serializable {
this.rol = rol;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
@XmlTransient
public List<Usuarios> getUsuariosList() {
return usuariosList;

234
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/modelo/Usuarios.java

@ -25,7 +25,7 @@ import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author nickdalyrendon
* @author Ely
*/
@Entity
@Table(name = "usuarios")
@ -33,16 +33,23 @@ import javax.xml.bind.annotation.XmlRootElement;
@NamedQueries({
@NamedQuery(name = "Usuarios.findAll", query = "SELECT u FROM Usuarios u"),
@NamedQuery(name = "Usuarios.findById", query = "SELECT u FROM Usuarios u WHERE u.id = :id"),
@NamedQuery(name = "Usuarios.findByUsuario", query = "SELECT u FROM Usuarios u WHERE u.usuario = :usuario"),
@NamedQuery(name = "Usuarios.findByContrasenia", query = "SELECT u FROM Usuarios u WHERE u.contrasenia = :contrasenia"),
@NamedQuery(name = "Usuarios.findByStatus", query = "SELECT u FROM Usuarios u WHERE u.status = :status"),
@NamedQuery(name = "Usuarios.findByNombre", query = "SELECT u FROM Usuarios u WHERE u.nombre = :nombre"),
@NamedQuery(name = "Usuarios.findByApellidom", query = "SELECT u FROM Usuarios u WHERE u.apellidom = :apellidom"),
@NamedQuery(name = "Usuarios.findByApellidop", query = "SELECT u FROM Usuarios u WHERE u.apellidop = :apellidop"),
@NamedQuery(name = "Usuarios.findByApellidom", query = "SELECT u FROM Usuarios u WHERE u.apellidom = :apellidom"),
@NamedQuery(name = "Usuarios.findByGenero", query = "SELECT u FROM Usuarios u WHERE u.genero = :genero"),
@NamedQuery(name = "Usuarios.findByFechanacimiento", query = "SELECT u FROM Usuarios u WHERE u.fechanacimiento = :fechanacimiento"),
@NamedQuery(name = "Usuarios.findByUsuario", query = "SELECT u FROM Usuarios u WHERE u.usuario = :usuario"),
@NamedQuery(name = "Usuarios.findByContrasenia", query = "SELECT u FROM Usuarios u WHERE u.contrasenia = :contrasenia"),
@NamedQuery(name = "Usuarios.findByCorreo", query = "SELECT u FROM Usuarios u WHERE u.correo = :correo"),
@NamedQuery(name = "Usuarios.findByGenero", query = "SELECT u FROM Usuarios u WHERE u.genero = :genero"),
@NamedQuery(name = "Usuarios.findByTelefono", query = "SELECT u FROM Usuarios u WHERE u.telefono = :telefono")})
@NamedQuery(name = "Usuarios.findByTelefono", query = "SELECT u FROM Usuarios u WHERE u.telefono = :telefono"),
@NamedQuery(name = "Usuarios.findByPais", query = "SELECT u FROM Usuarios u WHERE u.pais = :pais"),
@NamedQuery(name = "Usuarios.findByEstado", query = "SELECT u FROM Usuarios u WHERE u.estado = :estado"),
@NamedQuery(name = "Usuarios.findByMunicipio", query = "SELECT u FROM Usuarios u WHERE u.municipio = :municipio"),
@NamedQuery(name = "Usuarios.findByLocalidad", query = "SELECT u FROM Usuarios u WHERE u.localidad = :localidad"),
@NamedQuery(name = "Usuarios.findByCalle", query = "SELECT u FROM Usuarios u WHERE u.calle = :calle"),
@NamedQuery(name = "Usuarios.findByNumero", query = "SELECT u FROM Usuarios u WHERE u.numero = :numero"),
@NamedQuery(name = "Usuarios.findByCp", query = "SELECT u FROM Usuarios u WHERE u.cp = :cp"),
@NamedQuery(name = "Usuarios.findByStatus", query = "SELECT u FROM Usuarios u WHERE u.status = :status")})
public class Usuarios implements Serializable {
private static final long serialVersionUID = 1L;
@ -54,6 +61,30 @@ public class Usuarios implements Serializable {
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "nombre")
private String nombre;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "apellidop")
private String apellidop;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "apellidom")
private String apellidom;
@Basic(optional = false)
@NotNull
@Column(name = "genero")
private Character genero;
@Basic(optional = false)
@NotNull
@Column(name = "fechanacimiento")
@Temporal(TemporalType.DATE)
private Date fechanacimiento;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "usuario")
private String usuario;
@Basic(optional = false)
@ -63,45 +94,53 @@ public class Usuarios implements Serializable {
private String contrasenia;
@Basic(optional = false)
@NotNull
@Column(name = "status")
private int status;
@Size(min = 1, max = 45)
@Column(name = "correo")
private String correo;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "telefono")
private String telefono;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "nombre")
private String nombre;
@Column(name = "pais")
private String pais;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "apellidom")
private String apellidom;
@Column(name = "estado")
private String estado;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "apellidop")
private String apellidop;
@Column(name = "municipio")
private String municipio;
@Basic(optional = false)
@NotNull
@Column(name = "fechanacimiento")
@Temporal(TemporalType.DATE)
private Date fechanacimiento;
@Size(min = 1, max = 45)
@Column(name = "localidad")
private String localidad;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "correo")
private String correo;
@Column(name = "calle")
private String calle;
@Basic(optional = false)
@NotNull
@Column(name = "genero")
private Character genero;
@Size(min = 1, max = 45)
@Column(name = "numero")
private String numero;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "telefono")
private String telefono;
@JoinColumn(name = "domicilio_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Domicilio domicilioId;
@Size(min = 1, max = 45)
@Column(name = "cp")
private String cp;
@Basic(optional = false)
@NotNull
@Column(name = "status")
private int status;
@JoinColumn(name = "rol_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Rol rolId;
@ -113,18 +152,25 @@ public class Usuarios implements Serializable {
this.id = id;
}
public Usuarios(Integer id, String usuario, String contrasenia, int status, String nombre, String apellidom, String apellidop, Date fechanacimiento, String correo, Character genero, String telefono) {
public Usuarios(Integer id, String nombre, String apellidop, String apellidom, Character genero, Date fechanacimiento, String usuario, String contrasenia, String correo, String telefono, String pais, String estado, String municipio, String localidad, String calle, String numero, String cp, int status) {
this.id = id;
this.usuario = usuario;
this.contrasenia = contrasenia;
this.status = status;
this.nombre = nombre;
this.apellidom = apellidom;
this.apellidop = apellidop;
this.apellidom = apellidom;
this.genero = genero;
this.fechanacimiento = fechanacimiento;
this.usuario = usuario;
this.contrasenia = contrasenia;
this.correo = correo;
this.genero = genero;
this.telefono = telefono;
this.pais = pais;
this.estado = estado;
this.municipio = municipio;
this.localidad = localidad;
this.calle = calle;
this.numero = numero;
this.cp = cp;
this.status = status;
}
public Integer getId() {
@ -135,6 +181,46 @@ public class Usuarios implements Serializable {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidop() {
return apellidop;
}
public void setApellidop(String apellidop) {
this.apellidop = apellidop;
}
public String getApellidom() {
return apellidom;
}
public void setApellidom(String apellidom) {
this.apellidom = apellidom;
}
public Character getGenero() {
return genero;
}
public void setGenero(Character genero) {
this.genero = genero;
}
public Date getFechanacimiento() {
return fechanacimiento;
}
public void setFechanacimiento(Date fechanacimiento) {
this.fechanacimiento = fechanacimiento;
}
public String getUsuario() {
return usuario;
}
@ -151,76 +237,84 @@ public class Usuarios implements Serializable {
this.contrasenia = contrasenia;
}
public int getStatus() {
return status;
public String getCorreo() {
return correo;
}
public void setStatus(int status) {
this.status = status;
public void setCorreo(String correo) {
this.correo = correo;
}
public String getNombre() {
return nombre;
public String getTelefono() {
return telefono;
}
public void setNombre(String nombre) {
this.nombre = nombre;
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public String getApellidom() {
return apellidom;
public String getPais() {
return pais;
}
public void setApellidom(String apellidom) {
this.apellidom = apellidom;
public void setPais(String pais) {
this.pais = pais;
}
public String getApellidop() {
return apellidop;
public String getEstado() {
return estado;
}
public void setApellidop(String apellidop) {
this.apellidop = apellidop;
public void setEstado(String estado) {
this.estado = estado;
}
public Date getFechanacimiento() {
return fechanacimiento;
public String getMunicipio() {
return municipio;
}
public void setFechanacimiento(Date fechanacimiento) {
this.fechanacimiento = fechanacimiento;
public void setMunicipio(String municipio) {
this.municipio = municipio;
}
public String getCorreo() {
return correo;
public String getLocalidad() {
return localidad;
}
public void setCorreo(String correo) {
this.correo = correo;
public void setLocalidad(String localidad) {
this.localidad = localidad;
}
public Character getGenero() {
return genero;
public String getCalle() {
return calle;
}
public void setGenero(Character genero) {
this.genero = genero;
public void setCalle(String calle) {
this.calle = calle;
}
public String getTelefono() {
return telefono;
public String getNumero() {
return numero;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
public void setNumero(String numero) {
this.numero = numero;
}
public String getCp() {
return cp;
}
public void setCp(String cp) {
this.cp = cp;
}
public Domicilio getDomicilioId() {
return domicilioId;
public int getStatus() {
return status;
}
public void setDomicilioId(Domicilio domicilioId) {
this.domicilioId = domicilioId;
public void setStatus(int status) {
this.status = status;
}
public Rol getRolId() {

31
Inventario-war/src/java/mx/edu/tjs/chapala/sistemas/seguridad/Login.java

@ -7,8 +7,14 @@ package mx.edu.tjs.chapala.sistemas.seguridad;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import mx.edu.tjs.chapala.sistemas.bl.UsuariosBLLocal;
import mx.edu.tjs.chapala.sistemas.modelo.Usuarios;
import mx.edu.tjs.chapala.sistemas.msg.Mensaje;
import static mx.edu.tjs.chapala.sistemas.msg.Mensaje.ELEMENTO_DUPLICADO;
import static mx.edu.tjs.chapala.sistemas.msg.Mensaje.SIN_ERROR;
/**
*
@ -19,6 +25,11 @@ import javax.servlet.http.HttpSession;
public class Login implements Serializable {
@EJB
private UsuariosBLLocal usuariosBL;
private Usuarios usuarios= new Usuarios();
private static HttpSession httpSession;
/**
@ -34,22 +45,36 @@ private static HttpSession httpSession;
//metodo para salir
public static String logout(){
public String logout(){
httpSession.removeAttribute("sesionActiva");
httpSession.invalidate();
return "index.xhtml";
}
public static String login(){
public String login() {
//llamar bl para autenticacion que regresa un boolean
//todo:hacer un metodo en el bl que reciba el usuario y pass
//todo:hacer un metodo en el bl que reciba el usuario y passMensaje mensaje = usuariosBL.loginValidar(usuarios);
Mensaje mensaje = usuariosBL.loginValidar(usuarios);
boolean login=true;
switch (mensaje) {
case SIN_ERROR:
usuarios = new Usuarios();
return null;
case ELEMENTO_DUPLICADO:
if(login){
httpSession.setAttribute("sesionActiva","true");
return "ProductoLista.xhtml";
}else{
return "index.xhtml";
}
default:
return null;
}
}

45
Inventario-war/src/java/mx/edu/tjs/chapala/sistemas/vista/DemoBeanUsuarios.java

@ -12,6 +12,10 @@ import java.util.Locale;
import javax.ejb.EJB;
import mx.edu.tjs.chapala.sistemas.bl.UsuariosBLLocal;
import mx.edu.tjs.chapala.sistemas.modelo.Usuarios;
import mx.edu.tjs.chapala.sistemas.msg.Mensaje;
import static mx.edu.tjs.chapala.sistemas.msg.Mensaje.ELEMENTO_DUPLICADO;
import static mx.edu.tjs.chapala.sistemas.msg.Mensaje.SIN_ERROR;
import org.primefaces.PrimeFaces;
import org.primefaces.util.LangUtils;
/**
@ -40,15 +44,39 @@ public class DemoBeanUsuarios implements Serializable {
}
public String agregar() {
Mensaje mensaje =usuariosBL.agregar(usuarios);
switch(mensaje){
case SIN_ERROR:
usuarios.setStatus(1);
usuariosBL.agregar(usuarios);
usuarios= new Usuarios();
usuarios = new Usuarios();
PrimeFaces.current().executeScript("PF('dlg'.hide()");
PrimeFaces.current().ajax().update("formtabla:growl");
return "usuariosLista.xhtml";
case ELEMENTO_DUPLICADO:
return null;
default:
return null;
}
}
public String editar() {
usuariosBL.editar(usuarios);
Mensaje mensaje =usuariosBL.editar(usuarios);
switch(mensaje){
case SIN_ERROR:
usuarios =new Usuarios();
PrimeFaces.current().executeScript("PF('dlg'.hide()");
PrimeFaces.current().ajax().update("formtabla:growl");
return "usuariosLista.xhtml";
case ELEMENTO_DUPLICADO:
return null;
default:
return null;
}
}
public String eliminar() {
@ -104,7 +132,7 @@ public class DemoBeanUsuarios implements Serializable {
}
public void prepararEditar(Usuarios usuarios){
nuevo =false;
titulo="editando Usuario";
titulo="Editando Usuario";
this.usuarios=usuarios;
}
@ -135,7 +163,14 @@ public class DemoBeanUsuarios implements Serializable {
Usuarios customer = (Usuarios) value;
return customer.getUsuario().toLowerCase().contains(filterText)
|| customer.getUsuario().toLowerCase().contains(filterText);
|| customer.getNombre().toLowerCase().contains(filterText)
|| customer.getApellidop().toLowerCase().contains(filterText)
|| customer.getApellidom().toLowerCase().contains(filterText)
|| customer.getCp().toLowerCase().contains(filterText)
|| customer.getEstado().toLowerCase().contains(filterText)
|| customer.getLocalidad().toLowerCase().contains(filterText)
|| customer.getMunicipio().toLowerCase().contains(filterText)
|| customer.getPais().toLowerCase().contains(filterText);
}

29
Inventario-war/web/index.xhtml

@ -1,23 +1,38 @@
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Inventario</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</h:head>
<h:body>
<h2>login</h2>
<body style="background-color: #036FAB;" >
<div >
<center>
<h:form>
<h:commandButton value="Login" action="#{login.login()}"/>
<div style=" height: 500px; width: 500px; background-color: #ffffff; align-content:center; margin-top: 100px; border-radius: 15px;">
<p:graphicImage value="/resources/imagen/usuario.png" style="height: 200px; width: 300px; "/>
<p:growl id="growl" showDetail="true" />
<center>
<h:panelGrid columns="2" >
</h:form>
<p:inputText id="usuario" required="true" style="margin-top:20px" placeholder="usuario" requiredMessage="campo obligatorio" />
<p:messages for="usuario"/>
<p:password id="contrasenia" required="true" style="margin-top:20px" placeholder= "contraseña" requiredMessage="campo obligatorio" />
<p:messages for="contrasenia"/>
</h:panelGrid>
<p:commandButton ajax="false" value="Login" update="growl" action="#{login.login()}" style=" background-color:#036FAB; margin-top: 20px" />
</center>
</div>
</h:form>
</center>
</div>
</h:body>
</body>
</html>

2
Inventario-war/web/resources/css/cssLayout.css

@ -102,7 +102,7 @@
align-items: center;
color:black;
width: 160px;
height: 98px;
height: 88px;
margin-right: 2px;
margin-right: -1px;
}

BIN
Inventario-war/web/resources/imagen/usuario.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 KiB

149
Inventario-war/web/rolLista.xhtml

@ -0,0 +1,149 @@
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<body>
<ui:composition template="./template/principal.xhtml">
<ui:define name="top">
<center><H2> R O L </H2></center>
</ui:define>
<ui:define name="left">
<h:form>
<p:menu style="border-color: gray; margin: 1px; width: 163px; height: 600px; " >
<p:menuitem action="ProductoLista.xhtml" value="Productos" ajax="false" icon="pi pi-shopping-bag" iconPos="left" style="background-color: lightgray" styleClass="botonMenu" />
<p:menuitem action="proveedorLista.xhtml" value="Proveedores" ajax="false" icon="pi pi-id-card" iconPos="left" style="background-color: white " styleClass="botonMenu"/>
<p:menuitem action="marcaLista.xhtml" value="Marcas" ajax="false" icon="pi pi-tag" iconPos="left" style="background-color: lightgray" styleClass="botonMenu" />
<p:menuitem action="categoriaLista.xhtml" value="Categorias" ajax="false" icon="pi pi-star" iconPos="left" style="background-color: white" styleClass="botonMenu" />
<p:menuitem action="UbicacionAlmacenLista.xhtml" value="Almacen" ajax="false" icon="pi pi-map-marker" iconPos="left" style="background-color: lightgray" styleClass="botonMenu"/>
<p:menuitem action="usuariosLista.xhtml" value="Usuarios" ajax="false" icon="pi pi-users" iconPos="left" style="background-color: white" styleClass="botonMenu" />
<p:menuitem action="rolLista.xhtml" value="Rol" ajax="false" icon="pi pi-sitemap" iconPos="left" style="background-color: lightgray" styleClass="botonMenu" />
</p:menu>
</h:form>
</ui:define>
<ui:define name="content">
<f:view>
<h:form id="formtabla">
<p:growl id="grsowl" showDetail="true" />
<p:dataTable id="tabla" value="#{demoBeanRol.all}" var="item"
widgetVar="Rol" emptyMessage="No se han encontrado el usuario"
filteredValue="#{demoBeanRol.filteredCustomers3}"
globalFilterFunction="#{demoBeanRol.globalFilterFunction}"
scrollable="true" scrollHeight="480" >
<f:facet name="header">
<div class="flex justify-content-end" style="height: 30px;" >
<div>
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanRol.prepararNuevo()}"
update=":dialog" value="Nuevo" icon="pi pi-plus" />
<i class="pi pi-search" style="margin-left: 765px; margin-top: 10px;"></i>
<p:inputText id="globalFilter" onkeyup="PF('rol').filter()" placeholder="Buscar rol"
style="width:300px; margin-left: 10px; float: right; margin-top: -40px;"/>
</div>
</div>
</f:facet>
<p:column styleClass="columnaId2">
<f:facet name="header">
<h:outputText value="Id" style=" font-weight:bolder; float: left" />
</f:facet>
<h:outputText value="#{item.id}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Rol" style=" font-weight:bolder; float: left" />
</f:facet>
<h:outputText value="#{item.rol}"/>
</p:column>
<p:column styleClass="columnaOpc">
<f:facet name="header">
<h:outputText value="Opciones" style=" font-weight:bolder;"/>
</f:facet>
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanRol.prepararEditar(item)}"
icon="pi pi-file-edit" update=":dialog" style="margin-right: 10px "/>
<p:commandButton ajax="true" oncomplete="PF('dlg2').show();" actionListener="#{demoBeanRol.prepararEliminar(item)}"
update=":dialog2" style="background-color: red; color:white; border-color: red; " icon="pi pi-trash" />
</p:column>
</p:dataTable>
</h:form>
<!-- crear/editar''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -->
<p:dialog id="dialog" widgetVar="dlg" width="600" height="150" modal="true" appendTo="@(body)" >
<h:form style="height: 600px;" class="form-container" >
<p:growl id="growl" for="proveedorMsj" showDetail="true" />
<h1 style="text-align: center; background-color: #ADD8E6; padding: 20px; color: #000; font-size: 2em; margin-bottom: 10px;">
<h:outputText value="#{demoBeanRol.titulo}"/></h1>
<h:panelGrid id="grid" columns="3" style="width: 100%">
<p:outputLabel value="Rol:" for="rol" style=" font-weight:bolder"/>
<p:inputText id="rol" value="#{demoBeanRol.rol.rol}" title="Rol" required="true" requiredMessage="este campo es obligatorio" styleClass="formulario-elemento"/>
<p:message for="rol"/>
</h:panelGrid>
<p:commandButton action="#{demoBeanRol.agregar()}" update="grid, formtabla:tabla, growl" rendered="#{demoBeanRol.nuevo}" ajax="false" icon="pi pi-check"
style="margin-right: 10px; margin-top: 10px; background-color: green; color:white; border-color:green;" />
<p:commandButton action="#{demoBeanRol.editar()}" update="grid, formtabla:tabla, growl" ajax="true" rendered="#{!demoBeanRol.nuevo}" icon="pi pi-check"
style="margin-right: 10px; margin-top: 10px; background-color: green; color:white; border-color:green;" />
<p:commandButton action="rolLista.xhtml" immediate="true" ajax="false" icon="pi pi-times" style="background-color: red; color:white; border-color: red; margin-right: 15px;"/>
</h:form>
</p:dialog>
<!-- elimininar -->
<p:dialog id="dialog2" widgetVar="dlg2" width="600" height="150" modal="true" >
<h:form>
<h1 style="text-align: center; background-color: #ADD8E6; padding: 30px; color: #000; font-size: 2em; margin-bottom: 20px;">
<h:outputText value="Eliminar"/></h1>
<div>
<h:panelGrid id="grid" columns="4" style="width: 100%;" cellpadding="20" >
<h:outputText value="Id:"/>
<h:outputText value="#{demoBeanRol.rol.id}" title="Id"/>
<h:outputText value="Rol:"/>
<h:outputText value="#{demoBeanRol.rol.rol}" title="Rol"/>
</h:panelGrid>
</div>
<div style="margin-top: 20px;">
<p:commandButton action="rolLista.xhtml" icon="pi pi-times" ajax="false" immediate="true"
style="margin-left: 10px; background-color:red; border-color:red; float: right;" />
<p:commandButton action="rolLista.xhtml" actionListener="#{demoBeanRol.eliminar()}"
ajax="false" icon="pi pi-check"
style=" background-color:green; border-color:green; float: right;"/>
</div>
</h:form>
</p:dialog>
</f:view>
</ui:define>
</ui:composition>
</body>
</html>

323
Inventario-war/web/usuariosLista.xhtml

@ -11,37 +11,43 @@
<ui:composition template="./template/principal.xhtml">
<ui:define name="top">
<center> <H2> U S U A R I O S </H2></center>
<h:form>
<p:commandButton ajax="false" icon="pi pi-sign-out" action="#{login.logout()}" style="background-color: #036FAB; width: 30px; " />
</h:form>
<center><H2> U S U A R I O S </H2></center>
</ui:define>
<ui:define name="left">
<h:form >
<p:menu style="border-color: gray; margin: 1px; width: 163px; height: 600px;">
<p:menuitem action="ProductoLista.xhtml" value="Productos" ajax="false" icon="pi pi-database" iconPos="left" style="background-color: lightgray" styleClass="botonMenu" />
<p:menuitem action="ProductoLista.xhtml" value="Productos" ajax="false" icon="pi pi-shopping-bag" iconPos="left" style="background-color: lightgray" styleClass="botonMenu" />
<p:menuitem action="proveedorLista.xhtml" value="Proveedores" ajax="false" icon="pi pi-id-card" iconPos="left" style="background-color: white " styleClass="botonMenu"/>
<p:menuitem action="marcaLista.xhtml" value="Marcas" ajax="false" icon="pi pi-tag" iconPos="left" style="background-color: lightgray" styleClass="botonMenu" />
<p:menuitem action="categoriaLista.xhtml" value="Categorias" ajax="false" icon="pi pi-star" iconPos="left" style="background-color: white" styleClass="botonMenu" />
<p:menuitem action="UbicacionAlmacenLista.xhtml" value="Almacen" ajax="false" icon="pi pi-map-marker" iconPos="left" style="background-color: lightgray" styleClass="botonMenu"/>
<p:menuitem action="usuariosLista.xhtml" value="Usuarios" ajax="false" icon="pi pi-users" iconPos="left" style="background-color: white" styleClass="botonMenu" />
<p:menuitem action="rolLista.xhtml" value="Rol" ajax="false" icon="pi pi-sitemap" iconPos="left" style="background-color: lightgray" styleClass="botonMenu" />
</p:menu>
       </h:form>
</ui:define>
<ui:define name="content">
<f:view>
<h:form style="width: 100%">
<h:form id="formtabla" >
<p:growl id="growl" showDetail="true" />
<p:dataTable value="#{demoBeanUsuarios.all}" var="item"
<p:dataTable id="tabla" value="#{demoBeanUsuarios.all}" var="item"
widgetVar="Usuarios" emptyMessage="No se han encontrado el usuario"
filteredValue="#{demoBeanUsuarios.filteredCustomers3}"
globalFilterFunction="#{demoBeanUsuarios.globalFilterFunction}"
scrollable="true" scrollHeight="480" >
<f:facet name="header">
<div class="flex justify-content-end" style="height: 30px;" >
<div>
<p:commandButton action="usuariosCrearEditar.xhtml" actionListener="#{demoBeanUsuarios.prepararNuevo()}" icon="pi pi-plus" value="Nuevo" ajax="false"/>
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanUsuarios.prepararNuevo()}"
update=":dialog" icon="pi pi-plus" value="Nuevo"/>
<i class="pi pi-search" style="margin-left: 765px; margin-top: 10px;"></i>
<p:inputText id="globalFilter" onkeyup="PF('usuario').filter()" style="width:300px; margin-left: 10px; margin-top: -40px; float: right;"
@ -51,32 +57,54 @@
</div>
</f:facet>
<p:column styleClass="columnaOpc">
<p:column styleClass="columnaId2">
<f:facet name="header">
<h:outputText value="Id"/>
<h:outputText value="Id" style=" font-weight:bolder; float: left" />
</f:facet>
<h:outputText value="#{item.id}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Nombre" style=" font-weight:bolder; float: left"/>
</f:facet>
<h:outputText value="#{item.nombre}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Primer Apellidos" style=" font-weight:bolder; float: left"/>
</f:facet>
<h:outputText value="#{item.apellidop}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="segundo Apellido" style=" font-weight:bolder; float: left"/>
</f:facet>
<h:outputText value="#{item.apellidom}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Usuario" style=" font-weight:bolder; float: left"/>
</f:facet>
<h:outputText value="#{item.usuario}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Contraseña" style=" font-weight:bolder; float: left"/>
<h:outputText value="Correo" style=" font-weight:bolder; float: left"/>
</f:facet>
<h:outputText value="#{item.correo}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Telefono" style=" font-weight:bolder; float: left"/>
</f:facet>
<h:outputText value="#{item.contrasenia}"/>
<h:outputText value="#{item.telefono}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Status" style=" font-weight:bolder; float: left" />
<h:outputText value="Rol" style=" font-weight:bolder; float: left"/>
</f:facet>
<h:outputText value="#{item.status==1?'Activo':'inactivo'}"/>
<h:outputText value="#{item.rolId.rol}"/>
</p:column>
<p:column styleClass="columnaOpc">
@ -84,16 +112,279 @@
<h:outputText value="Opciones" style=" font-weight:bolder;"/>
</f:facet>
<p:commandButton action="usuariosCrearEditar.xhtml" actionListener="#{demoBeanUsuarios.prepararEditar(item)}" ajax="false" style="margin-right: 10px; " icon="pi pi-file-edit" />
<p:commandButton action="usuarioEliminar.xhtml" actionListener="#{demoBeanUsuarios.prepararEliminar(item)}" ajax="false" style="background-color: red; color:white; border-color: red; " icon="pi pi-trash" />
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanUsuarios.prepararEditar(item)}"
update=":dialog" style="margin-right: 10px; " icon="pi pi-file-edit" />
<p:commandButton ajax="true" oncomplete="PF('dlg2').show();" actionListener="#{demoBeanUsuarios.prepararEliminar(item)}"
update=":dialog2" style="background-color: red; color:white; border-color: red; " icon="pi pi-trash" />
<p:commandButton ajax="true" oncomplete="PF('dlg3').show();" actionListener="#{demoBeanUsuarios.prepararEditar(item)}"
update=":dialog3" icon="pi pi-eye" style="background-color: #88DC65; color:black; margin-right: 10px; width: 85px; margin-top: 10px" />
</p:column>
</p:dataTable>
</h:form>
</f:view>
<!-- crear/editar''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -->
<p:dialog id="dialog" widgetVar="dlg" width="800" height="500" modal="true" appendTo="@(body)" >
<h:form style="height: 600px; " class="form-container">
<p:growl id="growl" for="usuariosMsj" showDetail="true" />
<h1 style="text-align: center; background-color: #036FAB; padding: 20px; color: #FFFFFF; font-size: 2em; margin-bottom: 10px;">
<h:outputText value="#{demoBeanUsuarios.titulo}"/></h1>
<h:panelGrid id="grid" columns="3" style="width: 100%">
<p:outputLabel style="font-weight:bolder" value="Nombre:" for="nombre" />
<p:inputText id="nombre" value="#{demoBeanUsuarios.usuarios.nombre}" title="Nombre" required="true" requiredMessage="campo obligatorio" validatorMessage=" el numbre debe enpesar con mayuscula " >
<f:validateRegex pattern="^[A-Z][a-z]{4,9}$" for="nombre"/>
</p:inputText>
<p:messages for="nombre"/>
<p:outputLabel style="font-weight:bolder" value="Primer Apellido:" for="apellidop" />
<p:inputText id="apellidop" value="#{demoBeanUsuarios.usuarios.apellidop}" title="Apellidop" required="true" requiredMessage="campo obligatorio" >
<f:validateRegex pattern="^[A-Z][a-z]{4,9}$" for="apellidop"/>
</p:inputText>
<p:messages for="apellidop"/>
<p:outputLabel style="font-weight:bolder" value="Segundo Apellido:" for="apellidom" />
<p:inputText id="apellidom" value="#{demoBeanUsuarios.usuarios.apellidom}" title="Apellidom" required="true" requiredMessage="campo obligatorio" validatorMessage="el apellido debe enpesar con mayuscula" >
<f:validateRegex pattern="^[A-Z][a-z]{4,9}$" for="apellidom"/>
</p:inputText>
<p:messages for="apellidom"/>
<p:outputLabel style="font-weight:bolder" value="Genero:" for="genero" />
<p:inputText id="genero" value="#{demoBeanUsuarios.usuarios.genero}" title="Genero" required="true" requiredMessage="campo obligatorio" >
</p:inputText>
<p:messages for="genero"/>
<p:outputLabel style="font-weight:bolder" value="Fechanacimiento:" for="fechanacimiento" />
<p:inputText id="fechanacimiento" value="#{demoBeanUsuarios.usuarios.fechanacimiento}" title="Fechanacimiento" required="true" requiredMessage="campo obligatorio" validatorMessage="La fecha tine que ir como yyyy/mm/dd" >
<f:convertDateTime pattern="MM/dd/yyyy" />
</p:inputText>
<p:messages for="fechanacimiento"/>
<p:outputLabel style="font-weight:bolder" value="Usuario:" for="usuario" />
<p:inputText id="usuario" value="#{demoBeanUsuarios.usuarios.usuario}" title="Usuario" required="true" requiredMessage="campo obligatorio" validatorMessage="el usuario requiere la primera letra mayuscula y porlomenos 5 caracteres" >
<f:validateRegex pattern="^[A-Z][a-z]{4,9}$" for="usuario"/>
</p:inputText>
<p:messages for="usuario"/>
<p:outputLabel style="font-weight:bolder" value="Contrasenia:" for="contrasenia" />
<p:inputText id="contrasenia" value="#{demoBeanUsuarios.usuarios.contrasenia}" title="Contrasenia" required="true" requiredMessage="campo obligatorio" validatorMessage=" la contraseña requiere 8 caracteres entre letras y numeros" >
<f:validateRegex pattern="^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{8}$" for="contrasenia"/>
</p:inputText>
<p:messages for="contrasenia"/>
<p:outputLabel style="font-weight:bolder" value="Correo:" for="correo" />
<p:inputText id="correo" value="#{demoBeanUsuarios.usuarios.correo}" title="Correo" required="true" requiredMessage="campo obligatorio" validatorMessage="el correo es incorecto o no cumple con el formato requerid">
<f:validateRegex pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" for="correo"/>
</p:inputText>
<p:messages for="correo"/>
<p:outputLabel style="font-weight:bolder" value="Telefono:" for="telefono" />
<p:inputText id="telefono" value="#{demoBeanUsuarios.usuarios.telefono}" title="Telefono" required="true" requiredMessage="campo obligatorio" validatorMessage="el numero esta incompleto revise que si coresponda" >
<f:validateRegex pattern="^[0-9]{10}$" for="telefono"/>
</p:inputText>
<p:messages for="telefono"/>
<p:outputLabel style="font-weight:bolder" value="Pais:" for="pais" />
<p:inputText id="pais" value="#{demoBeanUsuarios.usuarios.pais}" title="Pais" required="true" requiredMessage="campo obligatorio" validatorMessage="el pais debe empezar con mayuscula" >
<f:validateRegex pattern="^[A-Z][a-z]{4,19}$" for="pais"/>
</p:inputText>
<p:messages for="pais"/>
<p:outputLabel style="font-weight:bolder" value="Estado:" for="estado" />
<p:inputText id="estado" value="#{demoBeanUsuarios.usuarios.estado}" title="Estado" required="true" requiredMessage="campo obligatorio" validatorMessage="el estado debe empezar con mayuscula" >
<f:validateRegex pattern="^[A-Z][a-z]{4,19}$" for="estado"/>
</p:inputText>
<p:messages for="estado"/>
<p:outputLabel style="font-weight:bolder" value="Municipio:" for="municipio" />
<p:inputText id="municipio" value="#{demoBeanUsuarios.usuarios.municipio}" title="Municipio" required="true" requiredMessage="campo obligatorio" validatorMessage="el municipio debe empezar con mayuscula" >
<f:validateRegex pattern="^[A-Z][a-z]{4,19}$" for="municipio"/>
</p:inputText>
<p:messages for="municipio"/>
<p:outputLabel style="font-weight:bolder" value="Localidad:" for="localidad" />
<p:inputText id="localidad" value="#{demoBeanUsuarios.usuarios.localidad}" title="Localidad" required="true" requiredMessage="campo obligatorio" validatorMessage="la localidad debe empezar con mayuscula" >
<f:validateRegex pattern="^[A-Z][a-z]{4,19}$" for="localidad"/>
</p:inputText>
<p:messages for="localidad"/>
<p:outputLabel style="font-weight:bolder" value="Calle:" for="calle" />
<p:inputText id="calle" value="#{demoBeanUsuarios.usuarios.calle}" title="Calle" required="true" requiredMessage="campo obligatorio" validatorMessage="la calle debe empezar con mayuscula">
<f:validateRegex pattern="^[A-Z][a-z]{4,19}$" for="calle"/>
</p:inputText>
<p:messages for="calle"/>
<p:outputLabel style="font-weight:bolder" value="Numero:" for="numero" />
<p:inputText id="numero" value="#{demoBeanUsuarios.usuarios.numero}" title="Numero" required="true" requiredMessage="campo obligatorio">
<f:validateRegex pattern="^[0-9]+(\s[A-Z])?$" for="numero"/>
</p:inputText>
<p:messages for="numero"/>
<p:outputLabel style="font-weight:bolder" value="Codigo Postal:" for="cp" />
<p:inputText id="cp" value="#{demoBeanUsuarios.usuarios.cp}" title="Cp" required="true" requiredMessage="campo obligatorio" validatorMessage="el codigo posta es incorrecto revisaelo" >
<f:validateRegex pattern="^[0-9]{4}$" for="cp"/>
</p:inputText>
<p:messages for="cp" style=""/>
<p:outputLabel style="font-weight:bolder;" value="Rol:" for="rolId" />
<p:selectOneMenu id="rolId" value="#{demoBeanUsuarios.usuarios.rolId}" converter="selectOneMenuConverter" >
<f:selectItems value="#{demoBeanRol.all}" var="item" itemLabel="#{item.rol}" itemValue="#{item}"/>
</p:selectOneMenu>
</h:panelGrid>
<p:commandButton action="usuariosLista.xhtml" ajax="false" icon="pi pi-times"
immediate="true" update="grid, formtabla:tabla, growl"
style="background-color: red; border-color:red; float: right;"/>
<p:commandButton actionListener="#{demoBeanUsuarios.agregar()}" update="grid, formtabla:tabla, growl"
ajax="true" rendered="#{demoBeanUsuarios.nuevo}" icon="pi pi-check"
style="margin-right: 10px; background-color:green; border-color:green; float: right; " />
<p:commandButton actionListener="#{demoBeanUsuarios.editar()}" update="grid, formtabla:tabla, growl"
ajax="true" rendered="#{!demoBeanUsuarios.nuevo}" icon="pi pi-check"
style="margin-right: 10px; background-color:green; border-color:green; float: right;" />
</h:form>
</p:dialog>
<!-- eliminiar''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -->
<p:dialog id="dialog2" widgetVar="dlg2" width="800" height="500" modal="true" >
<h:form>
<h1 style="text-align: center; background-color: #036FAB; padding: 20px; color: #FFFFFF; font-size: 2em; margin-bottom: 10px;">
<h:outputText value="Eliminar"/></h1>
<div>
<h:panelGrid id="grid" columns="4" style="width: 100%" cellpadding="20">
<h:outputText value="Id:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.id}" title="Id"/>
<h:outputText value="Nombre:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.nombre}" title="Nombre"/>
<h:outputText value="Primer Apellido:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.apellidop}" title="Apellidop"/>
<h:outputText value="Segundo Apellido:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.apellidom}" title="Apellidom"/>
<h:outputText value="Genero:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.genero}" title="Genero"/>
<h:outputText value="Fechanacimiento:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.fechanacimiento}" title="Fechanacimiento">
<f:convertDateTime pattern="MM/dd/yyyy" />
</h:outputText>
<h:outputText value="Usuario:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.usuario}" title="Usuario"/>
<h:outputText value="Contrasenia:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.contrasenia}" title="Contrasenia"/>
<h:outputText value="Correo:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.correo}" title="Correo"/>
<h:outputText value="Telefono:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.telefono}" title="Telefono"/>
<h:outputText value="Pais:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.pais}" title="Pais"/>
<h:outputText value="Estado:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.estado}" title="Estado"/>
<h:outputText value="Municipio:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.municipio}" title="Municipio"/>
<h:outputText value="Localidad:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.localidad}" title="Localidad"/>
<h:outputText value="Calle:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.calle}" title="Calle"/>
<h:outputText value="Numero:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.numero}" title="Numero"/>
<h:outputText value="Codigo Postal:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.cp}" title="Cp"/>
<h:outputText value="Rol:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.rolId.rol}" title="RolId"/>
</h:panelGrid>
</div>
<div style="margin-top: 20px;">
<p:commandButton action="usuariosLista.xhtml" immediate="true" ajax="false" icon="pi pi-times"
style="margin-left: 10px; background-color:red; border-color:red; float: right;"/>
<p:commandButton action="usuariosLista.xhtml" actionListener="#{demoBeanUsuarios.eliminar()}"
ajax="false" icon="pi pi-check"
style=" background-color:green; border-color:green; float: right;"/>
</div>
</h:form>
</p:dialog>
<!-- info''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -->
<p:dialog id="dialog3" widgetVar="dlg3" width="800" height="500" modal="true" >
<h:form>
<h1 style="text-align: center; background-color: #036FAB; padding: 20px; color: #FFFFFF; font-size: 2em; margin-bottom: 10px;">
<h:outputText value="Detalles"/></h1>
<div>
<h:panelGrid id="grid" columns="4" style="width: 100%" cellpadding="20">
<h:outputText value="Id:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.id}" title="Id"/>
<h:outputText value="Nombre:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.nombre}" title="Nombre"/>
<h:outputText value="Primer Apellido:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.apellidop}" title="Apellidop"/>
<h:outputText value="Segundo Apellido:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.apellidom}" title="Apellidom"/>
<h:outputText value="Genero:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.genero}" title="Genero"/>
<h:outputText value="Fechanacimiento:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.fechanacimiento}" title="Fechanacimiento">
<f:convertDateTime pattern="MM/dd/yyyy" />
</h:outputText>
<h:outputText value="Usuario:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.usuario}" title="Usuario"/>
<h:outputText value="Contrasenia:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.contrasenia}" title="Contrasenia"/>
<h:outputText value="Correo:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.correo}" title="Correo"/>
<h:outputText value="Telefono:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.telefono}" title="Telefono"/>
<h:outputText value="Pais:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.pais}" title="Pais"/>
<h:outputText value="Estado:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.estado}" title="Estado"/>
<h:outputText value="Municipio:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.municipio}" title="Municipio"/>
<h:outputText value="Localidad:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.localidad}" title="Localidad"/>
<h:outputText value="Calle:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.calle}" title="Calle"/>
<h:outputText value="Numero:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.numero}" title="Numero"/>
<h:outputText value="Cp:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.cp}" title="Cp"/>
<h:outputText value="RolId:" style=" font-weight:bolder"/>
<h:outputText value="#{demoBeanUsuarios.usuarios.rolId.rol}" title="RolId"/>
</h:panelGrid>
</div>
<div style="margin-top: 20px;">
<p:commandButton action="usuariosLista.xhtml" icon="pi pi-arrow-left"
style="margin-left: 10px; border-color:red; float: right;" ajax="false" immediate="true"/>
</div>
</h:form>
</p:dialog>
</f:view>
</ui:define>

Loading…
Cancel
Save