You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

207 lines
7.0 KiB

/*
* 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 xforce.bl;
import java.util.List;
import java.util.Optional;
import javax.ejb.Stateless;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import xforce.dao.UbicacionDAO;
import xforce.modelo.*;
import xforce.msg.Mensaje;
/**
*
* @author oscar
*/
@Stateless
public class UbicacionBL implements UbicacionBLLocal {
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method")
@Override
public Mensaje agregar(Ubicacion ubicacion) {
System.out.println("Llegaste al metodo de agregar ubicacion");
UbicacionDAO ubicacionDAO = new UbicacionDAO();
Mensaje m;
//Toda la logica
if (ubicacion.getBloque().isEmpty()
|| ubicacion.getAnaquel() < 0) {
System.out.println("Campos incompletos");
return Mensaje.CAMPOS_INCOMPLETOS;
}
ubicacion.setEstado(2);
Optional<Ubicacion> ubicacionEncontradoOptional = ubicacionDAO.buscaUbicacion(ubicacion);
if (ubicacionEncontradoOptional.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");
m = Mensaje.ELEMENTO_DUPLICADO;
} else {
ubicacionDAO.agregar(ubicacion);
System.out.println("Agregado con exito");
addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Agregado con exito");
m = Mensaje.SIN_ERROR;
}
return m;
}
@Override
public Mensaje eliminar(Ubicacion ubicacion) {
Mensaje m = null;
UbicacionDAO u = new UbicacionDAO();
Ubicacion ubic = u.buscarPorId(ubicacion);
if (ubic != null) {
List<Producto> idUbicacionr = u.buscarMarcasReferenciadas(ubic);
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)) {
System.out.println("Marca eliminada");
addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Eliminado Correctamente");
m = Mensaje.SIN_ERROR;
} else {
System.out.println("Error al eliminar marca");
m = Mensaje.DATOS_INCORRECTOS;
}
} else {
System.out.println("Marca se acaba de eliminar");
m = Mensaje.NO_EXISTE;
}
}
} else {
System.out.println("Marca inexistente");
m = Mensaje.NO_EXISTE;
}
return m;
}
@Override
public Mensaje editar(Ubicacion ubicacion) {
Mensaje m = null;
try {
UbicacionDAO u = new UbicacionDAO();
if (ubicacion.getBloque().isEmpty() || ubicacion.getAnaquel() < 0) {
System.out.println("Algunos campos son erroneos");
m = m.CAMPOS_INCOMPLETOS;
return m;
}
Ubicacion ubicacionExistente = u.buscarPorId(ubicacion);
Optional<Ubicacion> ubiEncontradoActivo = u.buscaUbicacion(ubicacion);
if (ubiEncontradoActivo.isPresent()) {
addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "Elemento duplicado");
System.out.println("Elemento duplicado");
m = Mensaje.ELEMENTO_DUPLICADO;
} else {
if (ubicacionExistente != null) {
// Copiar los valores de los atributos (excepto estado) al producto existente
ubicacionExistente.setAnaquel(ubicacion.getAnaquel());
ubicacionExistente.setBloque(ubicacion.getBloque());
}
// Editar el usuario solo si todas las validaciones son exitosas
if (u.editar(ubicacion)) {
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 la ubicacion a editar");
m = m.CAMPOS_INCOMPLETOS;
return m;
}
}
} catch (Exception e) {
System.out.println("Algo es erroneo");
m = m.DATOS_INCORRECTOS;
return m;
}
return m;
}
@Override
public Ubicacion buscaUbicacion(Ubicacion ubicacion) {
UbicacionDAO u = new UbicacionDAO();
if (u.buscarPorId(ubicacion) == null) {
System.out.println("No existe la ubicacion");
return u.buscarPorId(ubicacion);
} else {
System.out.println("Se encontro la ubicacion");
return u.buscarPorId(ubicacion);
}
}
@Override
public List<Ubicacion> buscarValidos(boolean estado) {
UbicacionDAO p = new UbicacionDAO();
System.out.println("Proveedor existente");
return p.buscarValidos(estado);
}
@Override
public Ubicacion buscarId(Ubicacion ubicacion) {
UbicacionDAO u = new UbicacionDAO();
if (u.buscarPorId(ubicacion) == null) {
System.out.println("No existe el proveedor");
return u.buscarPorId(ubicacion);
} else {
System.out.println("Se encontro la proveedor");
return u.buscarPorId(ubicacion);
}
}
@Override
public Ubicacion buscarNombre(Ubicacion ubicacion) {
UbicacionDAO p = new UbicacionDAO();
if (p.buscarPorNombre(ubicacion) == null) {
System.out.println("no existe el proveedor");
return p.buscarPorId(ubicacion);
} else {
System.out.println("se encontro un proveedor");
return p.buscarPorId(ubicacion);
}
}
public void addMessage(FacesMessage.Severity severity, String summary, String detail) {
FacesContext.getCurrentInstance().
addMessage("mensajeUbicacion", new FacesMessage(severity, summary, detail));
}
}