From 27eabde40fb0f4e6fde762b210153434160d4e1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Wed, 25 Feb 2026 21:09:04 +0100 Subject: [PATCH] =?UTF-8?q?solucionado=20problema=20con=20cargar=20solapas?= =?UTF-8?q?=20de=20cubierta=20y=20formato.=20Tambi=C3=A9n=20a=C3=B1adido?= =?UTF-8?q?=20los=20lomos=20desde=20sk=20al=20guardar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/externalApi/skApiClient.java | 12 +++-------- .../classes/PresupuestoFormatter.java | 7 +++++++ .../service/PresupuestoService.java | 7 ++----- .../resources/i18n/presupuesto_es.properties | 1 + .../imprimelibros/presupuestador/wizard.js | 20 ++++++++++--------- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/imprimelibros/erp/externalApi/skApiClient.java b/src/main/java/com/imprimelibros/erp/externalApi/skApiClient.java index 76b9477..3efbd41 100644 --- a/src/main/java/com/imprimelibros/erp/externalApi/skApiClient.java +++ b/src/main/java/com/imprimelibros/erp/externalApi/skApiClient.java @@ -128,7 +128,7 @@ public class skApiClient { }); } - public Map getLomos(Map requestBody, Locale locale) { + public Map getLomos(Map requestBody) { try { String jsonResponse = performWithRetry(() -> { String url = this.skApiUrl + "api/get-lomos"; @@ -165,9 +165,8 @@ public class skApiClient { ObjectMapper mapper = new ObjectMapper(); JsonNode root = mapper.readTree(jsonResponse); - if (root.get("lomoInterior") == null || !root.get("lomoInterior").isInt()) { - throw new RuntimeException( - messageSource.getMessage("presupuesto.errores.error-interior", new Object[] { 1 }, locale)); + if (root.get("lomoInterior") == null || !root.get("lomoInterior").isDouble()) { + throw new RuntimeException(); } Double lomoInterior = root.get("lomoInterior").asDouble(); @@ -178,11 +177,6 @@ public class skApiClient { } catch (JsonProcessingException e) { // Fallback al 80% del ancho - Map tamanio = new ObjectMapper().convertValue( - requestBody.get("tamanio"), - new TypeReference>() { - }); - return Map.of( "lomoInterior", 0.0, "lomoCubierta", 0.0); diff --git a/src/main/java/com/imprimelibros/erp/presupuesto/classes/PresupuestoFormatter.java b/src/main/java/com/imprimelibros/erp/presupuesto/classes/PresupuestoFormatter.java index 2669aed..7c3f2cc 100644 --- a/src/main/java/com/imprimelibros/erp/presupuesto/classes/PresupuestoFormatter.java +++ b/src/main/java/com/imprimelibros/erp/presupuesto/classes/PresupuestoFormatter.java @@ -126,6 +126,13 @@ public class PresupuestoFormatter { }, locale); } + textoResumen += ms.getMessage( + "presupuesto.resumen-lomos", + new Object[] { + p.getLomo() != null ? Math.round(p.getLomo()) : "N/D", + p.getLomoCubierta() != null ? Math.round(p.getLomoCubierta()) : "N/D" + }, + locale); textoResumen += ms.getMessage("presupuesto.resumen-texto-end", null, locale); return textoResumen; 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 2c88990..b851cf8 100644 --- a/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java +++ b/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java @@ -1299,12 +1299,9 @@ public class PresupuestoService { public Map obtenerLomos(Presupuesto presupuesto) { try { - Long papelInteriorId = presupuesto.getPapelInteriorId() != null ? presupuesto.getPapelInteriorId() : 0L; - Long papelCubiertaId = presupuesto.getPapelCubiertaId() != null ? presupuesto.getPapelCubiertaId() : 0L; - int paginas = presupuesto.getPaginasNegro() + presupuesto.getPaginasColor(); - Map response = apiClient.getLomos(papelInteriorId, papelCubiertaId, paginas); + Map response = apiClient.getLomos(this.toSkApiRequest(presupuesto)); - return response.get("data") != null ? (Map) response.get("data") : Map.of(); + return response; } catch (Exception e) { System.out.println("Error obteniendo lomos: " + e.getMessage()); return Map.of(); diff --git a/src/main/resources/i18n/presupuesto_es.properties b/src/main/resources/i18n/presupuesto_es.properties index 9253013..c98e538 100644 --- a/src/main/resources/i18n/presupuesto_es.properties +++ b/src/main/resources/i18n/presupuesto_es.properties @@ -234,6 +234,7 @@ presupuesto.resumen-texto-acabado-cubierta=
  • Acabado: {0}.
  • presupuesto.resumen-texto-end= presupuesto.resumen-texto-sobrecubierta=
  • Sobrecubierta impresa en {0} {1} gr.
    • Acabado: {2}
    • Solapas: {3} mm.
  • presupuesto.resumen-texto-faja=
  • Faja impresa en {0} {1} gr. con un alto de {2} mm.
    • Acabado: {3}
    • Solapas: {4} mm.
  • +presupuesto.resumen-lomos=
  • Dimensiones de los lomos:
    • Lomo interior: {0} mm
    • Lomo total: {1} mm
  • presupuesto.resumen-deposito-legal=Ejemplares para el Depósito Legal presupuesto.volver-extras=Extras del libro presupuesto.resumen.inicie-sesion=Inicie sesión para continuar diff --git a/src/main/resources/static/assets/js/pages/imprimelibros/presupuestador/wizard.js b/src/main/resources/static/assets/js/pages/imprimelibros/presupuestador/wizard.js index d87721f..14dc7c3 100644 --- a/src/main/resources/static/assets/js/pages/imprimelibros/presupuestador/wizard.js +++ b/src/main/resources/static/assets/js/pages/imprimelibros/presupuestador/wizard.js @@ -718,24 +718,23 @@ export default class PresupuestoWizard { .prop('checked', true); this.#updateTipoEncuadernacion(); - this.formatoPersonalizado.trigger('change'); - - $('.paginas').trigger('change'); if (this.formatoPersonalizado.is(':checked')) { this.ancho.val(this.formData.datosGenerales.ancho); this.alto.val(this.formData.datosGenerales.alto); } else { - const option = this.formato.find('option').filter(() => { - return $(this).data('ancho') == this.formData.datosGenerales.ancho && - $(this).data('alto') == this.formData.datosGenerales.alto; + const option = this.formato.find('option').filter((index, element) => { + return $(element).data('ancho') == this.formData.datosGenerales.ancho && + $(element).data('alto') == this.formData.datosGenerales.alto; }); if (option.length) { this.formato.val(option.val()).trigger('change'); } } - + + this.formatoPersonalizado.trigger('change'); + $('.paginas').trigger('change'); this.ivaReducido.prop('checked', this.formData.datosGenerales.ivaReducido); } @@ -1226,7 +1225,7 @@ export default class PresupuestoWizard { const dataToStore = this.#getCubiertaData(); this.#updateCubiertaData(dataToStore); this.#cacheFormData(); - + Summary.updateTapaCubierta(); }); @@ -1443,7 +1442,10 @@ export default class PresupuestoWizard { #getCubiertaData() { const tipoCubierta = $('.tapa-cubierta input:checked').val() || 'tapaBlanda'; - const solapas = $('.solapas-cubierta input:checked').val() == 'sin-solapas' ? 0 : 1 || 0; + let solapas = 0; + if(tipoCubierta === 'tapaBlanda'){ + solapas = $('.solapas-cubierta input:checked').val() == 'conSolapas' ? 1 : 0 || 0; + } const tamanioSolapasCubierta = $('#tamanio-solapas-cubierta').val() || '80'; const cubiertaCaras = parseInt(this.carasImpresionCubierta.val()) || 2; const papelGuardasId = parseInt($('#papel-guardas option:selected').data('papel-id')) || 3;