mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-24 09:40:21 +00:00
faltan que no se reseteen los acabados de la cubierta
This commit is contained in:
@ -13,6 +13,7 @@ import org.springframework.http.ResponseEntity;
|
|||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
@ -88,6 +89,7 @@ public class PresupuestoController {
|
|||||||
@PostMapping("/public/validar/cubierta")
|
@PostMapping("/public/validar/cubierta")
|
||||||
public ResponseEntity<?> validarCubierta(
|
public ResponseEntity<?> validarCubierta(
|
||||||
@Validated(PresupuestoValidationGroups.Cubierta.class) Presupuesto presupuesto,
|
@Validated(PresupuestoValidationGroups.Cubierta.class) Presupuesto presupuesto,
|
||||||
|
@RequestParam(name = "calcular", defaultValue = "true") boolean calcular,
|
||||||
BindingResult result, Locale locale) {
|
BindingResult result, Locale locale) {
|
||||||
|
|
||||||
Map<String, String> errores = new HashMap<>();
|
Map<String, String> errores = new HashMap<>();
|
||||||
@ -102,20 +104,25 @@ public class PresupuestoController {
|
|||||||
return ResponseEntity.badRequest().body(errores);
|
return ResponseEntity.badRequest().body(errores);
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<String, Object> price = new HashMap<>();
|
if (calcular) {
|
||||||
String priceStr = apiClient.getPrice(presupuestoService.toSkApiRequest(presupuesto));
|
|
||||||
|
|
||||||
try {
|
HashMap<String, Object> price = new HashMap<>();
|
||||||
price = new ObjectMapper().readValue(priceStr, new TypeReference<>() {
|
String priceStr = apiClient.getPrice(presupuestoService.toSkApiRequest(presupuesto));
|
||||||
});
|
|
||||||
} catch (JsonProcessingException e) {
|
try {
|
||||||
price = new HashMap<>();
|
price = new ObjectMapper().readValue(priceStr, new TypeReference<>() {
|
||||||
price.put("error", messageSource.getMessage("presupuesto.error-obtener-precio", null, locale));
|
});
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
price = new HashMap<>();
|
||||||
|
price.put("error", messageSource.getMessage("presupuesto.error-obtener-precio", null, locale));
|
||||||
|
}
|
||||||
|
if (!price.containsKey("data")) {
|
||||||
|
return ResponseEntity.badRequest()
|
||||||
|
.body(messageSource.getMessage("presupuesto.error-obtener-precio", null, locale));
|
||||||
|
}
|
||||||
|
return ResponseEntity.ok(price.get("data"));
|
||||||
}
|
}
|
||||||
if (!price.containsKey("data")) {
|
return ResponseEntity.ok().build();
|
||||||
return ResponseEntity.badRequest().body(messageSource.getMessage("presupuesto.error-obtener-precio", null, locale));
|
|
||||||
}
|
|
||||||
return ResponseEntity.ok(price.get("data"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/public/validar/seleccion-tirada")
|
@PostMapping("/public/validar/seleccion-tirada")
|
||||||
|
|||||||
@ -158,6 +158,7 @@ presupuesto.cubierta-libro=Cubierta del libro
|
|||||||
presupuesto.extras-libro=Extras del libro
|
presupuesto.extras-libro=Extras del libro
|
||||||
presupuesto.paginas=Páginas
|
presupuesto.paginas=Páginas
|
||||||
presupuesto.solapas=Solapas
|
presupuesto.solapas=Solapas
|
||||||
|
presupuesto.papel-gramaje=Papel y gramaje
|
||||||
|
|
||||||
# Errores
|
# Errores
|
||||||
presupuesto.errores-title=Corrija los siguientes errores:
|
presupuesto.errores-title=Corrija los siguientes errores:
|
||||||
|
|||||||
@ -126,6 +126,9 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
// resumen
|
// resumen
|
||||||
this.summaryTableInterior = $('#summary-interior');
|
this.summaryTableInterior = $('#summary-interior');
|
||||||
|
this.summaryTableCubierta = $('#summary-cubierta');
|
||||||
|
this.summaryTableSobrecubierta = $('#summary-sobrecubierta');
|
||||||
|
this.summaryTableFaja = $('#summary-faja');
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
@ -141,6 +144,10 @@ class PresupuestoCliente {
|
|||||||
this.#loadCubiertaData();
|
this.#loadCubiertaData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Summary.updateEncuadernacion();
|
||||||
|
Summary.updateFormato();
|
||||||
|
Summary.updatePaginas();
|
||||||
|
|
||||||
|
|
||||||
this.#initInterior();
|
this.#initInterior();
|
||||||
this.#initSeleccionTirada();
|
this.#initSeleccionTirada();
|
||||||
@ -404,7 +411,7 @@ class PresupuestoCliente {
|
|||||||
this.posicionPaginasColor.val(this.formData.datosGenerales.posicionPaginasColor);
|
this.posicionPaginasColor.val(this.formData.datosGenerales.posicionPaginasColor);
|
||||||
|
|
||||||
this.formatoPersonalizado.prop('checked', this.formData.datosGenerales.formatoPersonalizado);
|
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.ancho.val(this.formData.datosGenerales.ancho);
|
||||||
this.alto.val(this.formData.datosGenerales.alto);
|
this.alto.val(this.formData.datosGenerales.alto);
|
||||||
}
|
}
|
||||||
@ -671,6 +678,15 @@ class PresupuestoCliente {
|
|||||||
this.fajaSobrecubierta.val(this.formData.cubierta.faja.acabado);
|
this.fajaSobrecubierta.val(this.formData.cubierta.faja.acabado);
|
||||||
|
|
||||||
this.#loadCubiertaData();
|
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');
|
this.#changeTab('pills-cover');
|
||||||
|
|
||||||
@ -844,6 +860,7 @@ class PresupuestoCliente {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.#getPapelesCubierta(e.currentTarget.id);
|
this.#getPapelesCubierta(e.currentTarget.id);
|
||||||
|
Summary.updateTapaCubierta();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.solapas-cubierta', (e) => {
|
$(document).on('click', '.solapas-cubierta', (e) => {
|
||||||
@ -858,6 +875,8 @@ class PresupuestoCliente {
|
|||||||
const dataToStore = this.#getCubiertaData();
|
const dataToStore = this.#getCubiertaData();
|
||||||
this.#updateCubiertaData(dataToStore);
|
this.#updateCubiertaData(dataToStore);
|
||||||
this.#cacheFormData();
|
this.#cacheFormData();
|
||||||
|
|
||||||
|
Summary.updateTapaCubierta();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.papel-cubierta', (e) => {
|
$(document).on('click', '.papel-cubierta', (e) => {
|
||||||
@ -881,6 +900,9 @@ class PresupuestoCliente {
|
|||||||
this.#updateCubiertaData(dataCubierta);
|
this.#updateCubiertaData(dataCubierta);
|
||||||
this.#cacheFormData();
|
this.#cacheFormData();
|
||||||
|
|
||||||
|
Summary.updatePapelCubierta();
|
||||||
|
Summary.updateGramajeCubierta();
|
||||||
|
|
||||||
}).fail((xhr, status, error) => {
|
}).fail((xhr, status, error) => {
|
||||||
console.error("Error al obtener los gramajes de interior: ", xhr.responseText);
|
console.error("Error al obtener los gramajes de interior: ", xhr.responseText);
|
||||||
});
|
});
|
||||||
@ -892,7 +914,7 @@ class PresupuestoCliente {
|
|||||||
const gramaje = parseInt($('#' + inputId).data('gramaje'));
|
const gramaje = parseInt($('#' + inputId).data('gramaje'));
|
||||||
this.formData.cubierta.gramajeCubierta = gramaje;
|
this.formData.cubierta.gramajeCubierta = gramaje;
|
||||||
this.#cacheFormData();
|
this.#cacheFormData();
|
||||||
|
Summary.updateGramajeCubierta();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('change', '.datos-cubierta', (e) => {
|
$(document).on('change', '.datos-cubierta', (e) => {
|
||||||
@ -906,6 +928,7 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
this.formData.cubierta.acabado = parseInt($(e.currentTarget).attr('sk-id')) || 1;
|
this.formData.cubierta.acabado = parseInt($(e.currentTarget).attr('sk-id')) || 1;
|
||||||
this.#cacheFormData();
|
this.#cacheFormData();
|
||||||
|
Summary.updateAcabadoCubierta();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.custom-toggle', (e) => {
|
$(document).on('click', '.custom-toggle', (e) => {
|
||||||
@ -914,16 +937,24 @@ class PresupuestoCliente {
|
|||||||
if ($target.hasClass('active')) {
|
if ($target.hasClass('active')) {
|
||||||
if ($target.attr('id') === 'sobrecubierta') {
|
if ($target.attr('id') === 'sobrecubierta') {
|
||||||
this.divSobrecubierta.removeClass('d-none');
|
this.divSobrecubierta.removeClass('d-none');
|
||||||
|
this.summaryTableSobrecubierta.removeClass('d-none');
|
||||||
|
Summary.updateSobreCubierta();
|
||||||
}
|
}
|
||||||
else if ($target.attr('id') === 'faja') {
|
else if ($target.attr('id') === 'faja') {
|
||||||
this.divFaja.removeClass('d-none');
|
this.divFaja.removeClass('d-none');
|
||||||
|
this.summaryTableFaja.removeClass('d-none');
|
||||||
|
Summary.updateFaja();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($target.attr('id') === 'sobrecubierta') {
|
if ($target.attr('id') === 'sobrecubierta') {
|
||||||
this.divSobrecubierta.addClass('d-none');
|
this.divSobrecubierta.addClass('d-none');
|
||||||
|
this.summaryTableSobrecubierta.addClass('d-none');
|
||||||
|
Summary.updateSobreCubierta();
|
||||||
}
|
}
|
||||||
else if ($target.attr('id') === 'faja') {
|
else if ($target.attr('id') === 'faja') {
|
||||||
this.divFaja.addClass('d-none');
|
this.divFaja.addClass('d-none');
|
||||||
|
this.summaryTableFaja.addClass('d-none');
|
||||||
|
Summary.updateFaja();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const dataToStore = this.#getCubiertaData();
|
const dataToStore = this.#getCubiertaData();
|
||||||
@ -931,16 +962,39 @@ class PresupuestoCliente {
|
|||||||
this.#cacheFormData();
|
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) => {
|
$('.btn-change-tab-cubierta').on('click', (e) => {
|
||||||
|
|
||||||
const data = this.#getPresupuestoData();
|
const data = this.#getPresupuestoData();
|
||||||
const id = e.currentTarget.id;
|
const id = e.currentTarget.id;
|
||||||
|
|
||||||
|
if (id === 'btn-prev-cubierta') {
|
||||||
|
data.calcular = false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data.calcular = true;
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/presupuesto/public/validar/cubierta',
|
url: '/presupuesto/public/validar/cubierta',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: data,
|
data: data,
|
||||||
success: (data) => {
|
success: (data) => {
|
||||||
if (id === 'btn-prev-cubierta') {
|
if (id === 'btn-prev-cubierta') {
|
||||||
|
this.summaryTableCubierta.addClass('d-none');
|
||||||
this.#changeTab('pills-inside');
|
this.#changeTab('pills-inside');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -965,6 +1019,12 @@ class PresupuestoCliente {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Eventos para el resumen
|
||||||
|
$(document).on('change', '.tapa-cubierta-summary', () => {
|
||||||
|
Summary.updateTapaCubierta();
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#getPapelesCubierta(tapa_id) {
|
#getPapelesCubierta(tapa_id) {
|
||||||
@ -1012,6 +1072,8 @@ class PresupuestoCliente {
|
|||||||
const dataToStore = this.#getCubiertaData();
|
const dataToStore = this.#getCubiertaData();
|
||||||
this.#updateCubiertaData(dataToStore);
|
this.#updateCubiertaData(dataToStore);
|
||||||
this.#cacheFormData();
|
this.#cacheFormData();
|
||||||
|
|
||||||
|
Summary.updatePapelCubierta();
|
||||||
},
|
},
|
||||||
error: (xhr, status, error) => {
|
error: (xhr, status, error) => {
|
||||||
console.error("Error al obtener los papeles de cubierta: ", xhr.responseText);
|
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++) {
|
for (let i = 0; i < gramajes.length; i++) {
|
||||||
const gramaje = gramajes[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
|
// Seleccionar el gramaje por defecto
|
||||||
if (this.formData.cubierta.gramajeCubierta === '' && i === 0) {
|
if (this.formData.cubierta.gramajeCubierta === '' && i === 0) {
|
||||||
@ -1123,6 +1185,8 @@ class PresupuestoCliente {
|
|||||||
// If not, select the first one by default
|
// If not, select the first one by default
|
||||||
this.divGramajeCubierta.find('input[type="radio"]').first().prop('checked', true);
|
this.divGramajeCubierta.find('input[type="radio"]').first().prop('checked', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Summary.updateGramajeCubierta();
|
||||||
}
|
}
|
||||||
|
|
||||||
#loadCubiertaData() {
|
#loadCubiertaData() {
|
||||||
@ -1189,6 +1253,9 @@ class PresupuestoCliente {
|
|||||||
this.solapasFaja.val(this.formData.cubierta.faja.tamanioSolapasFaja);
|
this.solapasFaja.val(this.formData.cubierta.faja.tamanioSolapasFaja);
|
||||||
this.altoFaja.val(this.formData.cubierta.faja.alto);
|
this.altoFaja.val(this.formData.cubierta.faja.alto);
|
||||||
this.acabadoFaja.val(this.formData.cubierta.faja.acabado);
|
this.acabadoFaja.val(this.formData.cubierta.faja.acabado);
|
||||||
|
|
||||||
|
Summary.updateTapaCubierta();
|
||||||
|
Summary.updateAcabadoCubierta();
|
||||||
}
|
}
|
||||||
/******************************
|
/******************************
|
||||||
* END CUBIERTA
|
* END CUBIERTA
|
||||||
|
|||||||
@ -58,13 +58,84 @@ export function updateGramajeInterior() {
|
|||||||
|
|
||||||
export function updateTapaCubierta(){
|
export function updateTapaCubierta(){
|
||||||
|
|
||||||
const $selected = $('.tipo-cubierta.selected');
|
const $selected = $('.tapa-cubierta.selected');
|
||||||
if ($selected.length > 0) {
|
if ($selected.length > 0) {
|
||||||
const resumen = $selected.data('summary-text') || $selected.attr('id');
|
const resumen = $selected.data('summary-text') || $selected.attr('id');
|
||||||
$('#summary-tapa-cubierta').text(resumen);
|
$('#summary-tapa-cubierta').text(resumen);
|
||||||
}
|
}
|
||||||
if($selected.attr('id') === 'tapaBlanda') {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
<div class="ribbon-content mt-4">
|
<div class="ribbon-content mt-4">
|
||||||
<div class="row justify-content-center imagen-container-group mt-3">
|
<div class="row justify-content-center imagen-container-group mt-3">
|
||||||
<div id="tapaBlanda" class="tapa-cubierta image-container imagen-selector selected">
|
<div id="tapaBlanda" class="tapa-cubierta image-container imagen-selector selected" th:attr="data-summary-text=#{presupuesto.tapa-blanda}">
|
||||||
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/tapa-blanda.png"
|
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/tapa-blanda.png"
|
||||||
alt="">
|
alt="">
|
||||||
<label for="titulo" class="form-label" th:text="#{presupuesto.tapa-blanda}">
|
<label for="titulo" class="form-label" th:text="#{presupuesto.tapa-blanda}">
|
||||||
@ -29,7 +29,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="tapaDura" class="tapa-cubierta image-container imagen-selector">
|
<div id="tapaDura" class="tapa-cubierta image-container imagen-selector" th:attr="data-summary-text=#{presupuesto.tapa-dura}">
|
||||||
<img class="image-presupuesto"
|
<img class="image-presupuesto"
|
||||||
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-recto.png" alt="">
|
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-recto.png" alt="">
|
||||||
<label class="form-label" th:text="#{presupuesto.tapa-dura}">
|
<label class="form-label" th:text="#{presupuesto.tapa-dura}">
|
||||||
@ -37,7 +37,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="tapaDuraLomoRedondo" class="tapa-cubierta image-container imagen-selector">
|
<div id="tapaDuraLomoRedondo" class="tapa-cubierta image-container imagen-selector" th:attr="data-summary-text=#{presupuesto.tapa-dura-lomo-redondo}">
|
||||||
<img class="image-presupuesto"
|
<img class="image-presupuesto"
|
||||||
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-redondo.png" alt="">
|
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-redondo.png" alt="">
|
||||||
<label class="form-label" th:text="#{presupuesto.tapa-dura-lomo-redondo}">
|
<label class="form-label" th:text="#{presupuesto.tapa-dura-lomo-redondo}">
|
||||||
@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
<!-- Bloque de solapas -->
|
<!-- Bloque de solapas -->
|
||||||
<div class="d-flex gap-3">
|
<div class="d-flex gap-3">
|
||||||
<div id="sin-solapas" class="image-container imagen-selector solapas-cubierta selected">
|
<div id="sin-solapas" class="image-container imagen-selector solapas-cubierta selected" th:attr="data-summary-text=#{app.no}">
|
||||||
<img class="image-presupuesto"
|
<img class="image-presupuesto"
|
||||||
src="/assets/images/imprimelibros/presupuestador/sinSolapasCubierta.png" alt="">
|
src="/assets/images/imprimelibros/presupuestador/sinSolapasCubierta.png" alt="">
|
||||||
<label class="form-label text-center d-block" th:text="#{presupuesto.sin-solapas}">
|
<label class="form-label text-center d-block" th:text="#{presupuesto.sin-solapas}">
|
||||||
@ -61,7 +61,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="con-solapas" class="image-container imagen-selector solapas-cubierta">
|
<div id="con-solapas" class="image-container imagen-selector solapas-cubierta" th:attr="data-summary-text=#{app.yes}">
|
||||||
<img class="image-presupuesto"
|
<img class="image-presupuesto"
|
||||||
src="/assets/images/imprimelibros/presupuestador/conSolapasCubierta.png" alt="">
|
src="/assets/images/imprimelibros/presupuestador/conSolapasCubierta.png" alt="">
|
||||||
<label class="form-label text-center d-block" th:text="#{presupuesto.con-solapas}">
|
<label class="form-label text-center d-block" th:text="#{presupuesto.con-solapas}">
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<label for="impresion-cubierta" class="form-label"
|
<label for="impresion-cubierta" class="form-label"
|
||||||
th:text="#{presupuesto.impresion-cubierta}">Impresión de cubierta</label>
|
th:text="#{presupuesto.impresion-cubierta}">Impresión de cubierta</label>
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<select class="form-select select2 datos-cubierta" id="impresion-cubierta">
|
<select class="form-select select2 datos-cubierta tapa-cubierta-summary" id="impresion-cubierta">
|
||||||
<option value="2" th:text="#{presupuesto.una-cara}">Una cara</option>
|
<option value="2" th:text="#{presupuesto.una-cara}">Una cara</option>
|
||||||
<option value="4" th:text="#{presupuesto.dos-caras}">Dos caras</option>
|
<option value="4" th:text="#{presupuesto.dos-caras}">Dos caras</option>
|
||||||
</select>
|
</select>
|
||||||
@ -94,7 +94,7 @@
|
|||||||
<label for="tamanio-solapas-cubierta" class="form-label"
|
<label for="tamanio-solapas-cubierta" class="form-label"
|
||||||
th:text="#{presupuesto.tamanio-solapa}">Tamaño solapa</label>
|
th:text="#{presupuesto.tamanio-solapa}">Tamaño solapa</label>
|
||||||
<input type="number"
|
<input type="number"
|
||||||
class="form-control form-control-sm solapas-presupuesto datos-cubierta"
|
class="form-control form-control-sm solapas-presupuesto datos-cubierta tapa-cubierta-summary"
|
||||||
id="tamanio-solapas-cubierta" min="60" max="120" value="80" step="1">
|
id="tamanio-solapas-cubierta" min="60" max="120" value="80" step="1">
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
<p class="mb-0">min: 60 mm</p>
|
<p class="mb-0">min: 60 mm</p>
|
||||||
@ -114,7 +114,7 @@
|
|||||||
<div class="col-auto mb-3">
|
<div class="col-auto mb-3">
|
||||||
<label for="papel-guardas" class="form-label" th:text="#{presupuesto.papel-guardas}">Papel de
|
<label for="papel-guardas" class="form-label" th:text="#{presupuesto.papel-guardas}">Papel de
|
||||||
guardas</label>
|
guardas</label>
|
||||||
<select class="form-select select2 datos-cubierta" id="papel-guardas">
|
<select class="form-select select2 datos-cubierta tapa-cubierta-summary" id="papel-guardas">
|
||||||
<optgroup th:label="#{presupuesto.offset}">
|
<optgroup th:label="#{presupuesto.offset}">
|
||||||
<option value="1" data-papel-id="3" data-gramaje="170"
|
<option value="1" data-papel-id="3" data-gramaje="170"
|
||||||
th:text="#{presupuesto.offset-blanco} + ' 170 gr'" selected>Offset blanco 170 gr
|
th:text="#{presupuesto.offset-blanco} + ' 170 gr'" selected>Offset blanco 170 gr
|
||||||
@ -131,7 +131,7 @@
|
|||||||
<div class="col-auto mb-3">
|
<div class="col-auto mb-3">
|
||||||
<label for="guardas-impresas" class="form-label" th:text="#{presupuesto.guardas-impresas}">Guardas
|
<label for="guardas-impresas" class="form-label" th:text="#{presupuesto.guardas-impresas}">Guardas
|
||||||
impresas</label>
|
impresas</label>
|
||||||
<select class="form-select select2 datos-cubierta" id="guardas-impresas">
|
<select class="form-select select2 datos-cubierta tapa-cubierta-summary" id="guardas-impresas">
|
||||||
<option value="0" th:text="#{presupuesto.no}" selected>No</option>
|
<option value="0" th:text="#{presupuesto.no}" selected>No</option>
|
||||||
<option value="4" th:text="#{presupuesto.una-cara}">Una cara</option>
|
<option value="4" th:text="#{presupuesto.una-cara}">Una cara</option>
|
||||||
<option value="8" th:text="#{presupuesto.dos-caras}">Dos caras</option>
|
<option value="8" th:text="#{presupuesto.dos-caras}">Dos caras</option>
|
||||||
@ -139,7 +139,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-auto mb-3">
|
<div class="col-auto mb-3">
|
||||||
<label for="cabezada" class="form-label" th:text="#{presupuesto.cabezada}">Cabezada</label>
|
<label for="cabezada" class="form-label" th:text="#{presupuesto.cabezada}">Cabezada</label>
|
||||||
<select class="form-select select2 datos-cubierta" id="cabezada">
|
<select class="form-select select2 datos-cubierta tapa-cubierta-summary" id="cabezada">
|
||||||
<option value="WHI" th:text="#{presupuesto.cabezada-blanca}" selected>Blanca</option>
|
<option value="WHI" th:text="#{presupuesto.cabezada-blanca}" selected>Blanca</option>
|
||||||
<option value="GRE" th:text="#{presupuesto.cabezada-verde}">Verde</option>
|
<option value="GRE" th:text="#{presupuesto.cabezada-verde}">Verde</option>
|
||||||
<option value="BLUE" th:text="#{presupuesto.cabezada-azul}">Azul</option>
|
<option value="BLUE" th:text="#{presupuesto.cabezada-azul}">Azul</option>
|
||||||
@ -271,7 +271,7 @@
|
|||||||
<div class="d-flex flex-column me-2">
|
<div class="d-flex flex-column me-2">
|
||||||
<label for="papel-sobrecubierta" class="form-label"
|
<label for="papel-sobrecubierta" class="form-label"
|
||||||
th:text="#{presupuesto.sobrecubierta-papel}">Papel</label>
|
th:text="#{presupuesto.sobrecubierta-papel}">Papel</label>
|
||||||
<select class="form-select select2 datos-cubierta w-auto" id="papel-sobrecubierta">
|
<select class="form-select select2 datos-cubierta sobrecubierta-item w-auto" id="papel-sobrecubierta">
|
||||||
<optgroup th:label="#{presupuesto.estucado}">
|
<optgroup th:label="#{presupuesto.estucado}">
|
||||||
<option selected value="2" data-papel-id="2" data-gramaje="170"
|
<option selected value="2" data-papel-id="2" data-gramaje="170"
|
||||||
th:text="#{presupuesto.estucado-mate} + ' 170 gr'">Estucado mate 170 gr
|
th:text="#{presupuesto.estucado-mate} + ' 170 gr'">Estucado mate 170 gr
|
||||||
@ -293,7 +293,7 @@
|
|||||||
<div class="d-flex flex-column me-2">
|
<div class="d-flex flex-column me-2">
|
||||||
<label for="tamanio-solapas-sobrecubierta" class="form-label"
|
<label for="tamanio-solapas-sobrecubierta" class="form-label"
|
||||||
th:text="#{presupuesto.sobrecubierta-solapas}">Tamaño solapas sobrecubierta</label>
|
th:text="#{presupuesto.sobrecubierta-solapas}">Tamaño solapas sobrecubierta</label>
|
||||||
<input type="number" class="form-control datos-cubierta w-auto"
|
<input type="number" class="form-control datos-cubierta sobrecubierta-item w-auto"
|
||||||
id="tamanio-solapas-sobrecubierta" min="60" max="120" value="80" step="1">
|
id="tamanio-solapas-sobrecubierta" min="60" max="120" value="80" step="1">
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
<p class="mb-0">min: 60 mm</p>
|
<p class="mb-0">min: 60 mm</p>
|
||||||
@ -304,7 +304,7 @@
|
|||||||
<div class="d-flex flex-column me-2">
|
<div class="d-flex flex-column me-2">
|
||||||
<label for="sobrecubierta-acabado" class="form-label"
|
<label for="sobrecubierta-acabado" class="form-label"
|
||||||
th:text="#{presupuesto.acabado}">Acabado</label>
|
th:text="#{presupuesto.acabado}">Acabado</label>
|
||||||
<select class="form-select select2 datos-cubierta w-auto" id="sobrecubierta-acabado">
|
<select class="form-select select2 datos-cubierta sobrecubierta-item w-auto" id="sobrecubierta-acabado">
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -333,7 +333,7 @@
|
|||||||
<div class="d-flex flex-column me-2">
|
<div class="d-flex flex-column me-2">
|
||||||
<label for="papel-faja" class="form-label"
|
<label for="papel-faja" class="form-label"
|
||||||
th:text="#{presupuesto.faja-papel}">Papel</label>
|
th:text="#{presupuesto.faja-papel}">Papel</label>
|
||||||
<select class="form-select select2 datos-cubierta w-auto" id="papel-faja">
|
<select class="form-select select2 datos-cubierta faja-item w-auto" id="papel-faja">
|
||||||
<optgroup th:label="#{presupuesto.estucado}">
|
<optgroup th:label="#{presupuesto.estucado}">
|
||||||
<option selected value="2" data-papel-id="2" data-gramaje="170"
|
<option selected value="2" data-papel-id="2" data-gramaje="170"
|
||||||
th:text="#{presupuesto.estucado-mate} + ' 170 gr'">Estucado mate 170 gr
|
th:text="#{presupuesto.estucado-mate} + ' 170 gr'">Estucado mate 170 gr
|
||||||
@ -355,7 +355,7 @@
|
|||||||
<div class="d-flex flex-column me-2">
|
<div class="d-flex flex-column me-2">
|
||||||
<label for="alto-faja" class="form-label"
|
<label for="alto-faja" class="form-label"
|
||||||
th:text="#{presupuesto.faja-alto}">Alto faja</label>
|
th:text="#{presupuesto.faja-alto}">Alto faja</label>
|
||||||
<input type="number" class="form-control datos-cubierta w-auto"
|
<input type="number" class="form-control datos-cubierta faja-item w-auto"
|
||||||
id="alto-faja" min="50" max="120" value="80" step="1">
|
id="alto-faja" min="50" max="120" value="80" step="1">
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
<p class="mb-0">min: 50 mm</p>
|
<p class="mb-0">min: 50 mm</p>
|
||||||
@ -366,7 +366,7 @@
|
|||||||
<div class="d-flex flex-column me-2">
|
<div class="d-flex flex-column me-2">
|
||||||
<label for="tamanio-solapas-faja" class="form-label"
|
<label for="tamanio-solapas-faja" class="form-label"
|
||||||
th:text="#{presupuesto.faja-solapas}">Tamaño solapas faja</label>
|
th:text="#{presupuesto.faja-solapas}">Tamaño solapas faja</label>
|
||||||
<input type="number" class="form-control datos-cubierta w-auto"
|
<input type="number" class="form-control datos-cubierta faja-item w-auto"
|
||||||
id="tamanio-solapas-faja" min="60" max="120" value="80" step="1">
|
id="tamanio-solapas-faja" min="60" max="120" value="80" step="1">
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
<p class="mb-0">min: 60 mm</p>
|
<p class="mb-0">min: 60 mm</p>
|
||||||
@ -377,7 +377,7 @@
|
|||||||
<div class="d-flex flex-column me-2">
|
<div class="d-flex flex-column me-2">
|
||||||
<label for="faja-acabado" class="form-label"
|
<label for="faja-acabado" class="form-label"
|
||||||
th:text="#{presupuesto.acabado}">Acabado</label>
|
th:text="#{presupuesto.acabado}">Acabado</label>
|
||||||
<select class="form-select select2 datos-cubierta w-auto" id="faja-acabado">
|
<select class="form-select select2 datos-cubierta faja-item w-auto" id="faja-acabado">
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<div class="col-xl-4">
|
<div class="col-xl-3">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
@ -87,35 +87,124 @@
|
|||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.tipo-cubierta}"></span>
|
<span th:text="#{presupuesto.tipo-cubierta}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-tipo-cubierta" class="text-end"></td>
|
<td id="summary-tapa-cubierta" class="text-end"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="summary-cubierta-solapas-row" class="d-none">
|
<tr class="tapa-blanda-row d-none">
|
||||||
<td>
|
|
||||||
<span th:text="#{presupuesto.papel-cubierta}"></span>
|
|
||||||
</td>
|
|
||||||
<td id="summary-cubierta-solapas" class="text-end"></td>
|
|
||||||
</tr>
|
|
||||||
<tr id="summary-cubierta-solapas-row" class="d-none">
|
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.solapas}"></span>
|
<span th:text="#{presupuesto.solapas}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-cubierta-solapas" class="text-end"></td>
|
<td id="summary-cubierta-solapas" class="text-end"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="summary-tamanio-solapa-row" class="d-none">
|
<tr class="tapa-blanda-row d-none">
|
||||||
<td>
|
<td class="ps-3">
|
||||||
<span th:text="#{presupuesto.tamanio-solapa}"></span>
|
<span class="ps-3" th:text="#{presupuesto.tamanio-solapa}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-tamanio-solapa" class="text-end"></td>
|
<td id="summary-tamanio-solapa" class="text-end"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="tapa-blanda-row d-none">
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.impresion-cubierta}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-impresion-cubierta" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tapa-dura-row d-none">
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.papel-guardas}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-papel-guardas" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tapa-dura-row d-none">
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.guardas-impresas}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-guardas-impresas" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tapa-dura-row d-none">
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.cabezada}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-cabezada" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.papel-cubierta}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-papel-cubierta" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.gramaje-cubierta}"></span>
|
<span th:text="#{presupuesto.gramaje-cubierta}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-gramaje-cubierta" class="text-end"></td>
|
<td id="summary-gramaje-cubierta" class="text-end"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.acabado}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-acabado-cubierta" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table id="summary-sobrecubierta" class="table table-responsive align-middle mb-0 d-none">
|
||||||
|
<thead class="table-light">
|
||||||
|
<tr>
|
||||||
|
<th th:text="#{presupuesto.sobrecubierta}" scope="col" colspan="2">Sobrecubierta</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.papel-gramaje}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-sobrecubierta-papel-gramaje" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.tamanio-solapa}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-sobrecubierta-tamanio-solapa" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.acabado}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-sobrecubierta-acabado" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table id="summary-faja" class="table table-responsive align-middle mb-0 d-none">
|
||||||
|
<thead class="table-light">
|
||||||
|
<tr>
|
||||||
|
<th th:text="#{presupuesto.faja}" scope="col" colspan="2">Faja</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.papel-gramaje}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-faja-papel-gramaje" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.faja-alto}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-faja-alto-faja" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.tamanio-solapa}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-faja-tamanio-solapa" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span th:text="#{presupuesto.acabado}"></span>
|
||||||
|
</td>
|
||||||
|
<td id="summary-faja-acabado" class="text-end"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- end card body -->
|
<!-- end card body -->
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<div th:fragment="presupuestador">
|
<div th:fragment="presupuestador">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xl-8">
|
<div class="col-xl-9">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body checkout-tab">
|
<div class="card-body checkout-tab">
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user