mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 00:48:49 +00:00
trabajando en el envio de los datos al backend para generar el resumen. no recibe bien el objeto presupuesto
This commit is contained in:
@ -535,4 +535,16 @@ public class Presupuesto implements Cloneable{
|
|||||||
public void setPresupuestoMaquetacionData(String presupuestoMaquetacionData) {
|
public void setPresupuestoMaquetacionData(String presupuestoMaquetacionData) {
|
||||||
this.presupuestoMaquetacionData = presupuestoMaquetacionData;
|
this.presupuestoMaquetacionData = presupuestoMaquetacionData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String resumenPresupuesto() {
|
||||||
|
return String.format("%s - %s - %dx%d mm - %d Páginas (N:%d C:%d) - Tira:%d",
|
||||||
|
this.titulo,
|
||||||
|
this.tipoEncuadernacion,
|
||||||
|
this.ancho,
|
||||||
|
this.alto,
|
||||||
|
this.paginasNegro + this.paginasColorTotal,
|
||||||
|
this.paginasNegro,
|
||||||
|
this.paginasColorTotal,
|
||||||
|
this.selectedTirada != null ? this.selectedTirada : 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -375,4 +375,10 @@ public class PresupuestoController {
|
|||||||
return ResponseEntity.ok(resultado);
|
return ResponseEntity.ok(resultado);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/public/getresumen")
|
||||||
|
public ResponseEntity<?> getResumen(Presupuesto presupuesto, @RequestParam HashMap<String, Object> summary, Locale locale) {
|
||||||
|
return ResponseEntity.ok(presupuestoService.getResumen(presupuesto, summary, locale));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -760,12 +760,15 @@ public class PresupuestoService {
|
|||||||
resultado.put("precio_unitario", precio_unidad);
|
resultado.put("precio_unitario", precio_unidad);
|
||||||
resultado.put("precio_total", pvp);
|
resultado.put("precio_total", pvp);
|
||||||
HashMap<String, String> language = new HashMap<>();
|
HashMap<String, String> language = new HashMap<>();
|
||||||
language.put("precio_unidad", messageSource.getMessage("presupuesto.marcapaginas.precio-unidad", null, locale));
|
language.put("precio_unidad",
|
||||||
language.put("precio_total", messageSource.getMessage("presupuesto.marcapaginas.precio-total", null, locale));
|
messageSource.getMessage("presupuesto.marcapaginas.precio-unidad", null, locale));
|
||||||
|
language.put("precio_total",
|
||||||
|
messageSource.getMessage("presupuesto.marcapaginas.precio-total", null, locale));
|
||||||
language.put("add_to_presupuesto",
|
language.put("add_to_presupuesto",
|
||||||
messageSource.getMessage("presupuesto.add-to-presupuesto", null, locale));
|
messageSource.getMessage("presupuesto.add-to-presupuesto", null, locale));
|
||||||
language.put("cancel", messageSource.getMessage("app.cancelar", null, locale));
|
language.put("cancel", messageSource.getMessage("app.cancelar", null, locale));
|
||||||
language.put("presupuesto_marcapaginas", messageSource.getMessage("presupuesto.marcapaginas", null, locale));
|
language.put("presupuesto_marcapaginas",
|
||||||
|
messageSource.getMessage("presupuesto.marcapaginas", null, locale));
|
||||||
resultado.put("language", language);
|
resultado.put("language", language);
|
||||||
return resultado;
|
return resultado;
|
||||||
|
|
||||||
@ -777,4 +780,22 @@ public class PresupuestoService {
|
|||||||
out.put("precio_total", 0.0);
|
out.put("precio_total", 0.0);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> getResumen(Presupuesto presupuesto, HashMap<String, Object> servicios, Locale locale) {
|
||||||
|
Map<String, Object> resumen = new HashMap<>();
|
||||||
|
|
||||||
|
resumen.put("titulo", presupuesto.getTitulo());
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Integer tirada = presupuesto.getSelectedTirada() != null ?
|
||||||
|
* presupuesto.getSelectedTirada() : 0;
|
||||||
|
* if (Arrays.asList(servicios).contains("deposito-legal")) {
|
||||||
|
* tirada += 4;
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
|
||||||
|
String textoResumen = messageSource.getMessage("presupuesto.resumen-texto", null, locale);
|
||||||
|
resumen.put("resumen", textoResumen);
|
||||||
|
return resumen;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -157,6 +157,9 @@ presupuesto.calcular-presupuesto=Calcular presupuesto
|
|||||||
presupuesto.consultar-soporte=Consultar con soporte
|
presupuesto.consultar-soporte=Consultar con soporte
|
||||||
|
|
||||||
# Pestaña resumen del presupuesto
|
# 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.volver-extras=Volver a extras
|
presupuesto.volver-extras=Volver a extras
|
||||||
|
|
||||||
# Resumen del presupuesto
|
# Resumen del presupuesto
|
||||||
|
|||||||
@ -213,7 +213,8 @@
|
|||||||
|
|
||||||
/* ===== Tiradas (pricing cards) ===== */
|
/* ===== Tiradas (pricing cards) ===== */
|
||||||
.tirada-card {
|
.tirada-card {
|
||||||
--il-accent: #92b2a7; /* verde grisáceo */
|
--il-accent: #92b2a7;
|
||||||
|
/* verde grisáceo */
|
||||||
--radius: 18px;
|
--radius: 18px;
|
||||||
--sel-scale-y: 1.12;
|
--sel-scale-y: 1.12;
|
||||||
/* cuánto más alta la seleccionada (crece arriba y abajo) */
|
/* cuánto más alta la seleccionada (crece arriba y abajo) */
|
||||||
@ -352,19 +353,23 @@
|
|||||||
|
|
||||||
|
|
||||||
.nav-link.active .bg-soft-primary {
|
.nav-link.active .bg-soft-primary {
|
||||||
background-color: #ffffff33 !important; /* #4c5c63 al 20% */
|
background-color: #ffffff33 !important;
|
||||||
|
/* #4c5c63 al 20% */
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-link.active .text-primary {
|
.nav-link.active .text-primary {
|
||||||
color: #ffffff !important; /* #4c5c63 al 20% */
|
color: #ffffff !important;
|
||||||
|
/* #4c5c63 al 20% */
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-link:not(.active) .bg-soft-primary {
|
.nav-link:not(.active) .bg-soft-primary {
|
||||||
background-color: #4c5c6366 !important; /* #4c5c63 al 20% */
|
background-color: #4c5c6366 !important;
|
||||||
|
/* #4c5c63 al 20% */
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-link:not(.active) .text-primary {
|
.nav-link:not(.active) .text-primary {
|
||||||
color: #000000 !important; /* #4c5c63 al 20% */
|
color: #000000 !important;
|
||||||
|
/* #4c5c63 al 20% */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* base */
|
/* base */
|
||||||
@ -376,20 +381,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* hover no seleccionado */
|
/* hover no seleccionado */
|
||||||
.btn-check-service + .btn-service-option:hover {
|
.btn-check-service+.btn-service-option:hover {
|
||||||
background-color: rgba(146, 178, 167, 0.3);
|
background-color: rgba(146, 178, 167, 0.3);
|
||||||
color: #92b2a7;
|
color: #92b2a7;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* seleccionado */
|
/* seleccionado */
|
||||||
.btn-check-service:checked + .btn-service-option {
|
.btn-check-service:checked+.btn-service-option {
|
||||||
background-color: #92b2a7;
|
background-color: #92b2a7;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border-color: #92b2a7;
|
border-color: #92b2a7;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hover estando seleccionado (que no se aclare) */
|
/* hover estando seleccionado (que no se aclare) */
|
||||||
.btn-check-service:checked + .btn-service-option:hover {
|
.btn-check-service:checked+.btn-service-option:hover {
|
||||||
background-color: #92b2a7;
|
background-color: #92b2a7;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
@ -408,3 +413,69 @@
|
|||||||
.form-switch-custom.form-switch-presupuesto .form-check-input:checked::before {
|
.form-switch-custom.form-switch-presupuesto .form-check-input:checked::before {
|
||||||
color: #92b2a7;
|
color: #92b2a7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ==== Paso al resumen ==== */
|
||||||
|
/* ---- Ajustes rápidos ---- */
|
||||||
|
/* Valores por defecto (col-9 / col-3 ≈ 75% / 25%) */
|
||||||
|
#presupuesto-row{
|
||||||
|
--main-col: 75%;
|
||||||
|
--summary-col: 25%;
|
||||||
|
--il-dur-main: 1.4s;
|
||||||
|
--il-dur-summary: .6s;
|
||||||
|
--il-delay-main: .15s; /* empieza un poco después */
|
||||||
|
--il-delay-summary: 0s;
|
||||||
|
--il-ease-main: cubic-bezier(.2,.8,.2,1);
|
||||||
|
--il-ease-summary: cubic-bezier(.4,0,.2,1);
|
||||||
|
--il-shift: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Forzamos que el ancho venga de las variables (y sea animable) */
|
||||||
|
@media (prefers-reduced-motion: no-preference){
|
||||||
|
#presupuesto-row .col-main{
|
||||||
|
flex: 0 0 var(--main-col) !important;
|
||||||
|
max-width: var(--main-col) !important;
|
||||||
|
transition:
|
||||||
|
flex-basis var(--il-dur-main) var(--il-ease-main) var(--il-delay-main),
|
||||||
|
max-width var(--il-dur-main) var(--il-ease-main) var(--il-delay-main);
|
||||||
|
}
|
||||||
|
#presupuesto-row .summary-col{
|
||||||
|
flex: 0 0 var(--summary-col) !important;
|
||||||
|
max-width: var(--summary-col) !important;
|
||||||
|
transition:
|
||||||
|
flex-basis var(--il-dur-summary) var(--il-ease-summary) var(--il-delay-summary),
|
||||||
|
max-width var(--il-dur-summary) var(--il-ease-summary) var(--il-delay-summary),
|
||||||
|
opacity var(--il-dur-summary) var(--il-ease-summary) var(--il-delay-summary),
|
||||||
|
transform var(--il-dur-summary) var(--il-ease-summary) var(--il-delay-summary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Estado expandido: cambiamos SOLO las variables (esto sí se anima) */
|
||||||
|
#presupuesto-row.expanded{
|
||||||
|
--main-col: 100%;
|
||||||
|
--summary-col: 0%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#presupuesto-row.expanded .summary-col{
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateX(var(--il-shift));
|
||||||
|
pointer-events: none;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1200px){
|
||||||
|
/* Evita que las columnas se vayan a la siguiente línea durante la animación */
|
||||||
|
#presupuesto-row{
|
||||||
|
display: flex; /* por si acaso algún wrapper cambia el display */
|
||||||
|
flex-wrap: nowrap; /* <-- clave */
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
/* Permite que las columnas puedan encoger sin forzar salto de línea */
|
||||||
|
#presupuesto-row .col-main,
|
||||||
|
#presupuesto-row .summary-col{
|
||||||
|
min-width: 0; /* <-- clave para que el contenido no fuerce ancho */
|
||||||
|
}
|
||||||
|
/* Opcional: evita “asomar” algo durante el slide */
|
||||||
|
#presupuesto-row .summary-col{
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1388,6 +1388,20 @@ class PresupuestoCliente {
|
|||||||
this.#changeTab('pills-seleccion-tirada');
|
this.#changeTab('pills-seleccion-tirada');
|
||||||
this.summaryTableExtras.addClass('d-none');
|
this.summaryTableExtras.addClass('d-none');
|
||||||
} else {
|
} else {
|
||||||
|
const data = Summary.getSummaryData();
|
||||||
|
$.ajax({
|
||||||
|
url: '/presupuesto/public/getresumen',
|
||||||
|
type: 'GET',
|
||||||
|
data: {
|
||||||
|
presupuesto: this.#getPresupuestoData(),
|
||||||
|
summary: data,
|
||||||
|
}
|
||||||
|
}).then((data) => {
|
||||||
|
console.log("Extras validados correctamente", data);
|
||||||
|
}).catch((error) => {
|
||||||
|
console.error("Error obtener resumen: ", error);
|
||||||
|
});
|
||||||
|
|
||||||
this.#changeTab('pills-resumen');
|
this.#changeTab('pills-resumen');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -1445,19 +1459,38 @@ class PresupuestoCliente {
|
|||||||
|
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
* EXTRAS
|
* RESUMEN
|
||||||
******************************/
|
******************************/
|
||||||
#initResumen() {
|
#initResumen() {
|
||||||
|
const $row = $('#presupuesto-row');
|
||||||
|
|
||||||
|
// 1) Transición al cambiar de pestaña (click o programático)
|
||||||
|
$(document).on('shown.bs.tab', '.custom-nav .nav-link', (e) => {
|
||||||
|
const targetSelector = $(e.target).data('bs-target'); // ej: "#pills-resumen"
|
||||||
|
if (targetSelector === '#pills-resumen') {
|
||||||
|
$row.addClass('expanded');
|
||||||
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||||
|
} else {
|
||||||
|
$row.removeClass('expanded');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 2) Botón "atrás" en Resumen
|
||||||
$(document).on('click', '.btn-change-tab-resumen', (e) => {
|
$(document).on('click', '.btn-change-tab-resumen', (e) => {
|
||||||
const id = e.currentTarget.id;
|
if (e.currentTarget.id === 'btn-prev-resumen') {
|
||||||
if (id === 'btn-prev-resumen') {
|
|
||||||
this.#changeTab('pills-extras');
|
this.#changeTab('pills-extras');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 3) Estado inicial si ya cargas en Resumen
|
||||||
|
$(function () {
|
||||||
|
const activeTarget = $('.custom-nav .nav-link.active').data('bs-target');
|
||||||
|
$('#presupuesto-row').toggleClass('expanded', activeTarget === '#pills-resumen');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
* END EXTRAS
|
* END RESUMEN
|
||||||
******************************/
|
******************************/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -152,7 +152,7 @@ export function updateExtras() {
|
|||||||
const price = $(`label[for="${$servicio.attr('id')}"] .service-price`).text().trim() || $servicio.attr('price');
|
const price = $(`label[for="${$servicio.attr('id')}"] .service-price`).text().trim() || $servicio.attr('price');
|
||||||
const $row = $('<tr>').append(
|
const $row = $('<tr>').append(
|
||||||
$('<td>').append($('<span>').text(resumen)),
|
$('<td>').append($('<span>').text(resumen)),
|
||||||
$('<td class="text-end">').text(price)
|
$('<td class="text-end data-summary" data-id-summary="servicio-' + $servicio.attr('id') + '">').text(price)
|
||||||
);
|
);
|
||||||
$tbody.append($row);
|
$tbody.append($row);
|
||||||
});
|
});
|
||||||
@ -162,3 +162,21 @@ export function updateExtras() {
|
|||||||
$table.addClass('d-none');
|
$table.addClass('d-none');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<div class="col-xl-3">
|
<div class="col-xl-3 summary-col">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
@ -20,19 +20,19 @@
|
|||||||
<td class="align-items-center">
|
<td class="align-items-center">
|
||||||
<span th:text="#{presupuesto.resumen-encuadernacion}"></span>
|
<span th:text="#{presupuesto.resumen-encuadernacion}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-encuadernacion" class="text-end">Fresado</td>
|
<td id="summary-encuadernacion" class="text-end data-summary" data-id-summary="encuadernacion">Fresado</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.formato}"></span>
|
<span th:text="#{presupuesto.formato}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-formato" class="text-end"></td>
|
<td id="summary-formato" class="text-end data-summary" data-id-summary="formato"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.paginas}"></span>
|
<span th:text="#{presupuesto.paginas}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-paginas" class="text-end"></td>
|
<td id="summary-paginas" class="text-end data-summary" data-id-summary="paginas"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ps-3">
|
<td class="ps-3">
|
||||||
@ -60,19 +60,19 @@
|
|||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.tipo-interior}"></span>
|
<span th:text="#{presupuesto.tipo-interior}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-tipo-interior" class="text-end"></td>
|
<td id="summary-tipo-interior" class="text-end data-summary" data-id-summary="tipo-interior"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.papel-interior}"></span>
|
<span th:text="#{presupuesto.papel-interior}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-papel-interior" class="text-end"></td>
|
<td id="summary-papel-interior" class="text-end data-summary" data-id-summary="papel-interior"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.gramaje-interior}"></span>
|
<span th:text="#{presupuesto.gramaje-interior}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-gramaje-interior" class="text-end"></td>
|
<td id="summary-gramaje-interior" class="text-end data-summary" data-id-summary="gramaje-interior"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -87,61 +87,61 @@
|
|||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.tipo-cubierta}"></span>
|
<span th:text="#{presupuesto.tipo-cubierta}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-tapa-cubierta" class="text-end"></td>
|
<td id="summary-tapa-cubierta" class="text-end data-summary" data-id-summary="tapa-cubierta"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="tapa-blanda-row d-none">
|
<tr class="tapa-blanda-row 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 data-summary" data-id-summary="cubierta-solapas"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="tapa-blanda-row d-none">
|
<tr class="tapa-blanda-row d-none">
|
||||||
<td class="ps-3">
|
<td class="ps-3">
|
||||||
<span class="ps-3" 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 data-summary" data-id-summary="tamanio-solapa"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="tapa-blanda-row d-none">
|
<tr class="tapa-blanda-row d-none">
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.impresion-cubierta}"></span>
|
<span th:text="#{presupuesto.impresion-cubierta}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-impresion-cubierta" class="text-end"></td>
|
<td id="summary-impresion-cubierta" class="text-end data-summary" data-id-summary="impresion-cubierta"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="tapa-dura-row d-none">
|
<tr class="tapa-dura-row d-none">
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.papel-guardas}"></span>
|
<span th:text="#{presupuesto.papel-guardas}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-papel-guardas" class="text-end"></td>
|
<td id="summary-papel-guardas" class="text-end data-summary" data-id-summary="papel-guardas"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="tapa-dura-row d-none">
|
<tr class="tapa-dura-row d-none">
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.guardas-impresas}"></span>
|
<span th:text="#{presupuesto.guardas-impresas}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-guardas-impresas" class="text-end"></td>
|
<td id="summary-guardas-impresas" class="text-end data-summary" data-id-summary="guardas-impresas"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="tapa-dura-row d-none">
|
<tr class="tapa-dura-row d-none">
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.cabezada}"></span>
|
<span th:text="#{presupuesto.cabezada}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-cabezada" class="text-end"></td>
|
<td id="summary-cabezada" class="text-end data-summary" data-id-summary="cabezada"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.papel-cubierta}"></span>
|
<span th:text="#{presupuesto.papel-cubierta}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-papel-cubierta" class="text-end"></td>
|
<td id="summary-papel-cubierta" class="text-end data-summary" data-id-summary="papel-cubierta"></td>
|
||||||
</tr>
|
</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 data-summary" data-id-summary="gramaje-cubierta"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.acabado}"></span>
|
<span th:text="#{presupuesto.acabado}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-acabado-cubierta" class="text-end"></td>
|
<td id="summary-acabado-cubierta" class="text-end data-summary" data-id-summary="acabado-cubierta"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -156,19 +156,19 @@
|
|||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.papel-gramaje}"></span>
|
<span th:text="#{presupuesto.papel-gramaje}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-sobrecubierta-papel-gramaje" class="text-end"></td>
|
<td id="summary-sobrecubierta-papel-gramaje" class="text-end data-summary" data-id-summary="sobrecubierta-papel-gramaje"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.tamanio-solapa}"></span>
|
<span th:text="#{presupuesto.tamanio-solapa}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-sobrecubierta-tamanio-solapa" class="text-end"></td>
|
<td id="summary-sobrecubierta-tamanio-solapa" class="text-end data-summary" data-id-summary="sobrecubierta-tamanio-solapa"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.acabado}"></span>
|
<span th:text="#{presupuesto.acabado}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-sobrecubierta-acabado" class="text-end"></td>
|
<td id="summary-sobrecubierta-acabado" class="text-end data-summary" data-id-summary="sobrecubierta-acabado"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -183,25 +183,25 @@
|
|||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.papel-gramaje}"></span>
|
<span th:text="#{presupuesto.papel-gramaje}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-faja-papel-gramaje" class="text-end"></td>
|
<td id="summary-faja-papel-gramaje" class="text-end data-summary" data-id-summary="faja-papel-gramaje"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.faja-alto}"></span>
|
<span th:text="#{presupuesto.faja-alto}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-faja-alto-faja" class="text-end"></td>
|
<td id="summary-faja-alto-faja" class="text-end data-summary" data-id-summary="faja-alto-faja"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.tamanio-solapa}"></span>
|
<span th:text="#{presupuesto.tamanio-solapa}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-faja-tamanio-solapa" class="text-end"></td>
|
<td id="summary-faja-tamanio-solapa" class="text-end data-summary" data-id-summary="faja-tamanio-solapa"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span th:text="#{presupuesto.acabado}"></span>
|
<span th:text="#{presupuesto.acabado}"></span>
|
||||||
</td>
|
</td>
|
||||||
<td id="summary-faja-acabado" class="text-end"></td>
|
<td id="summary-faja-acabado" class="text-end data-summary" data-id-summary="faja-acabado"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@ -7,8 +7,8 @@
|
|||||||
<div
|
<div
|
||||||
th:replace="imprimelibros/partials/modal-form :: modal('marcapaginasModal', 'presupuesto.marcapaginas', 'modal-md', 'marcapaginasModalBody')">
|
th:replace="imprimelibros/partials/modal-form :: modal('marcapaginasModal', 'presupuesto.marcapaginas', 'modal-md', 'marcapaginasModalBody')">
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row" id="presupuesto-row">
|
||||||
<div class="col-xl-9">
|
<div class="col-xl-9 col-main">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body checkout-tab">
|
<div class="card-body checkout-tab">
|
||||||
|
|
||||||
@ -118,7 +118,7 @@
|
|||||||
<div class="tab-pane fade" id="pills-resumen" role="tabpanel"
|
<div class="tab-pane fade" id="pills-resumen" role="tabpanel"
|
||||||
aria-labelledby="pills-resumen-tab">
|
aria-labelledby="pills-resumen-tab">
|
||||||
|
|
||||||
<div th:include="~{imprimelibros/presupuestos/presupuestador-items/_resumen.html}"></div>
|
<div th:include="~{imprimelibros/presupuestos/presupuestador-items/_resumen_final.html}"></div>
|
||||||
</div>
|
</div>
|
||||||
<!-- end tab pane -->
|
<!-- end tab pane -->
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user