From 4ffd12f4b5c581f680bf90dcf92796c42574f90c Mon Sep 17 00:00:00 2001 From: marsalva Date: Mon, 23 Mar 2026 08:10:14 +0000 Subject: [PATCH] Actualizar configuracion.html --- configuracion.html | 117 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/configuracion.html b/configuracion.html index 2c93b36..bd919e5 100644 --- a/configuracion.html +++ b/configuracion.html @@ -60,6 +60,65 @@ + + @@ -894,6 +953,7 @@ if(tabId === 'portal') { loadPortalConfig(); } if(tabId === 'app-operario') { loadAppConfig(); } if(tabId === 'providers') { + if(tabId === 'billing') { loadBillingConfig(); } loadProviderCredentials(); loadIaRules(); loadRobotConfig(); @@ -1545,6 +1605,63 @@ lucide.createIcons(); } } + + // ========================================== + // LÓGICA DATOS DE EMPRESA / FACTURACIÓN + // ========================================== + async function loadBillingConfig() { + try { + const res = await fetch(`${API_URL}/config/company`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } }); + const data = await res.json(); + if (data.ok && data.config && data.config.billing_settings) { + const s = data.config.billing_settings; + document.getElementById('billName').value = s.name || ""; + document.getElementById('billDni').value = s.dni || ""; + document.getElementById('billAddress').value = s.address || ""; + document.getElementById('billCity').value = s.city || ""; + document.getElementById('billState').value = s.state || ""; + document.getElementById('billZip').value = s.zip || ""; + document.getElementById('billIban').value = s.iban || ""; + document.getElementById('billObs').value = s.obs || ""; + } + } catch (e) { console.error("Error cargando datos de facturación", e); } + } + + async function saveBillingConfig() { + const btn = document.getElementById('btnSaveBilling'); + const originalHtml = btn.innerHTML; + btn.innerHTML = ' Guardando...'; + lucide.createIcons(); + + const settings = { + name: document.getElementById('billName').value, + dni: document.getElementById('billDni').value, + address: document.getElementById('billAddress').value, + city: document.getElementById('billCity').value, + state: document.getElementById('billState').value, + zip: document.getElementById('billZip').value, + iban: document.getElementById('billIban').value, + obs: document.getElementById('billObs').value + }; + + try { + const res = await fetch(`${API_URL}/config/company`, { + method: 'POST', + headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` }, + body: JSON.stringify({ billing_settings: settings }) + }); + if (res.ok) { + showToast("✅ Datos de empresa guardados"); + } else { + showToast("❌ Error al guardar", true); + } + } catch (e) { + showToast("❌ Error de conexión", true); + } finally { + btn.innerHTML = originalHtml; + lucide.createIcons(); + } + }