Compare commits

...

2 Commits

  1. BIN
      baseSC.mwb
  2. BIN
      baseSC.mwb.bak
  3. BIN
      baseSC.mwb.beforefix
  4. 133
      si-ejb/src/java/hola/BL/EstadoBL.java
  5. 28
      si-ejb/src/java/hola/BL/EstadoBLLocal.java
  6. 128
      si-ejb/src/java/hola/dao/EstadoDAO.java
  7. 13
      si-ejb/src/java/hola/modelo/Estado.java
  8. 13
      si-ejb/src/java/hola/modelo/Pais.java
  9. 138
      si-ejb/src/java/hola/modelo/Registro.java
  10. 13
      si-ejb/src/java/hola/modelo/Rol.java
  11. 125
      si-war/src/java/hola/vista/DemoBeanEstado.java
  12. 11
      si-war/web/UsuarioCrear.xhtml

BIN
baseSC.mwb

Binary file not shown.

BIN
baseSC.mwb.bak

Binary file not shown.

BIN
baseSC.mwb.beforefix

Binary file not shown.

133
si-ejb/src/java/hola/BL/EstadoBL.java

@ -0,0 +1,133 @@
/*
* 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 hola.BL;
import hola.dao.EstadoDAO;
import hola.modelo.Estado;
import hola.msg.Mensaje;
import java.util.List;
import java.util.Optional;
import javax.ejb.Stateless;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
/**
*
* @author chore
*/
@Stateless
public class EstadoBL implements EstadoBLLocal {
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method")
@Override
public Mensaje agregar(Estado estado) {
// Comentario de lógica: Método para agregar un proveedor
//, Registro registro//
System.out.println("Llegaste al metodo de agregar Usuario");
EstadoDAO estadoDAO = new EstadoDAO();
Mensaje m = null;
// Validar que los campos requeridos no estén vacíos
if (estado.getNombre().isEmpty()) {
System.out.println(Mensaje.CAMPOS_INCOMPLETOS);
// Enviar mensaje de error si algún campo está incompleto
return Mensaje.CAMPOS_INCOMPLETOS;
}
// Buscar si el proveedor ya existe en la base de datos
Optional<Estado> usuarioEncontradoOptional = estadoDAO.buscarEstado(estado);
if (usuarioEncontradoOptional.isPresent()) {
// Manejar el caso en el que se encontró al menos un proveedor duplicado
usuarioEncontradoOptional.get();
addMessage(FacesMessage.SEVERITY_ERROR, "Error", "Elemento duplicado");
m = Mensaje.ELEMENTO_DUPLICADO;
} else {
// Agregar el proveedor a la base de datos si no está duplicado
estadoDAO.agregar(estado);
//registroDAO.agregar(registro);
m = Mensaje.SIN_ERROR;
}
return m;
}
@Override
public Estado buscarId(Estado estado) {
// Comentario de lógica: Método para buscar un proveedor por ID
EstadoDAO edao = new EstadoDAO();
return edao.buscarPorId(estado);
}
@Override
public void eliminarId(Estado estado) {
// Comentario de lógica: Método para eliminar un proveedor por ID
EstadoDAO edao = new EstadoDAO();
if (edao.eliminar(estado)) {
System.out.println(Mensaje.SIN_ERROR);
} else {
System.out.println(Mensaje.NO_EXISTE);
}
}
@Override
public Mensaje editar(Estado estado) {
// Comentario de lógica: Método para editar un proveedor
Mensaje m;
EstadoDAO estadoDAO = new EstadoDAO();
// Validar que los campos requeridos no estén vacíos
if (estado.getNombre().isEmpty()
|| estado.getStatus() == null) {
// Enviar mensaje de error si algún campo está incompleto
m = Mensaje.CAMPOS_INCOMPLETOS;
System.out.println(Mensaje.CAMPOS_INCOMPLETOS);
return m;
}
try {
// Editar el proveedor solo si todas las validaciones son exitosas
Optional<Estado> user = estadoDAO.buscarEstado(estado);
if (user.isPresent()) {
addMessage(FacesMessage.SEVERITY_ERROR, "Error", "Elemento duplicado");
m = Mensaje.ELEMENTO_DUPLICADO;
} else {
if (estadoDAO.editar(estado) == true) {
m = Mensaje.SIN_ERROR;
System.out.println(Mensaje.SIN_ERROR);
return m;
} else {
m = Mensaje.N0_EXISTE;
System.out.println(Mensaje.NO_EXISTE);
return m;
}
}
} catch (Exception e) {
// Capturar cualquier excepción que ocurra durante la edición del proveedor
m = Mensaje.DATOS_INCORRECTOS;
System.out.println(Mensaje.DATOS_INCORRECTOS);
e.printStackTrace();
}
return m;
}
@Override
public List<Estado> buscarValidos(boolean estado) {
EstadoDAO estadoDAO = new EstadoDAO();
List l = estadoDAO.buscarValidos(estado);
// Llama al método buscarValidos de ProductoDAO y devuelve la lista resultante
System.out.println(l);
return l;
}
public void addMessage(FacesMessage.Severity severity, String summary, String detail) {
FacesContext.getCurrentInstance().addMessage("MensajeUsuario", new FacesMessage(severity, summary, detail));
}
}

