Browse Source

modificación de ProveedorDAO y backend de marca

master
nickdalyrendon 7 months ago
parent
commit
81d07cf0d1
  1. 44
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/MarcaBL.java
  2. 7
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/MarcaBLLocal.java
  3. 1
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/MarcaDAO.java
  4. 39
      Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/ProveedorDAO.java
  5. 158
      Inventario-war/src/java/mx/edu/tjs/chapala/sistemas/vista/DemoBeanMarca.java
  6. 145
      Inventario-war/web/marcaLista.xhtml

44
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/MarcaBL.java

@ -25,10 +25,9 @@ public class MarcaBL implements MarcaBLLocal {
// 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));
addMessage("marcaMsj", new FacesMessage(severity, summary, detail));
}
@ -39,21 +38,26 @@ public class MarcaBL implements MarcaBLLocal {
Mensaje m = null;
//Toda la logica
//Optional<Marca> me = marcaDAO.buscarMarca(marca);
Optional<Marca> marcaEncontradoOptional = marcaDAO.buscarMarca(marca);
Marca e = marcaDAO.buscarPorId(marca);
if (marca.getNombre().isEmpty() ) {
m = Mensaje.CAMPOS_INCOMPLETOS;
System.out.println("CAMPOS INCOMPLETOS");
return m;
}
if (marcaEncontradoOptional.isPresent()) {
Optional<Marca> marcaEncontradoOptional = marcaDAO.buscarMarca(marca);
if (marcaEncontradoOptional.isPresent()) {
marcaEncontradoOptional.get();
m = Mensaje.ELEMENTO_DUPLICADO;
System.out.println("NO SE PUEDE AGREGAR, YA EXISTE");
addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "La marca ya existe");
System.out.println("NO SE PUEDE AGREGAR, LA MARCA YA EXISTE");
addMessage(FacesMessage.SEVERITY_ERROR, "", "¡Error! El elemento ya existe");
} else {
marcaDAO.agregar(marca);
m = Mensaje.SIN_ERROR;
System.out.println("AGREGADO CON EXITO");
addMessage(FacesMessage.SEVERITY_INFO, "", "Se agrego la marca");
addMessage(FacesMessage.SEVERITY_INFO, "", "¡Elemento agregado con éxito!");
}
return m;
}
@ -69,11 +73,11 @@ public class MarcaBL implements MarcaBLLocal {
if (c == null) {
m = Mensaje.ELEMENTO_NO_ENCONTRADO;
System.out.println("NO EXISTE EL PROVEEDOR");
System.out.println("NO EXISTE LA MARCA");
return c;
} else {
m = Mensaje.SIN_ERROR;
System.out.println("CATEGORIA ENCONTRADO CON EXITO: " + c.getId());
System.out.println("MARCA ENCONTRADA CON EXITO: " + c.getId());
return c;
}
}
@ -106,7 +110,7 @@ public class MarcaBL implements MarcaBLLocal {
}
@Override
public void eliminarId(Marca marca) {
public Mensaje eliminarId(Marca marca) {
MarcaDAO a = new MarcaDAO();
Mensaje m = null;
@ -119,10 +123,11 @@ public class MarcaBL implements MarcaBLLocal {
System.out.println("NO SE PUDO ELIMINAR");
addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "No se pudo eliminar");
}
return m;
}
@Override
public void editar(Marca marca) {
public Mensaje editar(Marca marca) {
MarcaDAO ed = new MarcaDAO();
Mensaje m = null;
@ -131,13 +136,20 @@ public class MarcaBL implements MarcaBLLocal {
if (marcaEncontradoOptional.isPresent()) {
marcaEncontradoOptional.get();
m = Mensaje.ELEMENTO_DUPLICADO;
System.out.println("NO SE PUEDE AGREGAR, YA EXISTE");
addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "La marca ya existe");
System.out.println("NO SE PUEDE EDITAR, LA MARCA YA EXISTE");
addMessage(FacesMessage.SEVERITY_ERROR, "", "¡Error al editar! El elemento ya existe");
} else {
ed.editar(marca);
m = Mensaje.SIN_ERROR;
System.out.println("AGREGADO CON EXITO");
addMessage(FacesMessage.SEVERITY_INFO, "", "Marca editada correctamente");
addMessage(FacesMessage.SEVERITY_INFO, "", "¡Elemento editado correctamente!");
}
return m;
}
public List<Marca> getAll() {
MarcaDAO p = new MarcaDAO();
return p.buscarStatus(true);
}
}

