tengo el texto del resumen final

This commit is contained in:
Jaime Jiménez
2025-09-23 13:25:06 +02:00
parent 479cecf52b
commit 85681b4d6e
13 changed files with 360 additions and 74 deletions

View File

@ -79,6 +79,9 @@ presupuesto.impresion-cubierta=Impresión de cubierta
presupuesto.impresion-cubierta-help=La cubierta se puede imprimir por anverso y reverso, como en el caso de las revistas, pero para un libro normal con portada y contraportada, la impresión de cubierta es a una cara.
presupuesto.una-cara=Una cara
presupuesto.dos-caras=Dos caras
presupuesto.guardas-impresas-una-cara=impresas a una cara
presupuesto.guardas-impresas-dos-caras=impresas a dos caras
presupuesto.guardas-no-impresas=no impresas
presupuesto.tamanio-solapa=Tamaño solapas
presupuesto.papel-guardas=Papel de guardas
presupuesto.guardas-impresas=Guardas impresas
@ -157,9 +160,17 @@ presupuesto.calcular-presupuesto=Calcular presupuesto
presupuesto.consultar-soporte=Consultar con soporte
# Pestaña resumen del presupuesto
presupuesto.resumen-texto={tirada} unidades encuadernadas en {tipoEncuadernacion} con {totalPaginas} páginas en formato {formato}. \
\n Papel interior {papelInterior} {gramajeInterior}. \
\n Cubierta en {tapaCubierta} {solapasCubierta} en {papelCubierta} {gramajeCubierta}.
presupuesto.resumen-texto=Impresion de {0} unidades encuadernadas en {1} en {2} con {3} páginas en formato {4} x {5} mm. \
<ul> \
<li>Papel interior {6} {7} gr.</li> \
<li>Cubierta {8} en {9} {10} gr.</li>
presupuesto.resumen-texto-impresion-caras-cubierta=<li>Impresa a {0}.</li>
presupuesto.resumen-texto-solapas-cubierta=<li>Solapas de {0} mm.</li>
presupuesto.resumen-texto-guardas-cabezada= <li>Guardas {0} en {1} {2}. Color de la cabezada: {3}.</li>
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.volver-extras=Volver a extras
# Resumen del presupuesto

View File

