From d75b47b00a71e9c3a12151046ef344155fbbf023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Mon, 20 Oct 2025 14:07:39 +0200 Subject: [PATCH] arreglado el calculo del precio por columnas en el presupuesto maquetacion --- .../presupuesto/service/PresupuestoService.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java b/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java index 53524de..5081b63 100644 --- a/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java +++ b/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java @@ -599,12 +599,17 @@ public class PresupuestoService { .doubleValue(); } + // precio calculado por matrices * num. cols -1 * precio por columna + if (presupuestoMaquetacion.getNumColumnas() > 1) { + precio = precio.add(precio.multiply( + BigDecimal.valueOf(presupuestoMaquetacion.getNumColumnas() - 1)) + .multiply(BigDecimal.valueOf(price.apply("columnas"))) ); + } + precio = precio .add(BigDecimal.valueOf(presupuestoMaquetacion.getNumTablas()) .multiply(BigDecimal.valueOf(price.apply("tabla")))); - precio = precio.add( - BigDecimal.valueOf(presupuestoMaquetacion.getNumColumnas()) - .multiply(BigDecimal.valueOf(price.apply("columnas")))); + precio = precio .add(BigDecimal.valueOf(presupuestoMaquetacion.getNumFotos()) .multiply(BigDecimal.valueOf(price.apply("foto")))); @@ -641,7 +646,9 @@ public class PresupuestoService { out.put("language", language); return out; - } catch (Exception e) { + } catch ( + + Exception e) { System.out.println("Error procesando presupuesto maquetacion: " + e.getMessage()); } @@ -1059,7 +1066,7 @@ public class PresupuestoService { else if (s.get("id").equals("ejemplar-prueba")) { serviciosIva4 = BigDecimal.valueOf( s.get("price") != null ? Double.parseDouble(String.valueOf(s.get("price"))) : 0.0); - } + } double unidades = Double.parseDouble(String.valueOf(s.getOrDefault("units", 0))); double precio = Double.parseDouble(String.valueOf( s.get("id").equals("marcapaginas")