/* * 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 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 referenciaUsuarios = estadosDAO.buscarPaisesReferenciadosUsuarios(estadoEnUso); List 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 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)); } }