diff --git a/backend/src/main/java/persistance/services/AlmacenamientoDAO.java b/backend/src/main/java/persistance/services/AlmacenamientoDAO.java index b71d4c281404fd44a5f3311be4358164771e3f04..1d4cb6ff57ebe75da85fb051974b253b0eb9ee61 100644 --- a/backend/src/main/java/persistance/services/AlmacenamientoDAO.java +++ b/backend/src/main/java/persistance/services/AlmacenamientoDAO.java @@ -2,6 +2,7 @@ package persistance.services; import models.Almacenamiento; import models.Bien; +import models.Bien.TipoBien; import models.BienFront; import models.Ingrediente; import models.Usuario; @@ -17,6 +18,7 @@ import org.jvnet.hk2.annotations.Service; import java.util.List; +import java.util.ArrayList; @Service public class AlmacenamientoDAO implements IAlmacenamiento { @@ -170,13 +172,29 @@ public class AlmacenamientoDAO implements IAlmacenamiento { @Override @Transactional public List<BienFront> getMatPrim() { - String jpql = "SELECT new models.BienFront(i.id, b.nombre, b.tipo, i.precioUnitario, SUM(i.cantidad)) " + - "FROM Ingrediente i " + - "JOIN i.idBien b " + - "WHERE b.tipo = 2 " + - "GROUP BY b.id, b.nombre"; - - return entityManager.createQuery(jpql, BienFront.class).getResultList(); + String jpql = "SELECT b.id, b.nombre, b.tipo, i.precioUnitario, SUM(i.cantidad) " + + "FROM Bien b " + + "JOIN b.ingredientes i " + + "WHERE b.tipo = :tipoInsumo " + + "GROUP BY b.id, b.nombre, b.tipo, i.precioUnitario"; + + List<Object[]> results = entityManager.createQuery(jpql, Object[].class) + .setParameter("tipoInsumo", TipoBien.MATERIAPRIMA) + .getResultList(); + + List<BienFront> bienFronts = new ArrayList<>(); + for (Object[] result : results) { + BienFront bienFront = new BienFront( + (Long) result[0], + (String) result[1], + (TipoBien) result[2], + (Double) result[3], + ((Number) result[4]).doubleValue() + ); + bienFronts.add(bienFront); + } + + return bienFronts; }