mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-19 23:30:20 +00:00
añadida carga de datos de cache en formularios
This commit is contained in:
@ -59,6 +59,38 @@ class PresupuestoCliente {
|
||||
acabado: 0
|
||||
}
|
||||
},
|
||||
servicios: {
|
||||
servicios: [],
|
||||
datosMarcaPaginas: {
|
||||
marcapaginas_tirada: 100,
|
||||
tamanio_maquetacion: '_50x140_',
|
||||
caras_impresion: 'una_cara',
|
||||
papel_marcapaginas: 'cartulina_grafica',
|
||||
gramaje_marcapaginas: 300,
|
||||
acabado_marcapaginas: 'ninguno',
|
||||
resultado: {
|
||||
precio_unitario: 0,
|
||||
precio_total: 0
|
||||
}
|
||||
},
|
||||
datosMaquetacion: {
|
||||
num_caracteres: 200000,
|
||||
formato_maquetacion: 'A5',
|
||||
cuerpo_texto: 'medium',
|
||||
num_columnas: 1,
|
||||
num_tablas: 0,
|
||||
num_fotos: 0,
|
||||
correccion_ortotipografica: false,
|
||||
texto_mecanografiado: false,
|
||||
disenio_portada: false,
|
||||
epub: false,
|
||||
resultado: {
|
||||
num_paginas_estimadas: 0,
|
||||
precio_pagina_estimado: 0,
|
||||
precio: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
selectedTirada: null,
|
||||
}
|
||||
|
||||
@ -236,8 +268,9 @@ class PresupuestoCliente {
|
||||
contenedor.append(label);
|
||||
}
|
||||
|
||||
|
||||
/******************************
|
||||
* END OF DATOS GENERALES
|
||||
* DATOS GENERALES
|
||||
******************************/
|
||||
#initDatosGenerales() {
|
||||
|
||||
@ -1087,7 +1120,7 @@ class PresupuestoCliente {
|
||||
|
||||
const tipoCubierta = $('.tapa-cubierta.selected').attr('id') || 'tapaBlanda';
|
||||
const solapas = $('.solapas-cubierta.selected').id == 'sin-solapas' ? 0 : 1 || 0;
|
||||
const tamanioSolapas = $('#tamanio-solapas-cubierta').val() || '80';
|
||||
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;
|
||||
@ -1111,7 +1144,7 @@ class PresupuestoCliente {
|
||||
return {
|
||||
tipoCubierta: tipoCubierta,
|
||||
solapas: solapas,
|
||||
tamanioSolapas: tamanioSolapas,
|
||||
tamanioSolapasCubierta: tamanioSolapasCubierta,
|
||||
cubiertaCaras: cubiertaCaras,
|
||||
guardasPapelId: guardasPapelId,
|
||||
guardasGramaje: guardasGramaje,
|
||||
@ -1142,7 +1175,7 @@ class PresupuestoCliente {
|
||||
|
||||
this.formData.cubierta.tipoCubierta = data.tipoCubierta;
|
||||
this.formData.cubierta.solapas = data.solapas;
|
||||
this.formData.cubierta.tamanioSolapas = data.tamanioSolapas;
|
||||
this.formData.cubierta.tamanioSolapasCubierta = data.tamanioSolapasCubierta;
|
||||
this.formData.cubierta.cubiertaCaras = data.cubiertaCaras;
|
||||
this.formData.cubierta.guardasPapelId = data.guardasPapelId;
|
||||
this.formData.cubierta.guardasGramaje = data.guardasGramaje;
|
||||
@ -1219,7 +1252,7 @@ class PresupuestoCliente {
|
||||
$(`.solapas-cubierta#con-solapas`).addClass('selected');
|
||||
this.divSolapasCubierta.removeClass('d-none');
|
||||
this.carasImpresionCubierta.val(this.formData.cubierta.cubiertaCaras);
|
||||
this.tamanioSolapasCubierta.val(this.formData.cubierta.tamanioSolapas);
|
||||
this.tamanioSolapasCubierta.val(this.formData.cubierta.tamanioSolapasCubierta);
|
||||
}
|
||||
|
||||
this.carasImpresionCubierta.val(this.formData.cubierta.cubiertaCaras);
|
||||
@ -1361,6 +1394,7 @@ class PresupuestoCliente {
|
||||
// Eventos para el resumen
|
||||
$(document).on('change', '.service-checkbox', (e) => {
|
||||
Summary.updateExtras();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -3,10 +3,12 @@ import { formateaMoneda } from "../utils.js";
|
||||
|
||||
|
||||
$(document).on('change', '#maquetacion', function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
if ($('#maquetacion').is(':checked')) {
|
||||
$.get("/presupuesto/public/maquetacion/form", function (data) {
|
||||
$("#maquetacionModalBody").html(data);
|
||||
loadMaquetacionData();
|
||||
$("#maquetacionModal").modal("show");
|
||||
});
|
||||
} else {
|
||||
@ -18,7 +20,9 @@ $(document).on('change', '#maquetacion', function (e) {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).on("submit", "#maquetacionForm", function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
const $form = $(this);
|
||||
@ -34,16 +38,15 @@ $(document).on("submit", "#maquetacionForm", function (e) {
|
||||
const modal = bootstrap.Modal.getInstance(modalEl) || new bootstrap.Modal(modalEl);
|
||||
modal.hide();
|
||||
|
||||
|
||||
const resumenHtml = `
|
||||
<div class="text-start">
|
||||
<p>${json.language.num_paginas_estimadas || 'Páginas calculadas'}: ${json.numPaginasEstimadas ?? "-"}</p>
|
||||
<p>${json.language.precio_por_pagina_estimado || 'Precio por página estimado'}: ${formateaMoneda(json.precioPaginaEstimado) || "-"}</p>
|
||||
<hr class="my-2">
|
||||
${json.precio ?
|
||||
`<h3 class="mb-0"><strong>Precio:</strong> ${formateaMoneda(json.precio)}</h3>` : ""}
|
||||
</div>
|
||||
`;
|
||||
<div class="text-start">
|
||||
<p>${json.language.num_paginas_estimadas || 'Páginas calculadas'}: ${json.numPaginasEstimadas ?? "-"}</p>
|
||||
<p>${json.language.precio_por_pagina_estimado || 'Precio por página estimado'}: ${formateaMoneda(json.precioPaginaEstimado) || "-"}</p>
|
||||
<hr class="my-2">
|
||||
${json.precio ?
|
||||
`<h3 class="mb-0"><strong>Precio:</strong> ${formateaMoneda(json.precio)}</h3>` : ""}
|
||||
</div>
|
||||
`;
|
||||
|
||||
Swal.fire({
|
||||
title: json.language.presupuesto_maquetacion || 'Presupuesto Maquetación',
|
||||
@ -66,6 +69,13 @@ $(document).on("submit", "#maquetacionForm", function (e) {
|
||||
$('label[for="maquetacion"] .service-price')
|
||||
.text(formateaMoneda(json.precio));
|
||||
Summary.updateExtras();
|
||||
|
||||
// guardamos los datos del formulario en sessionStorage
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
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;
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
else {
|
||||
const calcularStr = $('#div-extras').data('language-calcular');
|
||||
@ -108,3 +118,43 @@ $(document).on('hidden.bs.modal', '#maquetacionModal', function () {
|
||||
$('label[for="maquetacion"] .service-price').text(calcularStr);
|
||||
});
|
||||
|
||||
|
||||
$(document).on('change', '.maquetacion-item', () => {
|
||||
|
||||
saveMaquetacionData();
|
||||
});
|
||||
|
||||
|
||||
function loadMaquetacionData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData")).servicios.datosMaquetacion;
|
||||
$('#num-caracteres').val(stored.num_caracteres);
|
||||
$('#formato-maquetacion').val(stored.formato_maquetacion);
|
||||
$('#cuerpo-texto').val(stored.cuerpo_texto);
|
||||
$('#num-columnas').val(stored.num_columnas);
|
||||
$('#num-tablas').val(stored.num_tablas);
|
||||
$('#num-fotos').val(stored.num_fotos);
|
||||
$('#correccion-ortotipografica').prop('checked', stored.correccion_ortotipografica);
|
||||
$('#texto-mecanografiado').prop('checked', stored.texto_mecanografiado);
|
||||
$('#disenio-portada').prop('checked', stored.disenio_portada);
|
||||
$('#epub').prop('checked', stored.epub);
|
||||
}
|
||||
|
||||
|
||||
function saveMaquetacionData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
stored.servicios.datosMaquetacion.num_caracteres = parseInt($('#num-caracteres').val()) || 0;
|
||||
stored.servicios.datosMaquetacion.formato_maquetacion = $('#formato-maquetacion').val() || 'A5';
|
||||
stored.servicios.datosMaquetacion.cuerpo_texto = $('#cuerpo-texto').val() || 'medium';
|
||||
stored.servicios.datosMaquetacion.num_columnas = parseInt($('#num-columnas').val()) || 1;
|
||||
stored.servicios.datosMaquetacion.num_tablas = parseInt($('#num-tablas').val()) || 0;
|
||||
stored.servicios.datosMaquetacion.num_fotos = parseInt($('#num-fotos').val()) || 0;
|
||||
stored.servicios.datosMaquetacion.correccion_ortotipografica = $('#correccion-ortotipografica').is(':checked');
|
||||
stored.servicios
|
||||
.datosMaquetacion.texto_mecanografiado = $('#texto-mecanografiado').is(':checked');
|
||||
stored.servicios.datosMaquetacion.disenio_portada = $('#disenio-portada').is(':checked');
|
||||
stored.servicios.datosMaquetacion.epub = $('#epub').is(':checked');
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
|
||||
|
||||
@ -7,6 +7,8 @@ $(document).on('change', '#marcapaginas', function (e) {
|
||||
$.get("/presupuesto/public/marcapaginas/form", function (data) {
|
||||
$("#marcapaginasModalBody").html(data);
|
||||
|
||||
loadMarcapaginasData();
|
||||
|
||||
// init marcapaginas form
|
||||
filtrarAcabados();
|
||||
$("#marcapaginasModal").modal("show");
|
||||
@ -65,6 +67,12 @@ $(document).on("submit", "#marcapaginasForm", function (e) {
|
||||
$('label[for="marcapaginas"] .service-price')
|
||||
.text(formateaMoneda(json.precio_total));
|
||||
Summary.updateExtras();
|
||||
|
||||
// guardamos los datos del formulario en sessionStorage
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
stored.servicios.datosMarcapaginas.resultado.precio_unitario = json.precio_unidad;
|
||||
stored.servicios.datosMarcapaginas.resultado.precio_total = json.precio_total;
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
else {
|
||||
const calcularStr = $('#div-extras').data('language-calcular');
|
||||
@ -139,5 +147,37 @@ function filtrarAcabados() {
|
||||
}
|
||||
|
||||
|
||||
$(document).on('change', '.marcapaginas-item', () => {
|
||||
|
||||
saveMarcapaginasData();
|
||||
});
|
||||
|
||||
|
||||
function loadMarcapaginasData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData")).servicios.datosMarcapaginas;
|
||||
$('#marcapaginas-tirada').val(stored.marcapaginas_tirada);
|
||||
$('#tamanio-maquetacion').val(stored.tamanio_maquetacion);
|
||||
$('#caras-impresion').val(stored.caras_impresion);
|
||||
$('#papel-marcapaginas').val(stored.papel_marcapaginas);
|
||||
$('#gramaje-marcapaginas').val(stored.gramaje_marcapaginas);
|
||||
$('#num-fotos').val(stored.num_fotos);
|
||||
$('#acabado-marcapaginas').prop('checked', stored.acabado_marcapaginas);
|
||||
}
|
||||
|
||||
|
||||
function saveMarcapaginasData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
stored.servicios.datosMarcapaginas.marcapaginas_tirada = parseInt($('#marcapaginas-tirada').val()) || 100;
|
||||
stored.servicios.datosMarcapaginas.tamanio_maquetacion = $('#tamanio-maquetacion').val() || '_50x140_';
|
||||
stored.servicios.datosMarcapaginas.caras_impresion = $('#caras-impresion').val() || 'una_cara';
|
||||
stored.servicios.datosMarcapaginas.papel_marcapaginas = $('#papel-marcapaginas').val() || 'cartulina_grafica';
|
||||
stored.servicios.datosMarcapaginas.gramaje_marcapaginas = parseInt($('#gramaje-marcapaginas').val()) || 300;
|
||||
stored.servicios.datosMarcapaginas.num_fotos = parseInt($('#num-fotos').val()) || 0;
|
||||
stored.servicios.datosMarcapaginas.acabado_marcapaginas = $('#acabado-marcapaginas').val() || 'ninguno';
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user