7
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/bl/MarcaBLLocal.java

@ -16,7 +16,8 @@ import mx.edu.tjs.chapala.sistemas.msg.Mensaje;
*/
@Local
public interface MarcaBLLocal {
Mensaje agregar(Marca marca);
Mensaje agregar(Marca marca);
Marca buscarId(Marca marca);
@ -25,7 +26,7 @@ public interface MarcaBLLocal {
List<Marca> buscarStatus(boolean b);
void eliminarId(Marca marca);
Mensaje eliminarId(Marca marca);
public void editar(Marca p);
Mensaje editar(Marca p);
}

1
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/MarcaDAO.java

@ -30,6 +30,7 @@ private EntityManager em; //Manejador de entidades (entidad=bean del modelo)
public void agregar(Marca p) {
em.getTransaction().begin();
p.setStatus(1);
em.persist(p); //Almacenar en la BD
em.getTransaction().commit();
}

39
Inventario-ejb/src/java/mx/edu/tjs/chapala/sistemas/dao/ProveedorDAO.java

@ -76,17 +76,52 @@ public class ProveedorDAO {
Query q3 = em.createNamedQuery("Proveedor.findByTelefono");
q3.setParameter("telefono", p.getTelefono());
Query q4 = em.createNamedQuery("Proveedor.findByMunicipio");
q4.setParameter("municipio", p.getMunicipio());
Query q5 = em.createNamedQuery("Proveedor.findByPais");
q5.setParameter("pais", p.getPais());
Query q6 = em.createNamedQuery("Proveedor.findByEstado");
q6.setParameter("estado", p.getEstado());
Query q7 = em.createNamedQuery("Proveedor.findByCp");
q7.setParameter("cp", p.getCp());
Query q8 = em.createNamedQuery("Proveedor.findByCalle");
q8.setParameter("calle", p.getCalle());
Query q9 = em.createNamedQuery("Proveedor.findByNumero");
q9.setParameter("numero", p.getNumero());
List<Proveedor> resultadoNombre = q1.getResultList();
List<Proveedor> resultadoCorreo = q2.getResultList();
List<Proveedor> resultadoTelefono = q3.getResultList();
List<Proveedor> resultadoMunicipio = q4.getResultList();
List<Proveedor> resultadoPais = q5.getResultList();
List<Proveedor> resultadoEstado = q6.getResultList();
List<Proveedor> resultadoCp = q7.getResultList();
List<Proveedor> resultadoCalle = q8.getResultList();
List<Proveedor> resultadoNumero = q9.getResultList();
// Verifica si hay resultados para todos los campos
if (!resultadoNombre.isEmpty() && !resultadoCorreo.isEmpty() && !resultadoTelefono.isEmpty()) {
// Compara si el mismo autor está en los tres resultados
if (!resultadoNombre.isEmpty() && !resultadoCorreo.isEmpty() && !resultadoTelefono.isEmpty()
&& !resultadoMunicipio.isEmpty() && !resultadoPais.isEmpty() && !resultadoEstado.isEmpty()
&& !resultadoCp.isEmpty() && !resultadoCalle.isEmpty() && !resultadoNumero.isEmpty()) {
// Compara si el mismo autor está en los resultados
Proveedor autorEncontrado = resultadoNombre.stream()
.filter(resultadoCorreo::contains)
.filter(resultadoTelefono::contains)
.filter(resultadoMunicipio::contains)
.filter(resultadoPais::contains)
.filter(resultadoEstado::contains)
.filter(resultadoCp::contains)
.filter(resultadoCalle::contains)
.filter(resultadoNumero::contains)
.findFirst()
.orElse(null);

158
Inventario-war/src/java/mx/edu/tjs/chapala/sistemas/vista/DemoBeanMarca.java

@ -14,6 +14,9 @@ import mx.edu.tjs.chapala.sistemas.bl.CategoriaBLLocal;
import mx.edu.tjs.chapala.sistemas.bl.MarcaBLLocal;
import mx.edu.tjs.chapala.sistemas.modelo.Categoria;
import mx.edu.tjs.chapala.sistemas.modelo.Marca;
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;
@ -35,57 +38,46 @@ public class DemoBeanMarca implements Serializable {
public DemoBeanMarca() {
}
public String agregar() {
Marca p = new Marca();
p.setNombre("LG");
p.setStatus(1);
marcaBL.agregar(p);
return "index.xhtml";
}
//////////////////////////////////////////////////////////
public String agregarMarca() {
marca.setStatus(1);
marcaBL.agregar(marca);
marca = new Marca(); //refresca el campo
PrimeFaces.current().executeScript("PF('dlg'.hide()");
return "marcaLista.xhtml";
}
Mensaje mensaje = marcaBL.agregar(marca);
/////////////////////////////////////////////////////////
switch (mensaje) {
case SIN_ERROR:
marca = new Marca(); //limpiar
PrimeFaces.current().executeScript("PF('dlg').hide()");
PrimeFaces.current().ajax().update("formtabla:growl");
return "marcaLista.xhtml";
public String editar() {
Marca p = new Marca();
p.setId(1);
p.setNombre("Samsung");
case ELEMENTO_DUPLICADO:
return null;
p.setStatus(0);
default:
return null;
}
marcaBL.editar(p);
return "index.xhtml";
}
public String buscarID() {
Marca p = new Marca();
p.setId(1);
public String editarmarca() {
Mensaje mensaje = marcaBL.editar(marca);
marcaBL.buscarId(p);
return "index.xhtml";
}
switch (mensaje) {
case SIN_ERROR:
marca = new Marca();
PrimeFaces.current().executeScript("PF('dlg').hide()");
PrimeFaces.current().ajax().update("formtabla:growl");
return "marcaLista.xhtml";
public String buscarNombre() {
Marca p = new Marca();
p.setNombre("LG");
case ELEMENTO_DUPLICADO:
return null;
marcaBL.buscarNombre(p);
return "index.xhtml";
default:
return null;
}
}
public void eliminarmarca() {
marcaBL.eliminarId(marca);
}
public String buscarActivos() {
@ -110,7 +102,7 @@ public class DemoBeanMarca implements Serializable {
marcaBL.eliminarId(p);
return "index.xhtml";
}
public List<Marca> getMarcas(){
return marcaBL.buscarStatus(true);
}
@ -126,40 +118,33 @@ public class DemoBeanMarca implements Serializable {
public String getTitulo() {
return titulo;
}
public void preparareditar(Marca marca){
nuevo=false;
titulo="Editar Marca";
this.marca= marca;
}
public void prepararnuevo(){
nuevo= true;
titulo="Agregar marca";
marca=new Marca();
}
public boolean isNuevo() {
return nuevo;
}
public void editarmarca(){
nuevo= false;
marcaBL.editar(marca);
PrimeFaces.current().executeScript("PF('dlg'.hide()");
public void preparareditar(Marca marca) {
nuevo = false;
titulo = "E D I T A R";
this.marca = marca;
}
public void preparareliminar(Marca marca){
this.marca= marca;
public void prepararnuevo() {
nuevo = true;
titulo = "A G R E G A R";
marca = new Marca();
}
public void eliminarmarca(){
marcaBL.eliminarId(marca);
public void preparareliminar(Marca marca) {
this.marca = marca;
}
public boolean globalFilterFunction(Object value, Object filter, Locale locale) {
public boolean globalFilterFunction(Object value, Object filter, Locale locale) {
String filterText = (filter == null) ? null : filter.toString().trim().toLowerCase();
if (LangUtils.isBlank(filterText)) {
return true;
}
Marca customer = (Marca) value;
return customer.getNombre().toLowerCase().contains(filterText)
@ -173,9 +158,42 @@ public class DemoBeanMarca implements Serializable {
public void setFilteredCustomers3(List<Marca> filteredCustomers3) {
this.filteredCustomers3 = filteredCustomers3;
}
}
public String editar() {
Marca p = new Marca();
p.setId(1);
p.setNombre("Samsung");
p.setStatus(0);
marcaBL.editar(p);
return "index.xhtml";
}
public String buscarID() {
Marca p = new Marca();
p.setId(1);
marcaBL.buscarId(p);
return "index.xhtml";
}
public String buscarNombre() {
Marca p = new Marca();
p.setNombre("LG");
marcaBL.buscarNombre(p);
return "index.xhtml";
}
}

145
Inventario-war/web/marcaLista.xhtml

@ -6,7 +6,7 @@
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<body>
@ -17,9 +17,9 @@
</ui:define>
<ui:define name="left">
<h:form >
<p:menu style="border-color: gray; margin: 1px; width: 163px; height: 600px; " >
<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"/>
@ -29,47 +29,34 @@
<p:menuitem action="usuariosLista.xhtml" value="Usuarios" ajax="false" icon="pi pi-users" iconPos="left" style="background-color: white" styleClass="botonMenu" />
</p:menu>
</h:form>
</ui:define>
<ui:define name="content" >
<f:view>
<h:form id="formtabla">
<p:growl id="growl" showDetail="true" />
<p:growl id="growl" showDetail="true" />
<p:dataTable id="tabla" value="#{demoBeanMarca.marcas}" var="item"
widgetVar="marcas" emptyMessage="No se han encontrado marcas"
filteredValue="#{demoBeanMarca.filteredCustomers3}"
globalFilterFunction="#{demoBeanMarca.globalFilterFunction}"
scrollable="true" scrollHeight="480" >
<f:facet name="header">
<f:facet name="header">
<div class="flex justify-content-end" style="height: 30px;" >
<div>
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanMarca.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('marcas').filter()" style="width:300px; margin-left: 10px; margin-top: -40px; float: right;"
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanMarca.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('marcas').filter()" style="width:300px; margin-left: 10px; margin-top: -40px; float: right;"
placeholder="Buscar marca" />
</div>
</div>
</f:facet>
</f:facet>
<p:column styleClass="columnaId">
<f:facet name="header">
<h:outputText value="Id" style="font-weight:bolder" />
@ -82,72 +69,72 @@
</f:facet>
<h:outputText value="#{item.nombre}" style="margin-left: 170px"/>
</p:column>
<p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Proveedor" style="font-weight:bolder"/>
</f:facet>
<h:outputText value="#{item.proveedorId.nombre} " style="margin-left: 170px"/>
<h:outputText value="#{item.proveedorId.nombre} " style="margin-left: 170px"/>
</p:column>
<p:column styleClass="columnaOpc">
<p:column styleClass="columnaOpc">
<f:facet name="header" >
<h:outputText value="Opciones" style="font-weight:bolder; margin-right: 90px"/>
</f:facet>
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanMarca.preparareditar(item)}" update=":dialog" style="margin-right: 10px; " icon="pi pi-file-edit" />
<p:commandButton action="marcaEliminar.xhtml" actionListener="#{demoBeanMarca.preparareliminar(item)}" style="background-color: red; color:white; border-color: red; " icon="pi pi-trash"/></p:column>
<p:commandButton ajax="true" oncomplete="PF('dlg').show();" actionListener="#{demoBeanMarca.preparareditar(item)}" update=":dialog" style="margin-right: 10px; " icon="pi pi-file-edit" />
<p:commandButton action="marcaEliminar.xhtml" actionListener="#{demoBeanMarca.preparareliminar(item)}" style="background-color: red; color:white; border-color: red; " icon="pi pi-trash"/></p:column>
</p:dataTable>
</h:form>
<p:dialog id="dialog" widgetVar="dlg" width="400" height="300" modal="true" >
<h:form class="form-container" >
<h1><h:outputText value="#{demoBeanMarca.titulo}"/></h1>
<h:panelGrid id="grid" columns="3" style="width: 100%" >
<p:outputLabel value="Nombre:" for="nombre" />
<p:inputText id="nombre" value="#{demoBeanMarca.marca.nombre}" title="Nombre" required="true" requiredMessage="Falta el campo Nombre." styleClass="formulario-elemento; " />
<p:message for="nombre"/>
<p:outputLabel style="font-weight:bolder;" value="Proveedor:" for="proveedorId" />
<p:selectOneMenu id="proveedorId" value="#{demoBeanMarca.marca.proveedorId}" converter="selectOneMenuConverter" >
<f:selectItems value="#{demoBeanProveedor.all}" var="item" itemLabel="#{item.nombre}" itemValue="#{item}" />
</p:selectOneMenu>
</h:panelGrid>
<div>
<p:commandButton style="margin-left: 10px; background-color:green; border-color:green; " icon="pi pi-check" action="#{demoBeanMarca.agregarMarca()}" update="formtabla:tabla" ajax="false" rendered="#{demoBeanMarca.nuevo}"/>
<p:commandButton action="marcaLista.xhtml" ajax="false" actionListener="#{demoBeanMarca.editarmarca()}" icon="pi pi-check" style="margin-left: 10px; background-color:green; border-color:green;" update="formtabla:tabla" immediate="true" rendered="#{!demoBeanMarca.nuevo}"/>
<p:commandButton action="marcaLista.xhtml" ajax="false" icon="pi pi-times" immediate="true" style="background-color: red; border-color:red;"/>
</div>
<h1><h:outputText value="#{demoBeanMarca.titulo}"/></h1>
<h:panelGrid id="grid" columns="3" style="width: 100%" >
<p:outputLabel value="Nombre:" for="nombre" />
<p:inputText id="nombre" value="#{demoBeanMarca.marca.nombre}" title="Nombre" required="true" requiredMessage="Falta el campo Nombre." styleClass="formulario-elemento; " />
<p:message for="nombre"/>
<p:outputLabel style="font-weight:bolder;" value="Proveedor:" for="proveedorId" />
<p:selectOneMenu id="proveedorId" value="#{demoBeanMarca.marca.proveedorId}" converter="selectOneMenuConverter" >
<f:selectItems value="#{demoBeanProveedor.all}" var="item" itemLabel="#{item.nombre}" itemValue="#{item}" />
</p:selectOneMenu>
</h:panelGrid>
<div>
<p:commandButton style="margin-left: 10px; background-color:green; border-color:green; " icon="pi pi-check" action="#{demoBeanMarca.agregarMarca()}" update="formtabla:tabla" ajax="false" rendered="#{demoBeanMarca.nuevo}"/>
<p:commandButton action="marcaLista.xhtml" ajax="false" actionListener="#{demoBeanMarca.editarmarca()}" icon="pi pi-check" style="margin-left: 10px; background-color:green; border-color:green;" update="formtabla:tabla" immediate="true" rendered="#{!demoBeanMarca.nuevo}"/>
<p:commandButton action="marcaLista.xhtml" ajax="false" icon="pi pi-times" immediate="true" style="background-color: red; border-color:red;"/>
</div>
</h:form>
</p:dialog>
</f:view>
</ui:define >
</ui:composition>
</body>
</html>
Loading…
Cancel
Save