faltan que no se reseteen los acabados de la cubierta

This commit is contained in:
Jaime Jiménez
2025-09-01 14:50:42 +02:00
parent ea1c485c80
commit 3d9444c3d6
7 changed files with 284 additions and 49 deletions

View File

@ -126,6 +126,9 @@ class PresupuestoCliente {
// resumen
this.summaryTableInterior = $('#summary-interior');
this.summaryTableCubierta = $('#summary-cubierta');
this.summaryTableSobrecubierta = $('#summary-sobrecubierta');
this.summaryTableFaja = $('#summary-faja');
}
init() {
@ -141,6 +144,10 @@ class PresupuestoCliente {
this.#loadCubiertaData();
}
Summary.updateEncuadernacion();
Summary.updateFormato();
Summary.updatePaginas();
this.#initInterior();
this.#initSeleccionTirada();
@ -404,7 +411,7 @@ class PresupuestoCliente {
this.posicionPaginasColor.val(this.formData.datosGenerales.posicionPaginasColor);
this.formatoPersonalizado.prop('checked', this.formData.datosGenerales.formatoPersonalizado);
if( this.formData.datosGenerales.formatoPersonalizado ) {
if (this.formData.datosGenerales.formatoPersonalizado) {
this.ancho.val(this.formData.datosGenerales.ancho);
this.alto.val(this.formData.datosGenerales.alto);
}
@ -671,6 +678,15 @@ class PresupuestoCliente {
this.fajaSobrecubierta.val(this.formData.cubierta.faja.acabado);
this.#loadCubiertaData();
this.summaryTableCubierta.removeClass('d-none');
if (this.sobrecubierta.hasClass('active')) {
this.summaryTableSobrecubierta.removeClass('d-none');
Summary.updateSobreCubierta();
}
if (this.faja.hasClass('active')) {
this.summaryTableFaja.removeClass('d-none');
Summary.updateFaja();
}
this.#changeTab('pills-cover');
@ -844,6 +860,7 @@ class PresupuestoCliente {
}
this.#getPapelesCubierta(e.currentTarget.id);
Summary.updateTapaCubierta();
});
$(document).on('click', '.solapas-cubierta', (e) => {
@ -858,6 +875,8 @@ class PresupuestoCliente {
const dataToStore = this.#getCubiertaData();
this.#updateCubiertaData(dataToStore);
this.#cacheFormData();
Summary.updateTapaCubierta();
});
$(document).on('click', '.papel-cubierta', (e) => {
@ -881,6 +900,9 @@ class PresupuestoCliente {
this.#updateCubiertaData(dataCubierta);
this.#cacheFormData();
Summary.updatePapelCubierta();
Summary.updateGramajeCubierta();
}).fail((xhr, status, error) => {
console.error("Error al obtener los gramajes de interior: ", xhr.responseText);
});
@ -892,7 +914,7 @@ class PresupuestoCliente {
const gramaje = parseInt($('#' + inputId).data('gramaje'));
this.formData.cubierta.gramajeCubierta = gramaje;
this.#cacheFormData();
Summary.updateGramajeCubierta();
});
$(document).on('change', '.datos-cubierta', (e) => {
@ -906,6 +928,7 @@ class PresupuestoCliente {
this.formData.cubierta.acabado = parseInt($(e.currentTarget).attr('sk-id')) || 1;
this.#cacheFormData();
Summary.updateAcabadoCubierta();
});
$(document).on('click', '.custom-toggle', (e) => {
@ -914,16 +937,24 @@ class PresupuestoCliente {
if ($target.hasClass('active')) {
if ($target.attr('id') === 'sobrecubierta') {
this.divSobrecubierta.removeClass('d-none');
this.summaryTableSobrecubierta.removeClass('d-none');
Summary.updateSobreCubierta();
}
else if ($target.attr('id') === 'faja') {
this.divFaja.removeClass('d-none');
this.summaryTableFaja.removeClass('d-none');
Summary.updateFaja();
}
} else {
if ($target.attr('id') === 'sobrecubierta') {
this.divSobrecubierta.addClass('d-none');
this.summaryTableSobrecubierta.addClass('d-none');
Summary.updateSobreCubierta();
}
else if ($target.attr('id') === 'faja') {
this.divFaja.addClass('d-none');
this.summaryTableFaja.addClass('d-none');
Summary.updateFaja();
}
}
const dataToStore = this.#getCubiertaData();
@ -931,16 +962,39 @@ class PresupuestoCliente {
this.#cacheFormData();
});
$(document).on('change', '.sobrecubierta-item', () => {
const dataToStore = this.#getCubiertaData();
this.#updateCubiertaData(dataToStore);
this.#cacheFormData();
Summary.updateSobreCubierta();
});
$(document).on('change', '.faja-item', () => {
const dataToStore = this.#getCubiertaData();
this.#updateCubiertaData(dataToStore);
this.#cacheFormData();
Summary.updateFaja();
});
$('.btn-change-tab-cubierta').on('click', (e) => {
const data = this.#getPresupuestoData();
const id = e.currentTarget.id;
if (id === 'btn-prev-cubierta') {
data.calcular = false;
}
else {
data.calcular = true;
}
$.ajax({
url: '/presupuesto/public/validar/cubierta',
type: 'POST',
data: data,
success: (data) => {
if (id === 'btn-prev-cubierta') {
this.summaryTableCubierta.addClass('d-none');
this.#changeTab('pills-inside');
}
else {
@ -965,6 +1019,12 @@ class PresupuestoCliente {
}
});
});
// Eventos para el resumen
$(document).on('change', '.tapa-cubierta-summary', () => {
Summary.updateTapaCubierta();
});
}
#getPapelesCubierta(tapa_id) {
@ -1012,6 +1072,8 @@ class PresupuestoCliente {
const dataToStore = this.#getCubiertaData();
this.#updateCubiertaData(dataToStore);
this.#cacheFormData();
Summary.updatePapelCubierta();
},
error: (xhr, status, error) => {
console.error("Error al obtener los papeles de cubierta: ", xhr.responseText);
@ -1110,7 +1172,7 @@ class PresupuestoCliente {
for (let i = 0; i < gramajes.length; i++) {
const gramaje = gramajes[i];
this.#addGramaje(this.divGramajeCubierta, 'gramaje-cubierta', gramaje, 'gramaje-cubierta datos-cubierta');
this.#addGramaje(this.divGramajeCubierta, 'gramaje-cubierta datos-cubierta', gramaje, 'gramaje-cubierta');
// Seleccionar el gramaje por defecto
if (this.formData.cubierta.gramajeCubierta === '' && i === 0) {
@ -1123,6 +1185,8 @@ class PresupuestoCliente {
// If not, select the first one by default
this.divGramajeCubierta.find('input[type="radio"]').first().prop('checked', true);
}
Summary.updateGramajeCubierta();
}
#loadCubiertaData() {
@ -1189,6 +1253,9 @@ class PresupuestoCliente {
this.solapasFaja.val(this.formData.cubierta.faja.tamanioSolapasFaja);
this.altoFaja.val(this.formData.cubierta.faja.alto);
this.acabadoFaja.val(this.formData.cubierta.faja.acabado);
Summary.updateTapaCubierta();
Summary.updateAcabadoCubierta();
}
/******************************
* END CUBIERTA

View File

@ -58,13 +58,84 @@ export function updateGramajeInterior() {
export function updateTapaCubierta(){
const $selected = $('.tipo-cubierta.selected');
const $selected = $('.tapa-cubierta.selected');
if ($selected.length > 0) {
const resumen = $selected.data('summary-text') || $selected.attr('id');
$('#summary-tapa-cubierta').text(resumen);
}
if($selected.attr('id') === 'tapaBlanda') {
$('#summary-cubierta').removeClass('d-none');
$('#summary-cubierta .table-responsive').removeClass('d-none');
$('.tapa-blanda-row').removeClass('d-none');
$('.tapa-dura-row').addClass('d-none');
$('#summary-cubierta-solapas').text($('#sin-solapas').hasClass('selected') ? $('#sin-solapas').data('summary-text') : $('#con-solapas').data('summary-text'));
if($('#con-solapas').hasClass('selected')) {
$('#summary-tamanio-solapa-row').removeClass('d-none');
$('#summary-tamanio-solapa').text($('#tamanio-solapas-cubierta').val() + ' mm');
} else {
$('#summary-tamanio-solapa-row').addClass('d-none');
$('#summary-tamanio-solapa').text('');
}
$('#summary-impresion-cubierta-row').removeClass('d-none');
$('#summary-impresion-cubierta').text($('#impresion-cubierta option:selected').text());
}
else{
$('.tapa-blanda-row').addClass('d-none');
$('.tapa-dura-row').removeClass('d-none');
$('#summary-papel-guardas').text($('#papel-guardas option:selected').text());
$('#summary-guardas-impresas').text($('#guardas-impresas option:selected').text());
$('#summary-cabezada').text($('#cabezada option:selected').text());
}
}
export function updatePapelCubierta() {
const $selected = $('.papel-cubierta.selected');
if ($selected.length > 0) {
const resumen = $selected.data('summary-text') || $selected.val();
$('#summary-papel-cubierta').text(resumen);
}
}
export function updateGramajeCubierta() {
const gramaje = $('input[name="gramaje-cubierta"]:checked');
if(gramaje.length > 0) {
$('#summary-gramaje-cubierta').text(gramaje.data('gramaje'));
}
}
export function updateAcabadoCubierta() {
const acabado = $('input[name="acabado-cubierta"]:checked');
if(acabado.length > 0) {
let labelText = '';
const id = acabado.attr('id');
if (id) {
labelText = $(`label[for="${id}"]`).text().trim();
}
// Caso 2: input dentro de label
if (!labelText) {
labelText = acabado.closest('label').text().trim();
}
$('#summary-acabado-cubierta').text(labelText);
}
}
export function updateSobreCubierta() {
if($('#sobrecubierta').hasClass('active')) {
$('#summary-sobrecubierta-papel-gramaje').text($('#papel-sobrecubierta option:selected').text());
$('#summary-sobrecubierta-tamanio-solapa').text($('#tamanio-solapas-sobrecubierta').val() + ' mm');
$('#summary-sobrecubierta-acabado').text($('#sobrecubierta-acabado option:selected').text());
}
}
export function updateFaja() {
if($('#faja').hasClass('active')) {
$('#summary-faja-papel-gramaje').text($('#papel-faja option:selected').text());
$('#summary-faja-alto-faja').text($('#alto-faja').val() + ' mm');
$('#summary-faja-tamanio-solapa').text($('#tamanio-solapas-faja').val() + ' mm');
$('#summary-faja-acabado').text($('#faja-acabado option:selected').text());
}
}