28
si-ejb/src/java/hola/BL/EstadoBLLocal.java

@ -0,0 +1,28 @@
/*
* 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 hola.BL;
import hola.modelo.Estado;
import hola.msg.Mensaje;
import java.util.List;
import javax.ejb.Local;
/**
*
* @author chore
*/
@Local
public interface EstadoBLLocal {
public Mensaje agregar(Estado estado);
public Estado buscarId(Estado estado);
public void eliminarId(Estado estado);
public Mensaje editar(Estado estado);
public List<Estado> buscarValidos(boolean estado);
}

128
si-ejb/src/java/hola/dao/EstadoDAO.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 hola.dao;
import hola.modelo.Estado;
import java.util.List;
import java.util.Optional;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
/**
*
* @author chore
*/
public class EstadoDAO {
private EntityManager em;
public EstadoDAO() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("si-ejbPU");
em = emf.createEntityManager();
}
public void agregar(Estado estado) {
em.getTransaction().begin();
estado.setStatus(1);
em.persist(estado);//Almacenar en DB
em.getTransaction().commit();
}
public boolean editar(Estado estado) {
if (buscarPorId(estado) == null) {
return false;
} else {
em.getTransaction().begin();
em.merge(estado);//edita en la base de datos
em.getTransaction().commit();
return true;
}
}
public boolean eliminar(Estado estado) {
if (buscarPorId(estado) == null) {
return false;
} else {
// Iniciar transacción
em.getTransaction().begin();
// Obtener proveedor actualizado desde la base de datos
Estado u = em.find(Estado.class, estado.getId());
// Conservar datos existentes
estado.setNombre(u.getNombre());
// Modificar solo el estado
estado.setStatus(0);
em.merge(estado);
em.getTransaction().commit();
return true;
}
}
public Estado buscarPorId(Estado estado) {
Query q = em.createNamedQuery("Estado.findById");
q.setParameter("id", estado.getId());
if (q.getResultList().isEmpty()) {
return null;
} else {
return (Estado) q.getResultList().get(0);
}
}
public List<Estado> buscarValidos(boolean status) {
Query q = em.createNamedQuery("Estado.findByStatus");
int s = status ? 1 : 0;
q.setParameter("status", s);
if (s == 1) {
System.out.println("Activos");
} else {
System.out.println("Inactivos");
}
return q.getResultList();
}
public Estado buscarPorNombre(Estado estado) {
Query q = em.createNamedQuery("Estado.findByNombre");
q.setParameter("nombre", estado.getNombre());
if (q.getResultList().isEmpty()) {
return null;
} else {
return (Estado) q.getResultList().get(0);
}
}
public Optional<Estado> buscarEstado(Estado estado) {
Query q1 = em.createNamedQuery("Estado.findByNombre");
q1.setParameter("nombre", estado.getNombre());
List<Estado> resultadoNombre = q1.getResultList();
// Verifica si hay resultados para todos los campos
if (!resultadoNombre.isEmpty()) {
// Compara si la misma editorial está en los tres resultados
Estado usuarioEncontrado = resultadoNombre.stream()
.findFirst()
.orElse(null);
return Optional.ofNullable(usuarioEncontrado);
} else {
// Devuelve Optional vacío para indicar ausencia de resultados
return Optional.empty();
}
}
}

13
si-ejb/src/java/hola/modelo/Estado.java

