diff --git a/index2.html b/index2.html
index 6f3621e..40b56be 100644
--- a/index2.html
+++ b/index2.html
@@ -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) {