diff --git a/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/bl/UbicacionBL.java b/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/bl/UbicacionBL.java index 0db30f1..592cd05 100644 --- a/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/bl/UbicacionBL.java +++ b/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/bl/UbicacionBL.java @@ -102,7 +102,10 @@ public Mensajes agregarUbic(Ubicacion ubicacion) { if (ubicacion.getPasillo().isEmpty() || ubicacion.getAnaquel().isEmpty() || ubicacion.getNivel().isEmpty()) { return Mensajes.CAMPOS_INCOMPLETOS; } - + Ubicacion existente = ubicacionDao.buscarPorPasilloAnaquelNivel(ubicacion); + if (existente != null && existente.getStatus() == 1) { + return Mensajes.ELEMENTO_DUPLICADO; // Asegúrate de que este mensaje está definido en tu enum Mensajes + } ubicacionDao.agregar(ubicacion); return Mensajes.SIN_ERROR; } diff --git a/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/dao/UbicacionDAO.java b/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/dao/UbicacionDAO.java index 1dee88f..ee44d9d 100644 --- a/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/dao/UbicacionDAO.java +++ b/InventarioJakartaJIN-ejb/src/java/mx/edu/tsj/chapala/sistemas/jin/dao/UbicacionDAO.java @@ -71,7 +71,21 @@ public class UbicacionDAO { em.getTransaction().commit(); // No cerramos EntityManager aquí } - + public Ubicacion buscarPorPasilloAnaquelNivel(Ubicacion ubicacion) { + try { + Query query = em.createNamedQuery("Ubicacion.findByPasilloAnaquelNivel"); + query.setParameter("pasillo", ubicacion.getPasillo()); + query.setParameter("anaquel", ubicacion.getAnaquel()); + query.setParameter("nivel", ubicacion.getNivel()); + List resultados = query.getResultList(); + if (!resultados.isEmpty()) { + return resultados.get(0); // Retorna la primera ubicación encontrada que coincide con los criterios + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } private List buscarUbiCampos(Ubicacion u) { Query q = em.createQuery("SELECT u FROM Ubicacion u WHERE u.pasillo = :pasillo AND u.anaquel = :anaquel AND u.nivel <> :nivel"); q.setParameter("pasillo", u.getPasillo()); diff --git a/InventarioJakartaJIN-war/src/java/mx/edu/tsj/chapala/sistemas/jin/vista/ubiBean.java b/InventarioJakartaJIN-war/src/java/mx/edu/tsj/chapala/sistemas/jin/vista/ubiBean.java index d2b3a17..7763793 100644 --- a/InventarioJakartaJIN-war/src/java/mx/edu/tsj/chapala/sistemas/jin/vista/ubiBean.java +++ b/InventarioJakartaJIN-war/src/java/mx/edu/tsj/chapala/sistemas/jin/vista/ubiBean.java @@ -14,6 +14,7 @@ import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import mx.edu.tsj.chapala.sistemas.jin.bl.UbicacionBLLocal; import mx.edu.tsj.chapala.sistemas.jin.modelo.Ubicacion; +import mx.edu.tsj.chapala.sistemas.jin.msg.Mensajes; import org.primefaces.PrimeFaces; /** @@ -49,18 +50,20 @@ public class ubiBean implements Serializable { ubicacionBL.editar(ubicacion); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Ubicación editada con éxito ✅")); - }else{ - ubicacion.setStatus((short)1); - ubicacionBL.agregarUbic(ubicacion); - FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Ubicación agregregada con éxito ✅")); + }else { + Mensajes resultado = ubicacionBL.agregarUbic(ubicacion); + if (resultado == Mensajes.ELEMENTO_DUPLICADO) { + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Error", "La ubicación ya existe ✅")); + } else if (resultado == Mensajes.SIN_ERROR) { + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Ubicación agregada con éxito ✅")); } + ubicacion = new Ubicacion(); PrimeFaces.current().ajax().update("form:dt-ubi"); PrimeFaces.current().ajax().update("PF('manageProductDialog')"); -// ubicacion = new Ubicacion(); -// return "ubicacionLista.xhtml"; + } } public Ubicacion getUbicacion(){ return ubicacion; diff --git a/InventarioJakartaJIN-war/web/inicio.xhtml b/InventarioJakartaJIN-war/web/inicio.xhtml index 78a4cb0..a6a2ddc 100644 --- a/InventarioJakartaJIN-war/web/inicio.xhtml +++ b/InventarioJakartaJIN-war/web/inicio.xhtml @@ -4,7 +4,7 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:h="http://xmlns.jcp.org/jsf/html"> - + @@ -32,11 +32,11 @@
-
-

#{option1.title}

+
+

#{option1.title}

#{option1.description}

-
+
diff --git a/InventarioJakartaJIN-war/web/resources/css/carrusel.css b/InventarioJakartaJIN-war/web/resources/css/carrusel.css index 1fc8102..f2da557 100644 --- a/InventarioJakartaJIN-war/web/resources/css/carrusel.css +++ b/InventarioJakartaJIN-war/web/resources/css/carrusel.css @@ -8,7 +8,7 @@ } .custom-card { - background-color: #ffffff; /* Color de fondo de las tarjetas */ + background-color: #212F3D; /* Color de fondo de las tarjetas */ border-radius: 10px; /* Borde redondeado de las tarjetas */ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Sombra de las tarjetas */ margin: 10px; /* Margen entre las tarjetas */ diff --git a/InventarioJakartaJIN-war/web/template/templatePlantilla.xhtml b/InventarioJakartaJIN-war/web/template/templatePlantilla.xhtml index 1cd6a13..321ccfc 100644 --- a/InventarioJakartaJIN-war/web/template/templatePlantilla.xhtml +++ b/InventarioJakartaJIN-war/web/template/templatePlantilla.xhtml @@ -67,6 +67,43 @@ color: #000000; /* Texto negro */ } + .custom-carousel .p-carousel-content { + display: flex; + flex-wrap: nowrap; /* Evita que las tarjetas se envuelvan cuando el espacio es insuficiente */ +} + +.custom-carousel .p-carousel-content .p-col { + flex: 0 0 33%; /* Define el ancho de cada tarjeta como un tercio del contenedor */ +} + +.custom-card { + background-color: #ffffff; /* Color de fondo de las tarjetas */ + border-radius: 10px; /* Borde redondeado de las tarjetas */ + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Sombra de las tarjetas */ + margin: 10px; /* Margen entre las tarjetas */ +} + +.card-content { + padding: 20px; /* Espaciado interno de las tarjetas */ +} + +.card-image { + align-content: center; + max-width: 100%; /* Ajustar el tamaño máximo de la imagen al ancho de la tarjeta */ +} + +.card-text { + + align-content: center; + margin-top: 10px; /* Margen superior para el texto dentro de las tarjetas */ +} + +.card-action { + + align-content: center; + text-align: center; /* Centrar los botones de acción */ +} + diff --git a/InventarioJakartaJIN-war/web/ubiTablaPrueba.xhtml b/InventarioJakartaJIN-war/web/ubiTablaPrueba.xhtml index a8c1b15..9593b53 100644 --- a/InventarioJakartaJIN-war/web/ubiTablaPrueba.xhtml +++ b/InventarioJakartaJIN-war/web/ubiTablaPrueba.xhtml @@ -56,7 +56,7 @@ - +