From 64adcfaa4f8d96333ec51f7f4b35deec524041aa Mon Sep 17 00:00:00 2001 From: Mayol Jose Date: Thu, 9 Mar 2023 12:44:57 -0300 Subject: [PATCH] Adds the endpoint to obtain a product list report of the chosen products by id --- .../java/sic/controller/ProductoController.java | 16 ++++++++++++++++ src/main/java/sic/service/IProductoService.java | 2 ++ .../sic/service/impl/ProductoServiceImpl.java | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/src/main/java/sic/controller/ProductoController.java b/src/main/java/sic/controller/ProductoController.java index c28e7e2c..f0fd9d29 100644 --- a/src/main/java/sic/controller/ProductoController.java +++ b/src/main/java/sic/controller/ProductoController.java @@ -8,6 +8,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.data.domain.*; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import sic.aspect.AccesoRolesPermitidos; import sic.modelo.*; @@ -139,6 +143,18 @@ public void getListaDePrecios( } } + @GetMapping("/productos/reporte") + public ResponseEntity getListaProductosSeleccionados( + @RequestParam long[] idProducto) { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_PDF); + headers.add("content-disposition", "inline; filename=ProductList.pdf"); + headers.setCacheControl("must-revalidate, post-check=0, pre-check=0"); + byte[] reportePDF = + productoService.getListaDePreciosEnPdf(idProducto); + return new ResponseEntity<>(reportePDF, headers, HttpStatus.OK); + } + @DeleteMapping("/productos") @AccesoRolesPermitidos({Rol.ADMINISTRADOR}) public void eliminarMultiplesProductos(@RequestParam long[] idProducto) { diff --git a/src/main/java/sic/service/IProductoService.java b/src/main/java/sic/service/IProductoService.java index 8201f19f..b1d22d91 100644 --- a/src/main/java/sic/service/IProductoService.java +++ b/src/main/java/sic/service/IProductoService.java @@ -85,6 +85,8 @@ BigDecimal calcularGananciaPorcentaje( void getListaDePreciosEnPdf(BusquedaProductoCriteria criteria, long idSucursal); + byte[] getListaDePreciosEnPdf(long[] idProductos); + void enviarListaDeProductosPorEmail(String mailTo, byte[] listaDeProductos, String formato); Producto guardar(NuevoProductoDTO producto, long idMedida, long idRubro, long idProveedor); diff --git a/src/main/java/sic/service/impl/ProductoServiceImpl.java b/src/main/java/sic/service/impl/ProductoServiceImpl.java index 14ad3bf1..b658330b 100644 --- a/src/main/java/sic/service/impl/ProductoServiceImpl.java +++ b/src/main/java/sic/service/impl/ProductoServiceImpl.java @@ -1130,6 +1130,15 @@ public void getListaDePreciosEnPdf(BusquedaProductoCriteria criteria, long idSuc this.getListaDePrecios(productos, FORMATO_PDF), FORMATO_PDF); } + @Override + public byte[] getListaDePreciosEnPdf(long[] idProductos) { + var productos = new ArrayList(); + for (long idProducto : idProductos) { + productos.add(this.getProductoNoEliminadoPorId(idProducto)); + } + return this.getListaDePrecios(productos, FORMATO_PDF); + } + @Override public void enviarListaDeProductosPorEmail(String mailTo, byte[] listaDeProductos, String formato) { emailService.enviarEmail(