Browse Source

Agregacion de Provedores, ubicacion y login

master
Samuel Gamez 7 months ago
parent
commit
b6e1c86bca
  1. 118
      ProyectoInventario-ejb/src/java/xforce/bl/ProveedorBL.java
  2. 8
      ProyectoInventario-ejb/src/java/xforce/bl/UbicacionBL.java
  3. 34
      ProyectoInventario-ejb/src/java/xforce/dao/ProveedorDAO.java
  4. 6
      ProyectoInventario-war/src/java/xforce/seguridad/DemoBeanLogin.java
  5. 3
      ProyectoInventario-war/src/java/xforce/vista/DemoBeanProducto.java
  6. 2
      ProyectoInventario-war/src/java/xforce/vista/DemoBeanUbicacion.java
  7. BIN
      ProyectoInventario-war/web/Images/Usuario.png
  8. 57
      ProyectoInventario-war/web/index.xhtml
  9. 59
      ProyectoInventario-war/web/proveedorLista.xhtml
  10. 79
      ProyectoInventario-war/web/template/login.xhtml

118
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;
@ -30,29 +34,53 @@ public class ProveedorBL implements ProveedorBLLocal {
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<Proveedor> pEncontradoOptional = pDAO.buscarproveedor(proveedor);
Optional<Proveedor> 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<Proveedor> marcaEncontradoOptional = p.buscarproveedor(proveedor);
Optional<Proveedor> marcaEncontradoOptional = p.buscarproveedor(proveedor);
if (marcaEncontradoOptional.isPresent()) {
// Manejar el caso en el que se encontró al menos una marca
@ -99,20 +126,21 @@ 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;
@ -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<Producto> idsMarcasReferenciadas = proveedorDao.buscarMarcasReferenciadas(prov);
List<Producto> 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());
@ -147,23 +174,23 @@ public class ProveedorBL implements ProveedorBLLocal {
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 {
@ -174,8 +201,7 @@ public class ProveedorBL implements ProveedorBLLocal {
return m;
}
@Override
@Override
public List<Proveedor> buscarValidos(boolean estado) {
ProveedorDAO proveedor = new ProveedorDAO();
System.out.println("Proveedor existente");
@ -183,8 +209,7 @@ public class ProveedorBL implements ProveedorBLLocal {
return proveedor.buscarValidos(estado);
}
@Override
@Override
public Proveedor buscarNombre(Proveedor proveedor) {
ProveedorDAO p = new ProveedorDAO();
if (p.buscarPorNombre(proveedor) == null) {
@ -197,10 +222,9 @@ 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));
}
}

8
ProyectoInventario-ejb/src/java/xforce/bl/UbicacionBL.java

@ -66,7 +66,7 @@ public class UbicacionBL implements UbicacionBLLocal {
List<Producto> 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
@ -75,10 +75,10 @@ public class UbicacionBL implements UbicacionBLLocal {
m = Mensaje.ERROR_PRODUCTOS_ASOCIADOS;
} else {
if (ubic.getEstado() == 2) {
ubic.setEstado(1);
if (ubic.getEstado() == 2) {
ubic.setEstado(1);
if (u.eliminar(ubic)) {
if (u.eliminar(ubic)) {
System.out.println("Marca eliminada");
addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Eliminado Correctamente");
m = Mensaje.SIN_ERROR;

34
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<Proveedor> buscarTelefono(Proveedor p){
Query q = em.createNamedQuery("Proveedor.findByTelefono");
q.setParameter("telefono", p.getTelefono());
List<Proveedor> 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<Proveedor> 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<Proveedor> buscarValidos(boolean status) {
Query q = em.createNamedQuery("Proveedor.findByEstado");
int s = status ? 2 : 1;

6
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;
}
}

3
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;
/**

2
ProyectoInventario-war/src/java/xforce/vista/DemoBeanUbicacion.java

@ -185,7 +185,7 @@ public class DemoBeanUbicacion implements Serializable {
public void prepararEliminar(Ubicacion ubicacion) {
titulo="Eliminar ubicacion";
titulo = "Eliminar ubicacion";
this.ubicacion = ubicacion;
}

BIN
ProyectoInventario-war/web/Images/Usuario.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

57
ProyectoInventario-war/web/index.xhtml

@ -2,63 +2,24 @@
<!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:p="http://primefaces.org/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<h:outputStylesheet name="./css/default.css"/>
<h:outputStylesheet name="./css/cssLayout.css"/>
<title>Facelets Template</title>
<style>
</style>
</h:head>
<center>
<h:body style="text-align: center">
<h2> Inventario almacen </h2>
<h:form id="formLogin">
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<p:growl id="growl" showDetail="true" for="mensajeLogin"/>
<p:panel header="Login" style="width:300px">
<h:panelGrid columns="1" cellpadding="5">
<p:inputText id="usuario"
value="#{demoBeanLogin.usuarios.nombre}"
title='nombre'
required="true"
requiredMessage="Este campo no puede estar vacio"
placeholder="Ingrese el usuario">
</p:inputText>
<p:password id="contrasenia"
value="#{demoBeanLogin.usuarios.contrasenia}"
title="contraseña"
redisplay="true"
required="true"
<h:head>
<h:body>
<ui:composition template="./template/login.xhtml">
<ui:define name="contet">
requiredMessage="Este campo no puede estar vacio"
placeholder="Ingrse la contraseña"
style="width: 223px">
</p:password>
<p:commandButton value="Login"
action="#{demoBeanLogin.login()}"
ajax="false"
update=":formLogin"/>
</h:panelGrid>
</ui:define>
</p:panel>
</h:form>
</ui:composition>
</h:body>
</center>
</h:head>
</html>

59
ProyectoInventario-war/web/proveedorLista.xhtml

@ -170,15 +170,15 @@
</p:column>
<p:column responsivePriority="1" style="text-align: center;">
<f:facet name="header">
<h:outputText value="EstadosId"/>
<h:outputText value="Estado"/>
</f:facet>
<h:outputText value="#{item.estadosId}"/>
<h:outputText value="#{item.estadosId.nombre}"/>
</p:column>
<p:column responsivePriority="1" style="text-align: center;">
<f:facet name="header">
<h:outputText value="MarcaId"/>
<h:outputText value="Marca"/>
</f:facet>
<h:outputText value="#{item.marcaId}"/>
<h:outputText value="#{item.marcaId.nombre}"/>
</p:column>
@ -286,37 +286,46 @@
<p:outputLabel value="Domicilio:" for="domicilio" />
<p:inputText id="domicilio"
value="#{demoBeanProveedor.proveedor.domicilio}"
<p:inputText id="domicilio" value="#{demoBeanProveedor.proveedor.domicilio}"
title="Domicilio"
required="true"
requiredMessage="The Domicilio field is required."/>
validatorMessage="domicilio no valido"
requiredMessage="Este campo no puede estar vacio"
style="width: 223px">
<f:validateRegex pattern="^[A-Z].*#\d+.*"
for="domicilio" /><!-- validar Domicilio -->
</p:inputText>
<p:message id="d" for="domicilio"/>
<p:outputLabel value="EstadosId:" for="estadosId" />
<p:outputLabel value="Estados:" for="estadosId" />
<p:selectOneMenu id="estadosId"
value="#{demoBeanProveedor.proveedor.estadosId}"
converter="selectOneMenuConverter"
required="true"
requiredMessage="The EstadosId field is required." filter="true"
filterMatchMode="startsWith" >
<!-- Arriba esta lo del filtro, jsjsjsjs -->
<!-- TODO: update below reference to list of available items-->
<f:selectItems value="#{demoBeanEstados.estados}"
var="item"
itemLabel="#{item.nombre}"
itemValue="#{item}"/>
requiredMessage="Estado requerido"
filter="true"
filterMatchMode="startsWith" >
<!-- TODO: update below reference to list of available items-->
<f:selectItems value="#{demoBeanEstados.estados}"
var="item"
itemLabel="#{item.nombre}"
itemValue="#{item}"/>
</p:selectOneMenu>
<p:message id="eid" for="estadosId"/>
<p:outputLabel value="Marca:" for="marcaId" />
<p:selectOneMenu id="marcaId"
value="#{demoBeanProveedor.proveedor.marcaId}"
converter="selectOneMenuConverter"
required="true"
requiredMessage="The MarcaId field is required."
filter="true"
@ -328,7 +337,10 @@
var="item"
itemLabel="#{item.nombre}"
itemValue="#{item}"/>
</p:selectOneMenu>
<p:message id="m" for="marcaId"/>
@ -396,6 +408,11 @@
<h:outputText value="#{demoBeanProveedor.proveedor.email}" title="Email"/>
<h:outputText value="Estado:"/>
<h:outputText value="#{demoBeanProveedor.proveedor.estado}" title="Estado"/>
<h:outputText value="Local:"/>
<h:outputText value="#{demoBeanProveedor.proveedor.estadosId.nombre}" title="Email"/>
<h:outputText value="marca:"/>
<h:outputText value="#{demoBeanProveedor.proveedor.marcaId.nombre}" title="Estado"/>
</p:panelGrid>
<p:commandButton action="#{demoBeanProveedor.eliminarProveedor()}"

79
ProyectoInventario-war/web/template/login.xhtml

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/XHtml.xhtml to edit this template
-->
<!DOCTYPE html>
<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:p="http://primefaces.org/ui">
<head>
<title>Ingreso</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<h:outputStylesheet name="./css/default.css"/>
<h:outputStylesheet name="./css/cssLayout.css"/>
</head>
<center>
<h:body style="text-align: center; background-color:#ffffff ">
<div class="titulo" id="top">
<center>
<h class="centro">Almacen</h>
</center>
</div>
<h:form id="formLogin">
<p:growl id="growl" showDetail="true" for="mensajeLogin"/>
<p:panel header="Inicio de sesion" style="width:300px">
<h:panelGrid style="margin-bottom: 100px">
<img src="../Images/Usuario.png" alt="" width="105" height="110"/>
</h:panelGrid>
<h:panelGrid columns="1" cellpadding="5">
<p:inputText id="usuario"
value="#{demoBeanLogin.usuarios.nombre}"
title='nombre'
required="true"
requiredMessage="Este campo no puede estar vacio"
placeholder="Ingrese el usuario">
</p:inputText>
<p:password id="contrasenia"
value="#{demoBeanLogin.usuarios.contrasenia}"
title="contraseña"
redisplay="true"
required="true"
requiredMessage="Este campo no puede estar vacio"
placeholder="Ingrese la contraseña">
</p:password>
<p:commandButton icon="pi pi-check"
style="width: 60px"
action="#{demoBeanLogin.login()}"
ajax="false"
update=":formLogin"/>
</h:panelGrid>
</p:panel>
</h:form>
</h:body>
</center>
</html>
Loading…
Cancel
Save