diff --git a/src/main/java/com/imprimelibros/erp/presupuesto/marcapaginas/Marcapaginas.java b/src/main/java/com/imprimelibros/erp/presupuesto/marcapaginas/Marcapaginas.java index 4eaef57..b8c3896 100644 --- a/src/main/java/com/imprimelibros/erp/presupuesto/marcapaginas/Marcapaginas.java +++ b/src/main/java/com/imprimelibros/erp/presupuesto/marcapaginas/Marcapaginas.java @@ -10,23 +10,61 @@ import jakarta.validation.constraints.Min; public class Marcapaginas { public enum Acabado{ - ninguno, - plastificado_brillo_1c, - plastificado_brillo_2c, - plastificado_mate_1c, - plastificado_mate_2c + ninguno("presupuesto.marcapaginas.acabado.ninguno"), + plastificado_brillo_1c("presupuesto.marcapaginas.acabado.plastificado-brillo-1c"), + plastificado_brillo_2c("presupuesto.marcapaginas.acabado.plastificado-brillo-2c"), + plastificado_mate_1c("presupuesto.marcapaginas.acabado.plastificado-mate-1c"), + plastificado_mate_2c("presupuesto.marcapaginas.acabado.plastificado-mate-2c"); + + private final String messageKey; + + Acabado(String messageKey) { + this.messageKey = messageKey; + } + + public String getMessageKey() { + return messageKey; + } }; public enum Tamanios{ - _50x140_, _50x170_, _50x210_ + _50x140_, + _50x170_, + _50x210_; + + private final String label; + Tamanios() { + this.label = this.name().replace("_", "") + " mm"; + } + + public String getLabel() { + return label; + } }; public enum Papeles{ - cartulina_grafica, estucado_mate + cartulina_grafica, + estucado_mate; + + private final String messageKey; + Papeles() { + this.messageKey = "presupuesto.marcapaginas.papel." + this.name().replace("_", "-"); + } + public String getMessageKey() { + return messageKey; + } }; public enum Caras_Impresion{ - una_cara, dos_caras + una_cara("presupuesto.marcapaginas.caras-impresion-1"), + dos_caras("presupuesto.marcapaginas.caras-impresion-2"); + private final String messageKey; + Caras_Impresion(String messageKey) { + this.messageKey = messageKey; + } + public String getMessageKey() { + return messageKey; + } }; @Id diff --git a/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoFormDataMapper.java b/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoFormDataMapper.java index 2e27e95..c7d601e 100644 --- a/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoFormDataMapper.java +++ b/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoFormDataMapper.java @@ -100,11 +100,11 @@ public class PresupuestoFormDataMapper { public static class DatosMarcapaginas { public Integer marcapaginas_tirada = 100; - public String tamanio_marcapaginas = "_50x140_"; - public String caras_impresion = "una_cara"; - public String papel_marcapaginas = "cartulina_grafica"; - public Integer gramaje_marcapaginas = 300; - public String acabado_marcapaginas = "ninguno"; + public String tamanio = "_50x140_"; + public String carasImpresion = "una_cara"; + public String papel = "cartulina_grafica"; + public Integer gramaje = 300; + public String acabado = "ninguno"; public Resultado resultado = new Resultado(); } 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 9fdeacd..e9fbdec 100644 --- a/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java +++ b/src/main/java/com/imprimelibros/erp/presupuesto/service/PresupuestoService.java @@ -750,7 +750,7 @@ public class PresupuestoService { * Mantiene firma para no romper llamadas existentes. */ public Map getTextosResumen(Presupuesto presupuesto, List> servicios, - Locale locale) { + Map datosMaquetacion, Map datosMarcapaginas, Locale locale) { Map resumen = new HashMap<>(); resumen.put("titulo", presupuesto.getTitulo()); @@ -814,11 +814,34 @@ public class PresupuestoService { HashMap servicioData = new HashMap<>(); servicioData.put("id", servicio.get("id")); if (servicio.get("id").equals("marcapaginas")) { + String descripcion = servicio.get("label").toString(); + /*String papel_marcapaginas = datosMarcapaginas != null + ? ((Map) datosMarcapaginas).get("papel").toString() + : ""; + if (papel_marcapaginas.equals("cartulina_grafica")) { + papel_marcapaginas = messageSource.getMessage("presupuesto.marcapaginas.papel.cartulina-grafica", null, locale); + } else if (papel_marcapaginas.equals("estucado_mate")) { + papel_marcapaginas = messageSource.getMessage("presupuesto.marcapaginas.papel.estucado-mate", null, locale); + } else { + papel_marcapaginas = ""; + }*/ + descripcion += "
  • "; + descripcion += Marcapaginas.Tamanios.valueOf(datosMarcapaginas.get("tamanio").toString()).getLabel() + ", "; + descripcion += Marcapaginas.Caras_Impresion.valueOf(datosMarcapaginas.get("carasImpresion").toString()).getMessageKey() + ", "; + descripcion += messageSource.getMessage(Marcapaginas.Papeles.valueOf(datosMarcapaginas.get("papel").toString()).getMessageKey(), null, locale) + " - " + + datosMarcapaginas.get("gramaje").toString() + " gr, "; + descripcion += messageSource.getMessage(Marcapaginas.Acabado.valueOf(datosMarcapaginas.get("acabado").toString()).getMessageKey(), null, locale); + descripcion += "
"; + servicioData.put("descripcion", descripcion); - } else { - + } else if(servicio.get("id").equals("maquetacion")) { + String descripcion = servicio.get("label").toString(); + servicioData.put("descripcion", descripcion); } - servicioData.put("descripcion", servicio.get("label")); + else{ + servicioData.put("descripcion", servicio.get("label")); + } + servicioData.put("precio", servicio.get("id").equals("marcapaginas") ? Double.parseDouble(servicio.get("price").toString()) / Double.parseDouble(servicio.get("units").toString()) @@ -858,7 +881,7 @@ public class PresupuestoService { System.out.println("Error guardando datos adicionales: " + e.getMessage()); } - Map resumen = getTextosResumen(presupuesto, servicios, locale); + Map resumen = getTextosResumen(presupuesto, servicios, datosMaquetacion, datosMarcapaginas, locale); if (resumen.containsKey("error")) return resumen; @@ -1123,7 +1146,7 @@ public class PresupuestoService { datosMaquetacion != null ? new ObjectMapper().writeValueAsString(datosMaquetacion) : null); presupuesto.setDatosMarcapaginasJson( datosMarcapaginas != null ? new ObjectMapper().writeValueAsString(datosMarcapaginas) : null); - var resumen = this.getTextosResumen(presupuesto, serviciosList, locale); + var resumen = this.getTextosResumen(presupuesto, serviciosList, datosMaquetacion, datosMarcapaginas, locale); Object serviciosObj = resumen.get("servicios"); diff --git a/src/main/resources/i18n/presupuesto_es.properties b/src/main/resources/i18n/presupuesto_es.properties index cf5c07f..5bf3b58 100644 --- a/src/main/resources/i18n/presupuesto_es.properties +++ b/src/main/resources/i18n/presupuesto_es.properties @@ -203,6 +203,7 @@ presupuesto.calcular-presupuesto=Calcular presupuesto presupuesto.consultar-soporte=Consultar con soporte # Pestaña resumen del presupuesto +presupuesto.resumen.tamanio=Tamaño presupuesto.resumen.tabla.descripcion=Descripción presupuesto.resumen.tabla.cantidad=Cantidad presupuesto.resumen.tabla.precio-unidad=Precio/unidad