arreglados multiples fallos de presupuesto admin y problema en los forms de las tarifas

This commit is contained in:
2025-01-29 20:42:19 +01:00
parent 7e3d1d5df4
commit 2871326989
9 changed files with 202 additions and 75 deletions

View File

@ -382,14 +382,35 @@ class PresupuestoAdminEdit {
).get();
}
/*
calcularSolapas() {
this.#getDatos(false, true);
if (Object.values(this.datos).every(this.#isValidDataForm)) {
new Ajax('/presupuestocliente/calcularsolapas',
this.datos,
{},
(response) => {
if (response === null || response === undefined || response === "") {
console.error("Error en el calculo máximo de solapas.");
return;
}
this.disenioCubierta.tamanioSolapasCubierta.attr('max', response);
this.disenioCubierta.solapasSobrecubierta.attr('max', response);
this.disenioCubierta.textoSolapasCubierta.text("Entre 60 y " + response + " mm");
this.disenioCubierta.textoSolapasSobrecubierta.text("Entre 60 y " + response + " mm");
},
() => { }
).post();
}
}*/
checkPaginasPresupuesto() {
let cantidad_total = 0;
// TO-DO
/*
tableLineasPresupuesto.rows().every(function (rowIdx, tableLoop, rowLoop) {
this.lineasPresupuesto.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
var rowData = this.data();
if (rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas')
cantidad_total += parseInt(rowData.paginas)
@ -409,7 +430,54 @@ class PresupuestoAdminEdit {
</div>
</div>`;
}
$('#divAlarmasLineasPresupuesto').html(htmlString)*/
$('#divAlarmasLineasPresupuesto').html(htmlString)
}
getPaginasColor(){
let paginasColor = 0;
this.lineasPresupuesto.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
var rowData = this.data();
if (rowData.row_id === 'lp_color' || rowData.row_id === 'lp_colorhq') {
return parseInt(rowData.paginas);
}
if(rowData.row_id === 'lp_rot_color'){
return parseInt(rowData.numPagColor);
}
});
return paginasColor;
}
calcularSolapas() {
let datos = {
cliente_id: this.datosGenerales.cliente.getVal(),
tirada: this.datosGenerales.tirada.val(),
tamanio: this.getDimensionLibro(),
paginas: this.datosLibro.paginas.val(),
//paginasColor:
}
/*if (Object.values(this.datos).every(this.#isValidDataForm)) {
new Ajax('/presupuestocliente/calcularsolapas',
this.datos,
{},
(response) => {
if (response === null || response === undefined || response === "") {
console.error("Error en el calculo máximo de solapas.");
return;
}
this.disenioCubierta.tamanioSolapasCubierta.attr('max', response);
this.disenioCubierta.solapasSobrecubierta.attr('max', response);
this.disenioCubierta.textoSolapasCubierta.text("Entre 60 y " + response + " mm");
this.disenioCubierta.textoSolapasSobrecubierta.text("Entre 60 y " + response + " mm");
},
() => { }
).post();
}*/
}
getDimensionLibro() {

View File

@ -225,7 +225,7 @@ class DatosLibro {
}, 100);
// para que se actualice el comparador
$('paginas').trigger('change');
this.updateComparador();
}
changeAnchoSolapasCubierta(){
@ -238,7 +238,7 @@ class DatosLibro {
}
// para que se actualice el comparador
$('paginas').trigger('change');
this.updateComparador();
}
@ -269,7 +269,7 @@ class DatosLibro {
}
// para que se actualice el comparador
$('paginas').trigger('change');
this.updateComparador();
}
@ -332,10 +332,29 @@ class DatosLibro {
}
}
updateComparador(){
if($("#compPaginasNegro").hasClass('d-none')){
$('#compPaginasNegrohq').trigger('change');
}
else{
$('#compPaginasNegro').trigger('change');
}
$('#compCarasCubierta').trigger('change');
if($('#compSobrecubierta').length){
$('#compSobrecubierta').trigger('change');
}
if($('#compCarasGuardas').length){
$('#compCarasGuardas').trigger('change');
}
}
changeTirada(update_tiradas_alternativas = true) {
this.calcular_mermas()
this.calcular_mermas();
this.updateComparador();
const url2 = window.location.href;
const url_parts2 = url2.split('/');

View File

@ -108,7 +108,7 @@ class Envios {
$("#costeEnvios").text(total.toFixed(2) + "€" || "0€");
self.check_unidades_enviadas();
self.check_unidades_enviadas(null, self.recogerTaller.prop('checked'));
}
});
@ -169,11 +169,10 @@ class Envios {
self.modalYesNo.init();
self.modalYesNo.show(() => {
self.table.clear().draw();
self.check_unidades_enviadas();
self.check_unidades_enviadas(null, true);
self.recogerTaller.prop('checked', true);
self.modalYesNo.hide();
self.insertarEnvio.addClass('d-none');
self.modalYesNo.hide();
});
}
else {
@ -641,7 +640,11 @@ class Envios {
}
}
check_unidades_enviadas() {
check_unidades_enviadas(event, recogerTaller = null) {
if(recogerTaller === null) {
recogerTaller = this.recogerTaller.prop('checked');
}
let cantidad_total = 0
this.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
@ -650,7 +653,7 @@ class Envios {
const tirada = parseInt($('#tirada').val());
let htmlString = '';
if (cantidad_total < tirada && this.recogerTaller.prop('checked') === false) {
if (cantidad_total < tirada && recogerTaller === false) {
htmlString = `
<div class="alert alert-warning d-flex align-items-baseline" role="alert">
<span class="alert-icon alert-icon-lg text-primary me-2">

View File

@ -320,7 +320,9 @@ class ServiciosAcabado {
},
{
data: 'precio_total', render: function (data, type, row) {
const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
let total = 0;
if(data !==undefined)
total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
<input class="update-totales-servicios form-control" id="precio_acabado_${row.tarifa_id}" value="${total}"></input>`;
}
@ -644,9 +646,11 @@ class ServiciosPreimpresion {
{
data: 'precio', render: function (data, type, row) {
const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
let total = 0;
if(data !==undefined)
total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
<input class="update-totales-servicios form-control" id="precio_preimpresion_${row.tarifa_id}" value="${total}"></input>`;
<input class="update-totales-servicios totales-preimpresion form-control" id="precio_preimpresion_${row.tarifa_id}" value="${total}"></input>`;
}
},
@ -675,6 +679,22 @@ class ServiciosPreimpresion {
});
$('#tableOfServiciosPreimpresion tbody').on('change', '.totales-preimpresion', function () {
let input = $(this);
let tarifa_id = input.attr('id').replace('precio_preimpresion_', '');
let newValue = parseFloat(input.val().replace(/\./g, '').replace(',', '.')) || 0;
let table = $('#tableOfServiciosPreimpresion').DataTable();
let row = table.rows().data().toArray().find(r => r.tarifa_id == tarifa_id);
if (row) {
row.precio = newValue;
table.row($(this).closest('tr')).data(row).draw(false);
self.check_serv_preimpresion_error();
}
});
$(document).on('click', '.btn-delete-servpreimpresion', function () {
const rowId = $(this).closest('td').parent()[0].sectionRowIndex;
@ -743,7 +763,7 @@ class ServiciosPreimpresion {
const rows = this.table.rows().data().toArray();
for (let i = 0; i < rows.length; i++) {
if (rows[i]['precio_total'] == 0) {
if (rows[i]['precio'] == 0) {
error = true;
break;
}
@ -860,7 +880,9 @@ class ServiciosEncuadernacion {
},
{
data: 'precio_total', render: function (data, type, row) {
const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
let total = 0;
if(data !==undefined)
total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
<input class="update-totales-servicios form-control" id="precio_enc_${row.tarifa_id}" value="${total}"></input>`;
}
@ -1287,9 +1309,13 @@ class ServiciosManipulado {
},
{
data: 'precio_total', render: function (data, type, row) {
const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
let total = 0;
if(data !==undefined)
total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
else
data = 0;
return `
<input class="update-totales-servicios form-control" id="precio_manipulado_${row.tarifa_id}" value="${total}"></input>`;
<input class="update-totales-servicios totales-manipulado form-control" id="precio_manipulado_${row.tarifa_id}" value="${total}"></input>`;
}
},
{ data: 'margen' },
@ -1315,6 +1341,21 @@ class ServiciosManipulado {
}
});
$('#tableOfServiciosManipulado tbody').on('change', '.totales-manipulado', function () {
let input = $(this);
let tarifa_id = input.attr('id').replace('precio_manipulado_', '');
let newValue = parseFloat(input.val().replace(/\./g, '').replace(',', '.')) || 0;
let table = $('#tableOfServiciosManipulado').DataTable();
let row = table.rows().data().toArray().find(r => r.tarifa_id == tarifa_id);
if (row) {
row.precio_total = newValue;
table.row($(this).closest('tr')).data(row).draw(false);
self.check_serv_manipulado_error();
}
});
this.addServicio.on('click', this.addServicioManipulado.bind(this));
$(document).on('click', '.btn-delete-servmanipulado', function () {
@ -1534,9 +1575,11 @@ class ServiciosExtra {
{
data: 'precio', render: function (data, type, row) {
const total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
let total = 0;
if(data !==undefined)
total = parseFloat(data).toLocaleString('es-ES', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `
<input class="update-totales-servicios form-control" id="precio_extra_${row.tarifa_id}" value="${total}"></input>`;
<input class="update-totales-servicios totales-extra form-control" id="precio_extra_${row.tarifa_id}" value="${total}"></input>`;
}
},
@ -1563,6 +1606,22 @@ class ServiciosExtra {
}
});
$('#tableOfServiciosExtra tbody').on('change', '.totales-extra', function () {
let input = $(this);
let tarifa_id = input.attr('id').replace('precio_extra_', '');
let newValue = parseFloat(input.val().replace(/\./g, '').replace(',', '.')) || 0;
let table = $('#tableOfServiciosExtra').DataTable();
let row = table.rows().data().toArray().find(r => r.tarifa_id == tarifa_id);
if (row) {
row.precio = newValue;
table.row($(this).closest('tr')).data(row).draw(false);
self.check_serv_extra_error();
}
});
$(document).on('click', '.btn-delete-servextra', function () {
const rowId = $(this).closest('td').parent()[0].sectionRowIndex;
self.table.row(rowId).remove().draw();
@ -1644,7 +1703,7 @@ class ServiciosExtra {
const rows = this.table.rows().data().toArray();
for (let i = 0; i < rows.length; i++) {
if (rows[i]['precio_total'] == 0) {
if (rows[i]['precio'] == 0) {
error = true;
break;
}

View File

@ -171,7 +171,7 @@ class PresupuestoCliente {
{},
(response) => {
if (response === null || response === undefined || response === "") {
console.log("Error en el calculo máximo de solapas.");
console.error("Error en el calculo máximo de solapas.");
return;
}
this.disenioCubierta.tamanioSolapasCubierta.attr('max', response);