acabando presupuesto

This commit is contained in:
2025-10-16 21:46:02 +02:00
parent ff9c04afb6
commit ea8a005cde
11 changed files with 349 additions and 139 deletions

View File

@ -11,8 +11,6 @@ import java.util.Locale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -38,12 +36,11 @@ import com.imprimelibros.erp.presupuesto.classes.PresupuestoMaquetacion;
import com.imprimelibros.erp.presupuesto.classes.PresupuestoMarcapaginas;
import com.imprimelibros.erp.presupuesto.dto.Presupuesto;
import com.imprimelibros.erp.presupuesto.dto.Presupuesto.TipoCubierta;
import com.imprimelibros.erp.presupuesto.maquetacion.MaquetacionMatrices;
import com.imprimelibros.erp.presupuesto.maquetacion.MaquetacionMatricesRepository;
import com.imprimelibros.erp.presupuesto.marcapaginas.MarcapaginasRepository;
import com.imprimelibros.erp.users.UserDao;
import com.imprimelibros.erp.users.UserDetailsImpl;
import jakarta.persistence.criteria.CriteriaBuilder.In;
import jakarta.servlet.http.HttpServletRequest;
import com.imprimelibros.erp.externalApi.skApiClient;
@ -815,33 +812,59 @@ public class PresupuestoService {
servicioData.put("id", servicio.get("id"));
if (servicio.get("id").equals("marcapaginas")) {
String descripcion = servicio.get("label").toString();
/*String papel_marcapaginas = datosMarcapaginas != null
? ((Map<String, Object>) 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 += "<br><ul><li>";
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) + " - " +
descripcion += "<br><ul><li>";
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 += messageSource.getMessage(
Marcapaginas.Acabado.valueOf(datosMarcapaginas.get("acabado").toString()).getMessageKey(),
null, locale);
descripcion += "</li></ul>";
servicioData.put("descripcion", descripcion);
} else if(servicio.get("id").equals("maquetacion")) {
} else if (servicio.get("id").equals("maquetacion")) {
String descripcion = servicio.get("label").toString();
descripcion += "<br><ul><li>";
descripcion += (datosMaquetacion.get("num_caracteres") + " "
+ messageSource.getMessage("presupuesto.maquetacion.caracteres", null, locale)) + ", ";
descripcion += MaquetacionMatrices.Formato
.valueOf(datosMaquetacion.get("formato_maquetacion").toString()).getLabel() + ", ";
descripcion += messageSource.getMessage(MaquetacionMatrices.FontSize
.valueOf(datosMaquetacion.get("cuerpo_texto").toString()).getMessageKey(), null, locale)
+ ", ";
descripcion += messageSource.getMessage("presupuesto.maquetacion.num-columnas", null, locale) + ": "
+ datosMaquetacion.get("num_columnas").toString() + ", ";
descripcion += messageSource.getMessage("presupuesto.maquetacion.num-tablas", null, locale) + ": "
+ datosMaquetacion.get("num_tablas").toString() + ", ";
descripcion += messageSource.getMessage("presupuesto.maquetacion.num-fotos", null, locale) + ": "
+ datosMaquetacion.get("num_fotos").toString();
if ((boolean) datosMaquetacion.get("correccion_ortotipografica")) {
descripcion += ", " + messageSource
.getMessage("presupuesto.maquetacion.correccion-ortotipografica", null, locale);
}
if ((boolean) datosMaquetacion.get("texto_mecanografiado")) {
descripcion += ", " + messageSource.getMessage("presupuesto.maquetacion.texto-mecanografiado",
null, locale);
}
if ((boolean) datosMaquetacion.get("disenio_portada")) {
descripcion += ", "
+ messageSource.getMessage("presupuesto.maquetacion.diseno-portada", null, locale);
}
if ((boolean) datosMaquetacion.get("epub")) {
descripcion += ", " + messageSource.getMessage("presupuesto.maquetacion.epub", null, locale);
}
descripcion += "</li></ul>";
servicioData.put("descripcion", descripcion);
}
else{
} 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())
@ -881,7 +904,8 @@ public class PresupuestoService {
System.out.println("Error guardando datos adicionales: " + e.getMessage());
}
Map<String, Object> resumen = getTextosResumen(presupuesto, servicios, datosMaquetacion, datosMarcapaginas, locale);
Map<String, Object> resumen = getTextosResumen(presupuesto, servicios, datosMaquetacion, datosMarcapaginas,
locale);
if (resumen.containsKey("error"))
return resumen;
@ -1035,21 +1059,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);
} else if (s.get("id").equals("marcapaginas")) {
PresupuestoMarcapaginas pm = presupuesto.getDatosMarcapaginasJson() != null
? new ObjectMapper().readValue(presupuesto.getDatosMarcapaginasJson(),
PresupuestoMarcapaginas.class)
: null;
Map<String, Object> precio_marcapaginas = this.getPrecioMarcapaginas(pm, locale);
s.put("price", precio_marcapaginas.getOrDefault("precio_total", 0.0));
} else if (s.get("id").equals("maquetacion")) {
PresupuestoMaquetacion pm = presupuesto.getDatosMaquetacionJson() != null
? new ObjectMapper().readValue(presupuesto.getDatosMaquetacionJson(),
PresupuestoMaquetacion.class)
: null;
Map<String, Object> precio_maquetacion = this.getPrecioMaquetacion(pm, locale);
s.put("price", precio_maquetacion.getOrDefault("precio", 0.0));
}
}
double unidades = Double.parseDouble(String.valueOf(s.getOrDefault("units", 0)));
double precio = Double.parseDouble(String.valueOf(
s.get("id").equals("marcapaginas")
@ -1146,7 +1156,8 @@ 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, datosMaquetacion, datosMarcapaginas, locale);
var resumen = this.getTextosResumen(presupuesto, serviciosList, datosMaquetacion, datosMarcapaginas,
locale);
Object serviciosObj = resumen.get("servicios");