/* * 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 hola.BL; import hola.dao.EstadoDAO; import hola.modelo.Estado; import hola.msg.Mensaje; import java.util.List; import java.util.Optional; import javax.ejb.Stateless; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; /** * * @author chore */ @Stateless public class EstadoBL implements EstadoBLLocal { // Add business logic below. (Right-click in editor and choose // "Insert Code > Add Business Method") @Override public Mensaje agregar(Estado estado) { // Comentario de lógica: Método para agregar un proveedor //, Registro registro// System.out.println("Llegaste al metodo de agregar Usuario"); EstadoDAO estadoDAO = new EstadoDAO(); Mensaje m = null; // Validar que los campos requeridos no estén vacíos if (estado.getNombre().isEmpty()) { System.out.println(Mensaje.CAMPOS_INCOMPLETOS); // Enviar mensaje de error si algún campo está incompleto return Mensaje.CAMPOS_INCOMPLETOS; } // Buscar si el proveedor ya existe en la base de datos Optional usuarioEncontradoOptional = estadoDAO.buscarEstado(estado); if (usuarioEncontradoOptional.isPresent()) { // Manejar el caso en el que se encontró al menos un proveedor duplicado usuarioEncontradoOptional.get(); addMessage(FacesMessage.SEVERITY_ERROR, "Error", "Elemento duplicado"); m = Mensaje.ELEMENTO_DUPLICADO; } else { // Agregar el proveedor a la base de datos si no está duplicado estadoDAO.agregar(estado); //registroDAO.agregar(registro); m = Mensaje.SIN_ERROR; } return m; } @Override public Estado buscarId(Estado estado) { // Comentario de lógica: Método para buscar un proveedor por ID EstadoDAO edao = new EstadoDAO(); return edao.buscarPorId(estado); } @Override public void eliminarId(Estado estado) { // Comentario de lógica: Método para eliminar un proveedor por ID EstadoDAO edao = new EstadoDAO(); if (edao.eliminar(estado)) { System.out.println(Mensaje.SIN_ERROR); } else { System.out.println(Mensaje.NO_EXISTE); } } @Override public Mensaje editar(Estado estado) { // Comentario de lógica: Método para editar un proveedor Mensaje m; EstadoDAO estadoDAO = new EstadoDAO(); // Validar que los campos requeridos no estén vacíos if (estado.getNombre().isEmpty() || estado.getStatus() == null) { // Enviar mensaje de error si algún campo está incompleto m = Mensaje.CAMPOS_INCOMPLETOS; System.out.println(Mensaje.CAMPOS_INCOMPLETOS); return m; } try { // Editar el proveedor solo si todas las validaciones son exitosas Optional user = estadoDAO.buscarEstado(estado); if (user.isPresent()) { addMessage(FacesMessage.SEVERITY_ERROR, "Error", "Elemento duplicado"); m = Mensaje.ELEMENTO_DUPLICADO; } else { if (estadoDAO.editar(estado) == true) { m = Mensaje.SIN_ERROR; System.out.println(Mensaje.SIN_ERROR); return m; } else { m = Mensaje.N0_EXISTE; System.out.println(Mensaje.NO_EXISTE); return m; } } } catch (Exception e) { // Capturar cualquier excepción que ocurra durante la edición del proveedor m = Mensaje.DATOS_INCORRECTOS; System.out.println(Mensaje.DATOS_INCORRECTOS); e.printStackTrace(); } return m; } @Override public List buscarValidos(boolean estado) { EstadoDAO estadoDAO = new EstadoDAO(); List l = estadoDAO.buscarValidos(estado); // Llama al método buscarValidos de ProductoDAO y devuelve la lista resultante System.out.println(l); return l; } public void addMessage(FacesMessage.Severity severity, String summary, String detail) { FacesContext.getCurrentInstance().addMessage("MensajeUsuario", new FacesMessage(severity, summary, detail)); } }