@ -33,7 +33,8 @@ import javax.xml.bind.annotation.XmlTransient;
@NamedQueries({ @NamedQueries({
@NamedQuery(name = "Estado.findAll", query = "SELECT e FROM Estado e"), @NamedQuery(name = "Estado.findAll", query = "SELECT e FROM Estado e"),
@NamedQuery(name = "Estado.findById", query = "SELECT e FROM Estado e WHERE e.id = :id"), @NamedQuery(name = "Estado.findById", query = "SELECT e FROM Estado e WHERE e.id = :id"),
@NamedQuery(name = "Estado.findByNombre", query = "SELECT e FROM Estado e WHERE e.nombre = :nombre")}) @NamedQuery(name = "Estado.findByNombre", query = "SELECT e FROM Estado e WHERE e.nombre = :nombre"),
@NamedQuery(name = "Estado.findByStatus", query = "SELECT e FROM Estado e WHERE e.status = :status")})
public class Estado implements Serializable { public class Estado implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -45,6 +46,8 @@ public class Estado implements Serializable {
@Size(max = 45) @Size(max = 45)
@Column(name = "nombre") @Column(name = "nombre")
private String nombre; private String nombre;
@Column(name = "status")
private Integer status;
@JoinColumn(name = "pais_idpais", referencedColumnName = "id") @JoinColumn(name = "pais_idpais", referencedColumnName = "id")
@ManyToOne(optional = false) @ManyToOne(optional = false)
private Pais paisIdpais; private Pais paisIdpais;
@ -76,6 +79,14 @@ public class Estado implements Serializable {
this.nombre = nombre; this.nombre = nombre;
} }
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Pais getPaisIdpais() { public Pais getPaisIdpais() {
return paisIdpais; return paisIdpais;
} }

13
si-ejb/src/java/hola/modelo/Pais.java

@ -30,7 +30,8 @@ import javax.xml.bind.annotation.XmlTransient;
@NamedQueries({ @NamedQueries({
@NamedQuery(name = "Pais.findAll", query = "SELECT p FROM Pais p"), @NamedQuery(name = "Pais.findAll", query = "SELECT p FROM Pais p"),
@NamedQuery(name = "Pais.findById", query = "SELECT p FROM Pais p WHERE p.id = :id"), @NamedQuery(name = "Pais.findById", query = "SELECT p FROM Pais p WHERE p.id = :id"),
@NamedQuery(name = "Pais.findByNombre", query = "SELECT p FROM Pais p WHERE p.nombre = :nombre")}) @NamedQuery(name = "Pais.findByNombre", query = "SELECT p FROM Pais p WHERE p.nombre = :nombre"),
@NamedQuery(name = "Pais.findByStatus", query = "SELECT p FROM Pais p WHERE p.status = :status")})
public class Pais implements Serializable { public class Pais implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -42,6 +43,8 @@ public class Pais implements Serializable {
@Size(max = 45) @Size(max = 45)
@Column(name = "nombre") @Column(name = "nombre")
private String nombre; private String nombre;
@Column(name = "status")
private Integer status;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "paisIdpais") @OneToMany(cascade = CascadeType.ALL, mappedBy = "paisIdpais")
private List<Estado> estadoList; private List<Estado> estadoList;
@ -68,6 +71,14 @@ public class Pais implements Serializable {
this.nombre = nombre; this.nombre = nombre;
} }
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@XmlTransient @XmlTransient
public List<Estado> getEstadoList() { public List<Estado> getEstadoList() {
return estadoList; return estadoList;

138
si-ejb/src/java/hola/modelo/Registro.java

@ -0,0 +1,138 @@
/*
* 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 hola.modelo;
import java.io.Serializable;
import javax.persistence.Basic;
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.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author chore
*/
@Entity
@Table(name = "registro", catalog = "sistemadeinventario", schema = "")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Registro.findAll", query = "SELECT r FROM Registro r"),
@NamedQuery(name = "Registro.findById", query = "SELECT r FROM Registro r WHERE r.id = :id"),
@NamedQuery(name = "Registro.findByEntrada", query = "SELECT r FROM Registro r WHERE r.entrada = :entrada"),
@NamedQuery(name = "Registro.findBySalida", query = "SELECT r FROM Registro r WHERE r.salida = :salida"),
@NamedQuery(name = "Registro.findByAlta", query = "SELECT r FROM Registro r WHERE r.alta = :alta"),
@NamedQuery(name = "Registro.findByBaja", query = "SELECT r FROM Registro r WHERE r.baja = :baja"),
@NamedQuery(name = "Registro.findByStatus", query = "SELECT r FROM Registro r WHERE r.status = :status")})
public class Registro implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 10)
@Column(name = "Entrada")
private String entrada;
@Size(max = 10)
@Column(name = "salida")
private String salida;
@Size(max = 45)
@Column(name = "Alta")
private String alta;
@Size(max = 45)
@Column(name = "baja")
private String baja;
@Column(name = "status")
private Integer status;
public Registro() {
}
public Registro(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEntrada() {
return entrada;
}
public void setEntrada(String entrada) {
this.entrada = entrada;
}
public String getSalida() {
return salida;
}
public void setSalida(String salida) {
this.salida = salida;
}
public String getAlta() {
return alta;
}
public void setAlta(String alta) {
this.alta = alta;
}
public String getBaja() {
return baja;
}
public void setBaja(String baja) {
this.baja = baja;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@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 Registro)) {
return false;
}
Registro other = (Registro) 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 "hola.modelo.Registro[ id=" + id + " ]";
}
}

13
si-ejb/src/java/hola/modelo/Rol.java