@ -37,8 +37,8 @@ class PresupuestoCliente {
solapasCubierta: 0,
tamanioSolapasCubierta: '80',
cubiertaCaras: 2,
guardasPapelId: 3,
guardasGramaje: 170,
papelGuardasId: 3,
gramajeGuardas: 170,
guardasImpresas: 0,
cabezada: 'WHI',
papelCubiertaId: 3,
@ -1124,8 +1124,8 @@ class PresupuestoCliente {
const solapas = $('.solapas-cubierta.selected').id == 'sin-solapas' ? 0 : 1 || 0;
const tamanioSolapasCubierta = $('#tamanio-solapas-cubierta').val() || '80';
const cubiertaCaras = parseInt(this.carasImpresionCubierta.val()) || 2;
const guardasPapelId = parseInt($('#papel-guardas option:selected').data('papel-id')) || 3;
const guardasGramaje = parseInt($('#papel-guardas option:selected').data('gramaje')) || 170;
const papelGuardasId = parseInt($('#papel-guardas option:selected').data('papel-id')) || 3;
const gramajeGuardas = parseInt($('#papel-guardas option:selected').data('gramaje')) || 170;
const guardasImpresas = parseInt(this.guardasImpresas) || 0;
const cabezada = this.cabezada.val() || 'WHI';
const papelCubiertaId = $('#div-papel-cubierta .image-container.selected').data('sk-id') || this.formData.cubierta.papelCubiertaId || 3;
@ -1145,11 +1145,11 @@ class PresupuestoCliente {
return {
tipoCubierta: tipoCubierta,
solapas: solapas,
solapasCubierta: solapas,
tamanioSolapasCubierta: tamanioSolapasCubierta,
cubiertaCaras: cubiertaCaras,
guardasPapelId: guardasPapelId,
guardasGramaje: guardasGramaje,
papelGuardasId: papelGuardasId,
gramajeGuardas: gramajeGuardas,
guardasImpresas: guardasImpresas,
cabezada: cabezada,
papelCubiertaId: papelCubiertaId,
@ -1176,11 +1176,11 @@ class PresupuestoCliente {
#updateCubiertaData(data) {
this.formData.cubierta.tipoCubierta = data.tipoCubierta;
this.formData.cubierta.solapas = data.solapas;
this.formData.cubierta.solapasCubierta = data.solapasCubierta;
this.formData.cubierta.tamanioSolapasCubierta = data.tamanioSolapasCubierta;
this.formData.cubierta.cubiertaCaras = data.cubiertaCaras;
this.formData.cubierta.guardasPapelId = data.guardasPapelId;
this.formData.cubierta.guardasGramaje = data.guardasGramaje;
this.formData.cubierta.papelGuardasId = data.papelGuardasId;
this.formData.cubierta.gramajeGuardas = data.gramajeGuardas;
this.formData.cubierta.guardasImpresas = data.guardasImpresas;
this.formData.cubierta.cabezada = data.cabezada;
this.formData.cubierta.papelCubiertaId = data.papelCubiertaId;
@ -1237,15 +1237,15 @@ class PresupuestoCliente {
$('.tapa-dura-options').removeClass('d-none');
$('.tapa-blanda-options').addClass('d-none');
$('#papel-guardas option[data-papel-id="' +
this.formData.cubierta.guardasPapelId + '"][data-gramaje="' +
this.formData.cubierta.guardasGramaje + '"]').prop('selected', true).trigger('change');
this.formData.cubierta.papelGuardasId + '"][data-gramaje="' +
this.formData.cubierta.gramajeGuardas + '"]').prop('selected', true).trigger('change');
this.guardasImpresas.val(this.formData.cubierta.guardasImpresas);
this.cabezada.val(this.formData.cubierta.cabezada);
}
$(`#${this.formData.cubierta.tipoCubierta}`).trigger('click');
if (this.formData.cubierta.solapas === 0) {
if (this.formData.cubierta.solapasCubierta === 0) {
$('.solapas-cubierta#sin-solapas').addClass('selected');
this.divSolapasCubierta.addClass('d-none');
}
@ -1389,20 +1389,20 @@ class PresupuestoCliente {
this.#changeTab('pills-seleccion-tirada');
this.summaryTableExtras.addClass('d-none');
} else {
const summaryData = Summary.getSummaryData();
const presupuestoData = this.#getPresupuestoData();
const payload = {
...dotify(this.#getPresupuestoData(), 'presupuesto'),
summary: JSON.stringify(Summary.getSummaryData()),
const body = {
presupuesto: this.#getPresupuestoData(), // objeto JS con campos que coincidan con la entidad
servicios: this.formData.servicios.servicios // array de strings
};
$.ajax({
url: '/presupuesto/public/getresumen',
url: '/presupuesto/public/resumen',
type: 'POST',
data: payload,
contentType: 'application/json',
data: JSON.stringify(body)
}).then((data) => {
console.log("Extras validados correctamente", data);
$('#resumen-titulo').text(data.titulo);
$('#resumen-texto').html(data.texto);
}).catch((error) => {
console.error("Error obtener resumen: ", error);
});

View File

@ -163,20 +163,3 @@ export function updateExtras() {
}
}
export function getSummaryData() {
const data = {};
$(".data-summary").each(function () {
const $el = $(this);
// comprobar si la tabla y el tr están visibles
if ($el.closest("table").is(":visible") && $el.closest("tr").is(":visible")) {
const key = $el.data("id-summary"); // atributo data-id-summary
const value = $el.text().trim(); // texto visible
data[key] = value;
}
});
return data;
}

View File

@ -14,6 +14,11 @@
</div>
<!-- End Ribbon Shape -->
<div class="col-9 mx-auto mt-4">
<h5 id="resumen-titulo" class="text-center"></h5>
<p id="resumen-texto"></p>
</div>
<div class="d-flex justify-content-between align-items-center mt-4 w-100">
<button id="btn-prev-resumen" type="button"
class="btn btn-light d-flex align-items-center btn-change-tab-resumen">