trabajando con las lineas del resumen para la tabla

This commit is contained in:
2025-09-23 20:28:33 +02:00
parent c1df92b840
commit 0d205f9488
9 changed files with 131 additions and 88 deletions

View File

@ -171,6 +171,7 @@ presupuesto.resumen-texto-acabado-cubierta= <li>Acabado {0}. </li>
presupuesto.resumen-texto-end=</ul>
presupuesto.resumen-texto-sobrecubierta=<li>Sobrecubierta impresa en {0} {1} gr. <ul><li>Acabado {2}</li><li>Solapas: {3} mm.</li></ul></li>
presupuesto.resumen-texto-faja=<li>Faja impresa en {0} {1} gr. con un alto de {2} mm. <ul><li>Acabado {3}</li><li>Solapas: {4} mm.</li></ul></li>
presupuesto.resumen-deposito-legal=4 ejemplares para el Depósito Legal
presupuesto.volver-extras=Volver a extras
# Resumen del presupuesto

View File

@ -1381,6 +1381,8 @@ class PresupuestoCliente {
******************************/
#initExtras() {
const self = this;
$(document).on('click', '.btn-change-tab-extras', (e) => {
const id = e.currentTarget.id;
@ -1394,13 +1396,13 @@ class PresupuestoCliente {
$('.service-checkbox:checked').each(function () {
const $servicio = $(this);
servicios.push({
id: $(`label[for="${$servicio.attr('id')}"] .service-title`).text().trim() || $servicio.attr('id'),
price: $(`label[for="${$servicio.attr('id')}"] .service-price`).text().trim() || $servicio.attr('price')
id: $servicio.attr('id') ?? $(`label[for="${$servicio.attr('id')}"] .service-title`).text().trim(),
price: $servicio.data('price') ?? $(`label[for="${$servicio.attr('id')}"] .service-price`).text().trim().replace(" " + self.divExtras.data('currency'), ''),
});
});
const body = {
presupuesto: this.#getPresupuestoData(), // objeto JS con campos que coincidan con la entidad
presupuesto: this.#getPresupuestoData(),
servicios: servicios
};

View File

@ -75,6 +75,9 @@ $(document).on("submit", "#maquetacionForm", function (e) {
stored.servicios.datosMaquetacion.resultado.num_paginas_estimadas = json.numPaginasEstimadas;
stored.servicios.datosMaquetacion.resultado.precio_pagina_estimado = json.precioPaginaEstimado;
stored.servicios.datosMaquetacion.resultado.precio = json.precio;
if(stored.servicios.servicios.includes("maquetacion") === false) {
stored.servicios.servicios.push("maquetacion");
}
sessionStorage.setItem("formData", JSON.stringify(stored));
}
else {

View File

@ -73,6 +73,9 @@ $(document).on("submit", "#marcapaginasForm", function (e) {
const stored = JSON.parse(sessionStorage.getItem("formData"));
stored.servicios.datosMarcapaginas.resultado.precio_unitario = json.precio_unitario;
stored.servicios.datosMarcapaginas.resultado.precio = json.precio_total;
if(stored.servicios.servicios.includes("marcapaginas") === false) {
stored.servicios.servicios.push("marcapaginas");
}
sessionStorage.setItem("formData", JSON.stringify(stored));
}
else {

View File

@ -33,7 +33,11 @@ export function formateaNumero({
export function isNumber(value) {
return !isNaN(Number(value)) && value.trim() !== '';
if(typeof value === 'string') {
if(value.trim() === '') return false;
}
return !isNaN(Number(value));
}
// Aplana un objeto a "prefijo.clave" (sin arrays)