corregidos varios problemas con los presupuestos (calculo envio base debido al peso de las guardas, resumen, etc)

This commit is contained in:
2025-06-16 20:19:39 +02:00
parent b2652fc277
commit 018119a3c3
5 changed files with 90 additions and 37 deletions

View File

@ -1213,7 +1213,7 @@ class Comparador {
}
const datosPedido = {
let datosPedido = {
paginas: paginas,
tirada: $('#tirada').val(),
merma: $('#merma').val(),
@ -1262,7 +1262,14 @@ class Comparador {
}
else if (uso == 'guardas') {
datos.datosPedido.isCosido = 1;
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
// y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
// o wire-o tapa dura, las guardas se imprimen como hojas sueltas
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
datos.datosPedido.isCosido = 1;
} else if (this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
datos.datosPedido.isCosido = 0;
}
datos.datosPedido.isHq = 1;
datos.paginas_color = datos.datosPedido.paginas;
datos.paginas_impresion = this.carasGuardas.val();
@ -1458,7 +1465,7 @@ class Comparador {
return;
}
if (this.tipo_impresion_id != 5 && this.tipo_impresion_id != 6 && this.tipo_impresion_id != 7 && this.tipo_impresion_id != 8 && this.tipo_impresion_id != 21) {
if (this.sobrecubierta.select2('data').length >0 && parseInt(this.sobrecubierta.select2('data')[0].id) == 1) {
if (this.sobrecubierta.select2('data').length > 0 && parseInt(this.sobrecubierta.select2('data')[0].id) == 1) {
datosComp.sobrecubierta = this.getDataForComp('sobrecubierta');
if (datosComp.sobrecubierta.error) {
return;

View File

@ -8,6 +8,9 @@ class PreviewFormasAdmin {
this.isCosido = $("#isCosido").val();
this.tipoTapa = tipoTapa;
this.tipo_impresion_id = parseInt($('#tipo_impresion_id').val());
// Container para el esquema de cubierta
this.preview = new preview($('#pv_ec_shape'), tipoLibro, tipoTapa, "fullImage", data);
}
@ -66,8 +69,18 @@ class PreviewFormasAdmin {
$('#tab-pv-guardas').on("click", function () {
let cosidoGuardas = false;
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
// y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
// o wire-o tapa dura, las guardas se imprimen como hojas sueltas
if (self.tipo_impresion_id == 1 || self.tipo_impresion_id == 3) {
cosidoGuardas = true;
} /*else if (self.tipo_impresion_id == 5 || self.tipo_impresion_id == 7) {
cosidoGuardas = false;
}*/
self.preview.setData(self.data);
self.preview.previewInteriorPlana('guardas', self.isCosido, self.tipoTapa.includes("dura") ? 1 : 0);
self.preview.previewInteriorPlana('guardas', cosidoGuardas, self.tipoTapa.includes("dura") ? 1 : 0);
});

View File

@ -214,8 +214,14 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen);
let importe_fijo = parseFloat(rowData.importe_fijo);
totalServicios += total_servicio
let base = self.roundToTwoDecimals((total_servicio-importe_fijo) / (1 + margen_servicio / 100.0));
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
let calculoMargen = self.roundToTwoDecimals((total_servicio-importe_fijo) / parseInt($('#tirada').val()));
calculoMargen = self.roundToTwoDecimals(calculoMargen / (1 + margen_servicio / 100.0));
calculoMargen = total_servicio - self.roundToTwoDecimals(calculoMargen * parseInt($('#tirada').val()));
margenServicios += calculoMargen
/*let base = self.roundToTwoDecimals((total_servicio-importe_fijo) / (1 + margen_servicio / 100.0));
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));*/
});
}

View File

@ -466,10 +466,10 @@ class PresupuestoCliente {
popErrorAlert("Presupuesto no válido, corrija los errores antes de guardar.");
}
else {
popSuccessAlert(response.message);
$('.is-invalid').removeClass('is-invalid');
const skAlert = document.getElementById('sk-alert');
skAlert.innerHTML = '';
popSuccessAlert(response.message);
}
}
@ -514,6 +514,8 @@ class PresupuestoCliente {
popAlert2Hide();
this.divTiradasPrecios.empty();
for (let i = 0; i < response.tiradas.length; i++) {
if (i == 0) {
$('#eb').val(response.eb[i]);
@ -555,7 +557,7 @@ class PresupuestoCliente {
$(window).scrollTop(0);
}
if (this.datos.cubierta.acabado)
if (this.datos.cubierta && this.datos.cubierta.acabado)
setTimeout(() => {
$(`#containerTiradasEnvios .tirada-envio input[tirada="${this.direcciones.tiradaSeleccionada}"]`).trigger('click');
}, 0);