Merge branch 'main' into feat/ot-pdf-zip

This commit is contained in:
amazuecos
2025-05-05 21:00:33 +02:00
14 changed files with 121 additions and 61 deletions

View File

@ -31,6 +31,7 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'negrohq' : 'negro',
@ -42,6 +43,7 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'negrohq' : 'negro',
@ -54,6 +56,7 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'negrohq' : 'negro',
@ -66,6 +69,7 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'negrohq' : 'negro',
@ -79,6 +83,7 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'colorhq' : 'color',
@ -90,6 +95,7 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'colorhq' : 'color',
@ -102,6 +108,7 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'colorhq' : 'color',
@ -114,6 +121,7 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'interior',
sopalas: 0,
lomo: 0,
tipo: () => this.tipo_impresion.val().includes('hq') ? 'colorhq' : 'color',
@ -126,6 +134,7 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'cubierta',
sopalas: () => $('#cubierta_ancho_solapas').val(),
lomo: () => 0,
tipo: 'colorhq',
@ -138,6 +147,7 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'cubierta',
sopalas: () => $('#cubierta_ancho_solapas').val(),
lomo: () => 0,
tipo: 'colorhq',
@ -151,6 +161,7 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'cubierta',
sopalas: () => $('#cubierta_ancho_solapas').val(),
lomo: 0,
tipo: 'colorhq',
@ -163,6 +174,7 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'cubierta',
sopalas: () => $('#cubierta_ancho_solapas').val(),
lomo: 0,
tipo: 'colorhq',
@ -184,10 +196,10 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'sobrecubierta',
sopalas: () => $('#sobrecubierta_ancho_solapas').val(),
lomo: () => 0,
tipo: 'colorhq',
uso: 'sobrecubierta',
});
this.selectPapelSobrecubiertaPod = new ClassSelect($("#sobrecubierta_pod_papel_id"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
@ -196,10 +208,10 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'sobrecubierta',
sopalas: () => $('#sobrecubierta_ancho_solapas').val(),
lomo: () => 0,
tipo: 'colorhq',
uso: 'sobrecubierta',
});
this.selectGramajeSobrecubierta = new ClassSelect($('#sobrecubierta_gramaje'), '/presupuestoadmin/papelgramaje', 'Seleccione un gramaje', false,
@ -209,6 +221,7 @@ class Catalogo {
tirada: () => this.tirada_no_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'sobrecubierta',
sopalas: () => $('#sobrecubierta_ancho_solapas').val(),
lomo: 0,
tipo: 'colorhq',
@ -221,6 +234,7 @@ class Catalogo {
tirada: () => this.tirada_pod,
ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto,
uso: 'sobrecubierta',
sopalas: () => $('#sobrecubierta_ancho_solapas').val(),
lomo: 0,
tipo: 'colorhq',

View File

@ -57,7 +57,8 @@ document.addEventListener('DOMContentLoaded', function () {
headerMap[name.toLowerCase()] = idx;
});
const missing = TABLE_COLUMNS.filter(col => !(col in headerMap));
const requiredColumns = ["idpedido", ...TABLE_COLUMNS];
const missing = requiredColumns.filter(col => !(col in headerMap));
if (missing.length > 0) {
Swal.fire({
title: 'Error',
@ -73,7 +74,19 @@ document.addEventListener('DOMContentLoaded', function () {
const rows = [];
for (let i = 1; i < data.length; i++) {
const rowData = TABLE_COLUMNS.map(col => data[i][headerMap[col]] ?? '');
// Leer columnas necesarias desde Excel
const input = data[i][headerMap["input"]] ?? '';
const idlinea = data[i][headerMap["idlinea"]] ?? '';
const idpedido = data[i][headerMap["idpedido"]] ?? ''; // aunque no esté en TABLE_COLUMNS, lo usamos aquí
const descripcion = data[i][headerMap["descripcion"]] ?? '';
const cnt_pedida = data[i][headerMap["cnt_pedida"]] ?? '';
const precio_compra = data[i][headerMap["precio_compra"]] ?? '';
// Componer Ref. Cliente
const refCliente = `${idpedido}-${idlinea}`;
// Solo mostramos las columnas necesarias (como en el orden de DataTable HTML)
const rowData = [input, refCliente, descripcion, cnt_pedida, precio_compra];
// Llamar backend para validar la fila
const result = await validarFila(rowData);
@ -163,7 +176,8 @@ document.addEventListener('DOMContentLoaded', function () {
// Actualizar campo "Notas" con el enlace
if (skUrl) {
const notasHtml = `<a href="${skUrl}" target="_blank" class="btn btn-sm btn-secondary">Ver presupuesto</a>`;
const skId = result.data?.sk_id ?? '';
const notasHtml = `<a href="${skUrl}" target="_blank" class="btn btn-sm btn-secondary">Ver presupuesto (${skId})</a>`;
// La columna de notas es la posición 6 (índice 6)
rowData[6] = notasHtml;
dataTable.row($row).data(rowData).draw(false); // Redibujar la fila SIN perder scroll ni filtros
@ -176,7 +190,7 @@ document.addEventListener('DOMContentLoaded', function () {
if (result.price_warning) {
html = skUrl ? `La fila se importó exitosamente, pero el precio se ha ajustado debajo de costes.<br><br><a href="${skUrl}" target="_blank" class="btn btn-primary mt-2">Ver presupuesto</a>`
: 'La fila se importó exitosamente, pero el precio se ha ajustado debajo de costes.';
: 'La fila se importó exitosamente, pero el precio se ha ajustado debajo de costes.';
icon = 'warning';
}
@ -284,10 +298,12 @@ document.addEventListener('DOMContentLoaded', function () {
idsNoAjustados.push(result.data.sk_id);
}
const skId = result.data?.sk_id ?? '';
if (skUrl) {
fila.rowData[6] = `<a href="${skUrl}" target="_blank" class="btn btn-sm btn-primary">Ver presupuesto</a>`;
fila.rowData[6] = `<a href="${skUrl}" target="_blank" class="btn btn-sm btn-primary">Ver presupuesto (${skId})</a>`;
} else {
fila.rowData[6] = `<span class="badge bg-success">Importado</span>`;
fila.rowData[6] = `<span class="badge bg-success">Importado (${skId})</span>`;
}
} else {
fila.rowData[6] = `<span class="badge bg-danger">${result.message ?? 'Error desconocido'}</span>`;

View File

@ -64,6 +64,11 @@ class EtiquetaEdit {
}
});
if (ids.length == 0) {
popErrorAlert('Seleccione al menos una linea');
return;
}
$.post(
'/etiquetasTitulos/imprimirEtiquetas',
{
@ -283,6 +288,9 @@ class EtiquetaEdit {
}
_addLineas() {
const self = this;
if (this.buscador.item.select2('data').length > 0) {
let maxUnidades = 0;

View File

@ -461,10 +461,10 @@ class ServiciosAcabado {
if (parseInt($('#tirada').val()) > 0) {
var tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
else {
var tirada = 0
@ -536,10 +536,10 @@ class ServiciosAcabado {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
if (tarifa_ids.length > 0 && tirada > 0) {
const data = {
@ -586,10 +586,10 @@ class ServiciosAcabado {
let tirada = 0
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
let datos = {
tirada: tirada,
@ -1072,10 +1072,10 @@ class ServiciosEncuadernacion {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val());
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
let paginas = 0;
@ -1176,10 +1176,10 @@ class ServiciosEncuadernacion {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
let paginas = 0;
if (parseInt($('#paginas').val()) > 0) {
@ -1221,10 +1221,10 @@ class ServiciosEncuadernacion {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
let paginas = 0;
if (parseInt($('#paginas').val()) > 0) {
@ -1267,10 +1267,10 @@ class ServiciosEncuadernacion {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
let paginas = 0;
if (parseInt($('#paginas').val()) > 0) {
@ -1559,10 +1559,10 @@ class ServiciosManipulado {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
let datos = {
@ -1600,10 +1600,10 @@ class ServiciosManipulado {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
if (tarifa_ids.length > 0) {
@ -1633,10 +1633,10 @@ class ServiciosManipulado {
let tirada = 0;
if (parseInt($('#tirada').val()) > 0) {
tirada = parseInt($('#tirada').val())
var merma = parseInt($('#merma').val())
/*var merma = parseInt($('#merma').val())
if (merma && merma > 0) {
tirada = tirada + merma;
}
}*/
}
let datos = {