@ -31,7 +31,8 @@ import javax.xml.bind.annotation.XmlTransient;
@NamedQueries({ @NamedQueries({
@NamedQuery(name = "Rol.findAll", query = "SELECT r FROM Rol r"), @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.findById", query = "SELECT r FROM Rol r WHERE r.id = :id"),
@NamedQuery(name = "Rol.findByNombre", query = "SELECT r FROM Rol r WHERE r.nombre = :nombre")}) @NamedQuery(name = "Rol.findByNombre", query = "SELECT r FROM Rol r WHERE r.nombre = :nombre"),
@NamedQuery(name = "Rol.findByStatus", query = "SELECT r FROM Rol r WHERE r.status = :status")})
public class Rol implements Serializable { public class Rol implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -43,6 +44,8 @@ public class Rol implements Serializable {
@Size(max = 20) @Size(max = 20)
@Column(name = "nombre") @Column(name = "nombre")
private String nombre; private String nombre;
@Column(name = "status")
private Integer status;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "rolIdrol") @OneToMany(cascade = CascadeType.ALL, mappedBy = "rolIdrol")
private List<Usuario> usuarioList; private List<Usuario> usuarioList;
@ -69,6 +72,14 @@ public class Rol implements Serializable {
this.nombre = nombre; this.nombre = nombre;
} }
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@XmlTransient @XmlTransient
public List<Usuario> getUsuarioList() { public List<Usuario> getUsuarioList() {
return usuarioList; return usuarioList;

125
si-war/src/java/hola/vista/DemoBeanEstado.java

@ -0,0 +1,125 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template
*/
package hola.vista;
import hola.BL.EstadoBLLocal;
import hola.modelo.Estado;
import hola.msg.Mensaje;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.List;
import java.util.Locale;
import javax.ejb.EJB;
import org.primefaces.util.LangUtils;
/**
*
* @author chore
*/
@Named(value = "demoBeanEstado")
@SessionScoped
public class DemoBeanEstado implements Serializable {
@EJB
private EstadoBLLocal estadodBL;
/**
* Creates a new instance of DemoBeanEstado
*/
public DemoBeanEstado() {
}
private Estado estado = new Estado();
private String titulo;
private boolean nuevo;
private List<Estado> filteredCustomers3;
public List<Estado> getFilteredCustomers3() {
return filteredCustomers3;
}
public void setFilteredCustomers3(List<Estado> filteredCustomers3) {
this.filteredCustomers3 = filteredCustomers3;
}
public boolean globalFilterFunction(Object value, Object filter, Locale locale) {
String filterText = (filter == null) ? null : filter.toString().trim().toLowerCase();
if (LangUtils.isBlank(filterText)) {
return true;
}
//BUSCADOR DE CADA CAMPO
Estado customer = (Estado) value;
return customer.getNombre().toLowerCase().contains(filterText);
}
public String agregarUsuario() {
estado.setStatus(1);
// limpiarFormulario();
Mensaje mensaje = estadodBL.agregar(estado);
switch (mensaje) {
case SIN_ERROR:
estado = new Estado();
return "Estado.xhtml";//"productoLista?faces-redirect=true"; // Redirecciona a la lista de productos
case ELEMENTO_DUPLICADO:
return null;
case CAMPOS_INCOMPLETOS:
return null;
case DATOS_INCORRECTOS:
return null;
default:
return null;
}
}
public List<Estado> getEstados() {
return estadodBL.buscarValidos(true);
}
public Estado getTEstado() {
return estado;
}
public void setEstado(Estado estado) {
this.estado = estado;
}
public void prepararEditar(Estado estado) {
nuevo = false;
titulo = "Editar usuario";
this.estado = estado;
}
public String getTitulo() {
return titulo;
}
public boolean isNuevo() {
return nuevo;
}
public void preparar() {
nuevo = true;
titulo = "Agregar Estado";
estado = new Estado();
}
public void editarEstado() {
estadodBL.editar(estado);
}
public void prepararEliminar(Estado estado) {
this.estado = estado;
}
public void eliminaEstado() {
estadodBL.eliminarId(estado);
}
}

11
si-war/web/UsuarioCrear.xhtml

@ -88,6 +88,17 @@
</p:inputText> </p:inputText>
<p:message for="direccion" /> <p:message for="direccion" />
<p:outputLabel value="Estado" for="estadoId" />
<p:inputText id="estadoId" value="#{demoBeanUsuario.usuarios.estadoId}"
title="Sexo"
required="true"
requiredMessage="El campo nombre es obligatorio"
validatorMessage="M o F">
<f:validateRegex pattern="[a-zA-Z ]+" />
<f:validateLength minimum="3" maximum="15" />
</p:inputText>
<p:message for="nombre" />
</h:panelGrid> </h:panelGrid>
<p:commandButton action="#{demoBeanUsuario.agregarUsuario()}" <p:commandButton action="#{demoBeanUsuario.agregarUsuario()}"
icon="pi pi-fw pi-check" icon="pi pi-fw pi-check"

Loading…
Cancel
Save