Merge branch 'main' into fix/preview-presupuesto-cliente

This commit is contained in:
amazuecos
2025-03-25 18:54:45 +01:00
4 changed files with 52 additions and 9 deletions

View File

@ -57,7 +57,7 @@ $('#generar_albaranes').on('click', function(){
generarAlbaran(item);
});
}
calcular_cantidades_albaranes();
cambios_cantidad_albaranes();
}
});
})
@ -451,13 +451,28 @@ function generarAlbaran(item){
$(document).on('change', '#tablaAlbaran' + item.albaran.id + ' .cantidad-albaran', function(){
let table = $('#tablaAlbaran' + item.albaran.id).DataTable();
let row = $(this).closest('tr'); // Encuentra la fila actual
let rowIndex = table.row(row).index(); // Obtiene el índice de la fila
let newValue = $(this).val(); // Obtiene el nuevo valor del input
// Actualiza el DataTable
table.cell(rowIndex, 2).data(newValue);
calcular_cantidades_albaranes();
const previousValue = table.cell(rowIndex, 2).data();
const newValue = parseInt($(this).val()); // Obtiene el nuevo valor del input
let cantidad = calcular_cantidad_albaranes();
if(cantidad-previousValue+newValue <= parseInt($('#total_tirada').val()) ){
// Actualiza el DataTable
table.cell(rowIndex, 2).data(newValue);
const cajas = parseInt(table.cell(rowIndex, 6).data());
table.cell(rowIndex, 7).data(parseInt(newValue/cajas));
cambios_cantidad_albaranes();
}
else{
$(this).val(previousValue);
table.cell(rowIndex, 7).data(previousValue);
table.draw();
}
});
}
@ -502,6 +517,8 @@ $(document).on('change', '.mostrar-precios', function(){
var albaran_id = $(this).attr('albaran_id');
var table = $('#tablaAlbaran' + albaran_id).DataTable();
var url = '<?= route_to('actualizarAlbaran', ':id') ?>';
url = url.replace(':id', albaran_id );
@ -567,6 +584,12 @@ $(document).on('change', '.albaran_linea', function(){
var url = '<?= route_to('actualizarLineaAlbaran', ':id') ?>';
url = url.replace(':id', linea_id );
if(elementId.includes('cajas')){
var cajas = $(this).val();
var linea_id = elementId.split('_').slice(-1)[0];
$('#ejemplares_por_caja_' + linea_id).val(parseInt($('#cantidad_' + linea_id).val()/cajas)).trigger('change');
}
$.ajax({
url: url,
type: 'POST',
@ -574,7 +597,7 @@ $(document).on('change', '.albaran_linea', function(){
success: function(response){
if('error' in response){
}
}
});
@ -610,6 +633,7 @@ function borrar_albaranes(){
}
}
}
cambios_cantidad_albaranes();
}
});
});
@ -630,6 +654,7 @@ function borrar_albaran(albaran_id){
$('#accordioAlbaran' + albaran_id).remove();
}
}
cambios_cantidad_albaranes();
}
}
});
@ -711,21 +736,31 @@ $.ajax({
generarAlbaran(item);
});
calcular_cantidades_albaranes();
cambios_cantidad_albaranes();
}
}
});
function calcular_cantidades_albaranes(){
function calcular_cantidad_albaranes(){
let cantidad_albaranes = 0;
const tablas = $('.table.table-albaran');
const tabla_pedido = $('#tableOfLineasPedido').DataTable();
const titulo = tabla_pedido.column(3).data().toArray()[0];
for(var i = 0; i < tablas.length; i++){
var table = $(tablas[i]).DataTable();
table.rows().every(function(){
cantidad_albaranes += parseInt(this.data().cantidad) || 0;
if(titulo && titulo.length >0 && this.data() && titulo.includes(this.data().titulo)){
cantidad_albaranes += parseInt(this.data().cantidad) || 0;
}
});
}
return cantidad_albaranes;
}
function cambios_cantidad_albaranes(){
const cantidad_albaranes = calcular_cantidad_albaranes();
check_cantidad_albaranes(cantidad_albaranes);
}

View File

@ -99,6 +99,7 @@ var tableOfLineasPedido = new DataTable('#tableOfLineasPedido',{
drawCallback: function(){
$(this.api().table().container()).find('table').css('width', '100%');
this.api().columns.adjust();
cambios_cantidad_albaranes();
},
footerCallback: function (row, data, start, end, display) {
let api = this.api();

View File

@ -293,6 +293,8 @@ class PresupuestoAdminEdit {
this.comparador.generateCompJSON();
datos.comparador_json_data = $('#comparador_json_data').val();
datos.tirada_alternativa_json_data = this.tiradasAlternativas.generate_json_tiradas();
return datos;
}

View File

@ -166,6 +166,11 @@ class TiradasAlernativas {
}
}
if(this.generate_json_lp() == "[]"){
popErrorAlert('No hay líneas de presupuesto', 'alert-tiradas_alt');
return;
}
const dimension = this.getDimensionLibro();
const envios = JSON.stringify($('#tableOfDireccionesEnvio').DataTable().rows().data().toArray());