Actualizar index2.html

This commit is contained in:
2026-03-29 10:09:18 +00:00
parent 9fb8760ace
commit 434239e5e3

View File

@@ -446,12 +446,15 @@
}
// --- LÓGICA DE PDF AÑADIDA ---
let allServicesGlobalBackup = []; // <--- Variable para no perder los datos del cliente
async function generatePDF(id) {
const budget = currentQuotes.find(b => b.id === id);
if(!budget) return showToast("❌ Error: Presupuesto no encontrado");
showToast("⏳ Generando PDF, espera unos segundos...");
// 1. CARGAMOS DATOS FISCALES DE LA EMPRESA (IBAN, OBS, CIF)
let empNombre = globalCompanyData?.name || "Empresa Reparadora";
let empLogo = globalCompanyData?.logo || null;
let empDni = globalCompanyData?.billing_settings?.dni ? `CIF/NIF: ${globalCompanyData.billing_settings.dni}` : "";
@@ -485,9 +488,27 @@
if(fDate && fDate.includes('T')) fDate = fDate.split('T')[0].split('-').reverse().join('/');
document.getElementById('pdf-date').innerText = fDate;
document.getElementById('pdf-client-name').innerText = budget.client_name || document.getElementById('clientName').innerText || "Cliente";
document.getElementById('pdf-client-phone').innerText = budget.client_phone || "-";
document.getElementById('pdf-client-address').innerText = budget.client_address || "-";
// 2. 🛑 FIX CRÍTICO: RESCATAMOS DATOS DEL CLIENTE SI EL PRESUPUESTO ESTÁ VACÍO
let fallbackClient = allServicesGlobalBackup[0]?.raw_data || {};
let finalName = budget.client_name;
if(!finalName || finalName.trim() === "") finalName = fallbackClient["Nombre Cliente"] || fallbackClient["CLIENTE"] || document.getElementById('clientName').innerText;
let finalPhone = budget.client_phone;
if(!finalPhone || finalPhone.trim() === "") finalPhone = fallbackClient["Teléfono"] || fallbackClient["TELEFONO"] || "-";
let finalAddress = budget.client_address;
if(!finalAddress || finalAddress.trim() === "") {
let fallbackAddr = fallbackClient["Dirección"] || fallbackClient["DOMICILIO"] || "";
let fallbackCp = fallbackClient["Código Postal"] || fallbackClient["C.P."] || "";
let fallbackPob = fallbackClient["Población"] || fallbackClient["POBLACION-PROVINCIA"] || "";
finalAddress = `${fallbackAddr}, ${fallbackCp} ${fallbackPob}`.trim();
if (finalAddress === ",") finalAddress = "Dirección no especificada";
}
document.getElementById('pdf-client-name').innerText = finalName;
document.getElementById('pdf-client-phone').innerText = finalPhone;
document.getElementById('pdf-client-address').innerText = finalAddress;
const itemsArr = budget.items || [];
let itemsHtml = '';
@@ -646,6 +667,7 @@
function renderPortal(client, company, allServices) {
globalCompanyData = company; // 🛑 NUEVO: Guardamos la empresa
allServicesGlobalBackup = allServices; // 🛑 NUEVO: Guardamos una copia de los avisos para el PDF
if (company.name) document.title = `Portal - ${company.name}`;
if (company.logo) {