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.
 
 
 

153 lines
5.2 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.EstadosDAO;
import xforce.modelo.Estados;
import xforce.modelo.Proveedor;
import xforce.modelo.Usuarios;
import xforce.msg.Mensaje;
/**
*
* @author Samuel Gamez
*/
@Stateless
public class EstadosBL implements EstadosBLLocal {
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method")
@Override
public Mensaje agregar(Estados estados) {
System.out.println("Llegaste al metodo de agregar paises");
EstadosDAO estadosDAO = new EstadosDAO();
Mensaje m;
//Toda la logica
if (estados.getNombre().isEmpty()) {
System.out.println("Campos incompletos");
return Mensaje.CAMPOS_INCOMPLETOS;
}
estados.setEstado(2);
Optional<Estados> paisEncontradoOptional = estadosDAO.buscarEstado(estados);
if (paisEncontradoOptional.isPresent()) {
// Manejar el caso en el que se encontró al menos un pais
paisEncontradoOptional.get();
System.out.println("Elemento duplicado");
addMessage(FacesMessage.SEVERITY_ERROR, "ERROR", "Elemento duplicado");
m = Mensaje.ELEMENTO_DUPLICADO;
} else {
estadosDAO.agregar(estados);
System.out.println("Agregado con exito");
addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Agregado con exito");
m = Mensaje.SIN_ERROR;
}
return m;
}
@Override
public Estados buscarId(Estados estados) {
EstadosDAO estadosDAO = new EstadosDAO();
if (estadosDAO.buscarId(estados) == null) {
System.out.println("No existe el pais");
return estadosDAO.buscarId(estados);
} else {
System.out.println("Se encontro el pais");
return estadosDAO.buscarId(estados);
}
}
@Override
public Mensaje eliminar(Estados estados) {
Mensaje m = null;
EstadosDAO estadosDAO = new EstadosDAO();
Estados estadoEnUso = estadosDAO.buscarId(estados);
if (estadoEnUso != null) {
// Verificar si existen productos asociados a esta pais
List<Usuarios> referenciaUsuarios = estadosDAO.buscarPaisesReferenciadosUsuarios(estadoEnUso);
List<Proveedor> referenciaProveedor = estadosDAO.buscarPaisesReferenciadosProveedor(estadoEnUso);
if (!referenciaProveedor.isEmpty()
|| !referenciaUsuarios.isEmpty()) {
System.out.println(referenciaProveedor.toString());
System.out.println(referenciaUsuarios.toString());
// Hay estados asociados a esta pais, no se puede eliminar
System.out.println("No se puede eliminar el estado porque esta en uso");
addMessage(FacesMessage.SEVERITY_WARN, "ATENCION", "El estado esta en uso");
m = Mensaje.ERROR_PRODUCTOS_ASOCIADOS;
} else {
if (estadoEnUso.getEstado() == 2) {
estadoEnUso.setEstado(1);
if (estadosDAO.eliminar(estadoEnUso)) {
System.out.println("Pais eliminado");
addMessage(FacesMessage.SEVERITY_INFO, "INFO", "Eliminado Correctamente");
m = Mensaje.SIN_ERROR;
} else {
System.out.println("Error al eliminar pais");
m = Mensaje.DATOS_INCORRECTOS;
}
} else {
System.out.println("Pais se acaba de eliminar");
m = Mensaje.NO_EXISTE;
}
}
} else {
System.out.println("Pais inexistente");
m = Mensaje.NO_EXISTE;
}
return m;
}
@Override
public List<Estados> buscarValidos(boolean estado) {
EstadosDAO estadosDAO = new EstadosDAO();
System.out.println("pais existente");
List l = estadosDAO.buscarValidos(estado);
System.out.println(l);
return l;
}
@Override
public Estados buscarNombre(Estados estados) {
EstadosDAO estadosDAO = new EstadosDAO();
if (estadosDAO.buscarPorNombre(estados) == null) {
System.out.println("no existe el pais");
return estadosDAO.buscarId(estados);
} else {
System.out.println("se encontro un pais");
return estadosDAO.buscarId(estados);
}
}
public void addMessage(FacesMessage.Severity severity, String summary, String detail) {
FacesContext.getCurrentInstance().
addMessage("mensajePaises", new FacesMessage(severity, summary, detail));
}
}