/* * 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 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 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 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 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)); } }