diff --git a/ProyectoInventario-ejb/src/java/xforce/bl/ProveedorBL.java b/ProyectoInventario-ejb/src/java/xforce/bl/ProveedorBL.java index fc37bc0..7b4a388 100644 --- a/ProyectoInventario-ejb/src/java/xforce/bl/ProveedorBL.java +++ b/ProyectoInventario-ejb/src/java/xforce/bl/ProveedorBL.java @@ -9,7 +9,11 @@ import java.util.Optional; import javax.ejb.Stateless; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; +import xforce.dao.EstadosDAO; +import xforce.dao.MarcaDAO; import xforce.dao.ProveedorDAO; +import xforce.modelo.Estados; +import xforce.modelo.Marca; import xforce.modelo.Producto; import xforce.modelo.Proveedor; import xforce.msg.Mensaje; @@ -27,32 +31,56 @@ public class ProveedorBL implements ProveedorBLLocal { public Mensaje agregar(Proveedor proveedor) { System.out.println("Llegaste al metodo de agregar proveedor"); - + ProveedorDAO pDAO = new ProveedorDAO(); Mensaje m; + MarcaDAO marcaDAO = new MarcaDAO(); + EstadosDAO estadosDao = new EstadosDAO(); + //Toda la logica + Estados estados = estadosDao.buscarId(proveedor.getEstadosId()); + System.out.println("ASAASASA"); + if (estados == null) { + System.out.println("El estado no existe. No se puede agregar el proveedor."); + return Mensaje.ESTADO_ERRONEO; // Agrega un mensaje de error específico para marca no existente + } + + Marca marca = marcaDAO.buscarId(proveedor.getMarcaId()); + System.out.println("ASAASASA"); + + if (marca == null) { + System.out.println("La ubicacion no existe. No se puede agregar el producto."); + return Mensaje.MARCA_ERRONEA; // Agrega un mensaje de error específico para marca no existente + } if (proveedor.getNombre().isEmpty() - ||proveedor.getEmail().isEmpty() - ||proveedor.getTelefono().isEmpty() - ) { + || proveedor.getEmail().isEmpty() + || proveedor.getTelefono().isEmpty() + || proveedor.getEstadosId() == null + || proveedor.getMarcaId() == null + || proveedor.getDomicilio() == null) { System.out.println("Campos incompletos"); return Mensaje.CAMPOS_INCOMPLETOS; } proveedor.setEstado(2); Optional pEncontradoOptional = pDAO.buscarproveedor(proveedor); + Optional telEncontradoOptional = pDAO.buscarTelefono(proveedor); - if (pEncontradoOptional.isPresent()) { + if (pEncontradoOptional.isPresent() && telEncontradoOptional.isPresent()) { // Manejar el caso en el que se encontró al menos una marca - + System.out.println("Elemento duplicado"); - addMessage(FacesMessage.SEVERITY_ERROR,"ERROR","Elemento duplicado"); + addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "Elemento duplicado"); m = Mensaje.ELEMENTO_DUPLICADO; } else { + System.out.println("ASAASASA"); + pDAO.agregar(proveedor); + System.out.println("ASAASASA"); + System.out.println("Agregado con exito"); - addMessage(FacesMessage.SEVERITY_INFO,"INFO","Agregado con exito"); + addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Agregado con exito"); m = Mensaje.SIN_ERROR; } return m; @@ -73,18 +101,17 @@ public class ProveedorBL implements ProveedorBLLocal { @Override public Mensaje editar(Proveedor proveedor) { - Mensaje m = null; + Mensaje m = null; try { - + ProveedorDAO p = new ProveedorDAO(); - if (proveedor.getNombre().isEmpty() || proveedor.getEmail().isEmpty() || proveedor.getTelefono().isEmpty() - ) { + if (proveedor.getNombre().isEmpty() || proveedor.getEmail().isEmpty() || proveedor.getTelefono().isEmpty()) { System.out.println("Algunos campos son erroneos"); m = m.CAMPOS_INCOMPLETOS; return m; } - Optional marcaEncontradoOptional = p.buscarproveedor(proveedor); + Optional marcaEncontradoOptional = p.buscarproveedor(proveedor); if (marcaEncontradoOptional.isPresent()) { // Manejar el caso en el que se encontró al menos una marca @@ -99,21 +126,22 @@ public class ProveedorBL implements ProveedorBLLocal { if (mark != null) { // Copiar los valores de los atributos (excepto estado) al producto existente mark.setNombre(proveedor.getNombre()); - // Editar el usuario solo si todas las validaciones son exitosas - if (p.editar(proveedor) == true) { - System.out.println("Editado con exito"); - addMessage(FacesMessage.SEVERITY_INFO,"INFO","Editado con exito"); - m = m.SIN_ERROR; - return m; - }} else { - System.out.println("No existe le proveedor a editar"); - m = m.CAMPOS_INCOMPLETOS; - return m; + // Editar el usuario solo si todas las validaciones son exitosas + if (p.editar(proveedor) == true) { + System.out.println("Editado con exito"); + addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Editado con exito"); + m = m.SIN_ERROR; + return m; + } + } else { + System.out.println("No existe le proveedor a editar"); + m = m.CAMPOS_INCOMPLETOS; + return m; + } + } + } catch (Exception e) { - } - }catch (Exception e) { - System.out.println("Algo es erroneo"); m = m.DATOS_INCORRECTOS; return m; @@ -123,12 +151,12 @@ public class ProveedorBL implements ProveedorBLLocal { @Override public Mensaje eliminar(Proveedor proveedor) { - Mensaje m = null; + Mensaje m = null; ProveedorDAO proveedorDao = new ProveedorDAO(); Proveedor prov = proveedorDao.buscarPorId(proveedor); if (prov != null) { - List idsMarcasReferenciadas = proveedorDao.buscarMarcasReferenciadas(prov); + List idsMarcasReferenciadas = proveedorDao.buscarMarcasReferenciadas(prov); /*for (Producto producto : idsMarcasReferenciadas) { if (marca.getId().equals(producto.getId())) { @@ -137,7 +165,6 @@ public class ProveedorBL implements ProveedorBLLocal { } }*/ - if (!idsMarcasReferenciadas.isEmpty()) { System.out.println(idsMarcasReferenciadas.toString()); @@ -146,25 +173,25 @@ public class ProveedorBL implements ProveedorBLLocal { addMessage(FacesMessage.SEVERITY_WARN, "ATENCION", "El elemento esta en uso"); m = Mensaje.ERROR_PRODUCTOS_ASOCIADOS; System.out.println(m); - - }else{ - if (prov.getEstado() == 2) { - prov.setEstado(1); - - if (proveedorDao.eliminar(prov)) { - System.out.println("provvedor eliminado"); - addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Eliminado correctamente"); - m = Mensaje.SIN_ERROR; + + } else { + if (prov.getEstado() == 2) { + prov.setEstado(1); + + if (proveedorDao.eliminar(prov)) { + System.out.println("provvedor eliminado"); + addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Eliminado correctamente"); + m = Mensaje.SIN_ERROR; + } else { + System.out.println("erro al eliminar proveedor"); + + m = Mensaje.DATOS_INCORRECTOS; + } } else { - System.out.println("erro al eliminar proveedor"); - - m = Mensaje.DATOS_INCORRECTOS; + System.out.println("proveedor se acaba de eliminar"); + m = Mensaje.NO_EXISTE; } - } else { - System.out.println("proveedor se acaba de eliminar"); - m = Mensaje.NO_EXISTE; - } - + } } else { System.out.println("proveedor inexistente"); @@ -173,18 +200,16 @@ public class ProveedorBL implements ProveedorBLLocal { return m; } - - - @Override + + @Override public List buscarValidos(boolean estado) { ProveedorDAO proveedor = new ProveedorDAO(); System.out.println("Proveedor existente"); - + return proveedor.buscarValidos(estado); } - - - @Override + + @Override public Proveedor buscarNombre(Proveedor proveedor) { ProveedorDAO p = new ProveedorDAO(); if (p.buscarPorNombre(proveedor) == null) { @@ -196,11 +221,10 @@ public class ProveedorBL implements ProveedorBLLocal { } } - - public void addMessage(FacesMessage.Severity severity, String summary, String detail) { + + public void addMessage(FacesMessage.Severity severity, String summary, String detail) { FacesContext.getCurrentInstance(). addMessage("mensajeProveedor", new FacesMessage(severity, summary, detail)); } - } diff --git a/ProyectoInventario-ejb/src/java/xforce/bl/UbicacionBL.java b/ProyectoInventario-ejb/src/java/xforce/bl/UbicacionBL.java index 2bab6c1..387b76c 100644 --- a/ProyectoInventario-ejb/src/java/xforce/bl/UbicacionBL.java +++ b/ProyectoInventario-ejb/src/java/xforce/bl/UbicacionBL.java @@ -63,22 +63,22 @@ public class UbicacionBL implements UbicacionBLLocal { Ubicacion ubic = u.buscarPorId(ubicacion); if (ubic != null) { - + List idUbicacionr = u.buscarMarcasReferenciadas(ubic); - - if (!idUbicacionr.isEmpty()) { + + if (!idUbicacionr.isEmpty()) { System.out.println(idUbicacionr.toString()); // Hay productos asociados a esta marca, no se puede eliminar System.out.println("No se puede eliminar la marca porque existen productos asociados."); addMessage(FacesMessage.SEVERITY_WARN, "ATENCION", "La ubicacion esta en uso"); m = Mensaje.ERROR_PRODUCTOS_ASOCIADOS; - + } else { - if (ubic.getEstado() == 2) { - ubic.setEstado(1); - - if (u.eliminar(ubic)) { + if (ubic.getEstado() == 2) { + ubic.setEstado(1); + + if (u.eliminar(ubic)) { System.out.println("Marca eliminada"); addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Eliminado Correctamente"); m = Mensaje.SIN_ERROR; diff --git a/ProyectoInventario-ejb/src/java/xforce/dao/ProveedorDAO.java b/ProyectoInventario-ejb/src/java/xforce/dao/ProveedorDAO.java index 3c5dac3..65402fc 100644 --- a/ProyectoInventario-ejb/src/java/xforce/dao/ProveedorDAO.java +++ b/ProyectoInventario-ejb/src/java/xforce/dao/ProveedorDAO.java @@ -29,7 +29,7 @@ public class ProveedorDAO { public void agregar(Proveedor a) { em.getTransaction().begin(); - + a.setEstado(2); em.persist(a);//Almacenar en DB em.getTransaction().commit(); } @@ -72,6 +72,32 @@ public class ProveedorDAO { q.setParameter("idProveedor", id); return q.getResultList(); } + public Optional buscarTelefono(Proveedor p){ + + + Query q = em.createNamedQuery("Proveedor.findByTelefono"); + q.setParameter("telefono", p.getTelefono()); + + List resTel = q.getResultList(); + + if(!resTel.isEmpty()){ + Proveedor proveedorEncontrada = resTel.stream() + + + .filter(resTel::contains) + + .findFirst() + .orElse(null); + + return Optional.ofNullable(proveedorEncontrada); + + } else{ + + return Optional.empty(); + } + } + + public Optional buscarproveedor(Proveedor a) { Query ql = em.createNamedQuery("Proveedor.findByNombre"); @@ -100,13 +126,19 @@ public class ProveedorDAO { .filter(resEstado::contains) .findFirst() .orElse(null); + return Optional.ofNullable(proveedorEncontrada); + + + } else { return Optional.empty(); } } + + public List buscarValidos(boolean status) { Query q = em.createNamedQuery("Proveedor.findByEstado"); int s = status ? 2 : 1; diff --git a/ProyectoInventario-war/src/java/xforce/seguridad/DemoBeanLogin.java b/ProyectoInventario-war/src/java/xforce/seguridad/DemoBeanLogin.java index cdc8ecb..e06cd6d 100644 --- a/ProyectoInventario-war/src/java/xforce/seguridad/DemoBeanLogin.java +++ b/ProyectoInventario-war/src/java/xforce/seguridad/DemoBeanLogin.java @@ -8,11 +8,9 @@ import javax.inject.Named; import javax.enterprise.context.SessionScoped; import java.io.Serializable; import javax.ejb.EJB; -import javax.faces.application.FacesMessage; import javax.faces.application.NavigationHandler; import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; -import xforce.bl.LoginBL; import xforce.bl.LoginBLLocal; import xforce.modelo.Usuarios; import xforce.msg.Mensaje; @@ -151,14 +149,14 @@ public class DemoBeanLogin implements Serializable { case "admin": permisos = true; break; - case "vendedor": + case "auxiliar": permisos = false; break; case "gestor": permisos = false; break; default: - throw new AssertionError(); + permisos = false; } } diff --git a/ProyectoInventario-war/src/java/xforce/vista/DemoBeanProducto.java b/ProyectoInventario-war/src/java/xforce/vista/DemoBeanProducto.java index 9a2422d..d9bc7a5 100644 --- a/ProyectoInventario-war/src/java/xforce/vista/DemoBeanProducto.java +++ b/ProyectoInventario-war/src/java/xforce/vista/DemoBeanProducto.java @@ -7,8 +7,6 @@ package xforce.vista; import javax.inject.Named; import javax.enterprise.context.SessionScoped; import java.io.Serializable; -import java.time.Instant; -import java.util.Date; import java.util.List; import java.util.Locale; import javax.ejb.EJB; @@ -17,7 +15,6 @@ import org.primefaces.model.SortMeta; import org.primefaces.util.LangUtils; import xforce.bl.ProductoBLLocal; import xforce.modelo.Producto; -import xforce.modelo.Tipo; import xforce.msg.Mensaje; /** diff --git a/ProyectoInventario-war/src/java/xforce/vista/DemoBeanUbicacion.java b/ProyectoInventario-war/src/java/xforce/vista/DemoBeanUbicacion.java index 24e6051..398f526 100644 --- a/ProyectoInventario-war/src/java/xforce/vista/DemoBeanUbicacion.java +++ b/ProyectoInventario-war/src/java/xforce/vista/DemoBeanUbicacion.java @@ -184,9 +184,9 @@ public class DemoBeanUbicacion implements Serializable { } public void prepararEliminar(Ubicacion ubicacion) { - - titulo="Eliminar ubicacion"; - + + titulo = "Eliminar ubicacion"; + this.ubicacion = ubicacion; } diff --git a/ProyectoInventario-war/web/Images/Usuario.png b/ProyectoInventario-war/web/Images/Usuario.png new file mode 100644 index 0000000..2b8b658 Binary files /dev/null and b/ProyectoInventario-war/web/Images/Usuario.png differ diff --git a/ProyectoInventario-war/web/index.xhtml b/ProyectoInventario-war/web/index.xhtml index 847879f..c5a5d0d 100644 --- a/ProyectoInventario-war/web/index.xhtml +++ b/ProyectoInventario-war/web/index.xhtml @@ -2,63 +2,24 @@ - - - - - - Facelets Template - - -
- - -

Inventario almacen

- - - - + xmlns:p="http://primefaces.org/ui" + xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - - - - - - - - + + + - requiredMessage="Este campo no puede estar vacio" - placeholder="Ingrse la contraseña" - style="width: 223px"> - - - + - - +
-
- + + \ No newline at end of file diff --git a/ProyectoInventario-war/web/proveedorLista.xhtml b/ProyectoInventario-war/web/proveedorLista.xhtml index 0fe9920..0d81990 100644 --- a/ProyectoInventario-war/web/proveedorLista.xhtml +++ b/ProyectoInventario-war/web/proveedorLista.xhtml @@ -170,15 +170,15 @@ - + - + - + - + @@ -286,37 +286,46 @@ - - - - - + validatorMessage="domicilio no valido" + requiredMessage="Este campo no puede estar vacio" + style="width: 223px"> + + + - + + + - - - - + requiredMessage="Estado requerido" + filter="true" + filterMatchMode="startsWith" > + + + + + + + + + + @@ -396,6 +408,11 @@ + + + + + + + + + + Ingreso + + + + + +
+ + + +
+
+ Almacen + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+