fix(facturapi): configure legal data after org creation/reuse to enable Live mode
Some checks failed
CI / lint-and-test (3.11) (push) Has been cancelled
CI / lint-and-test (3.13) (push) Has been cancelled

This commit is contained in:
2026-07-09 07:25:07 +00:00
parent 9b88b8ba4c
commit b2f23ef3cf
4 changed files with 110 additions and 31 deletions

View File

@@ -354,10 +354,18 @@ const Invoicing = (() => {
let pendingHtml = '';
if (status.pending_steps && status.pending_steps.length) {
pendingHtml = '<ul style="margin:var(--space-2) 0 0 0;padding-left:var(--space-5);color:var(--color-warning);">' +
status.pending_steps.map(s => `<li>${s.description || s.type}</li>`).join('') +
status.pending_steps.map(s => `<li>${s.description || s.type || s}</li>`).join('') +
'</ul>';
}
const configuredHtml = status.configured
? '<span style="color:var(--color-success);">Sí</span>'
: '<span style="color:var(--color-error);">No</span>';
const retryButton = !status.configured || status.error
? '<button class="btn btn--secondary" style="margin-top:var(--space-3);" onclick="Invoicing.setupFacturapi(this)">Reintentar configuración</button>'
: '';
container.innerHTML = `
<div style="display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);">
<div>
@@ -367,13 +375,16 @@ const Invoicing = (() => {
<div style="font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-text-muted);">${status.org_id || ''}</div>
</div>
<div>
<div style="font-size:var(--text-caption);color:var(--color-text-muted);">CSD</div>
<div style="font-size:var(--text-caption);color:var(--color-text-muted);">Configurada</div>
<div style="font-weight:var(--font-weight-semibold);">${configuredHtml}</div>
<div style="font-size:var(--text-caption);color:var(--color-text-muted);margin-top:var(--space-2);">CSD</div>
<div style="font-weight:var(--font-weight-semibold);">${csdHtml}</div>
<div style="font-size:var(--text-caption);color:var(--color-text-muted);margin-top:var(--space-2);">Pasos pendientes</div>
${pendingHtml || '<span style="color:var(--color-success);">Ninguno</span>'}
</div>
</div>
${status.error ? `<p style="color:var(--color-error);margin-top:var(--space-3);">Error: ${escapeHtml(status.error)}</p>` : ''}
${retryButton}
`;
} catch (e) {
container.innerHTML = `<p style="color:var(--color-error);">Error: ${e.message}</p>`;
@@ -450,10 +461,17 @@ const Invoicing = (() => {
btn.textContent = 'Configurando...';
try {
const res = await api('/facturapi/setup', { method: 'POST' });
alert('Organización vinculada: ' + res.org_id);
if (res.error) {
alert('Aviso: ' + res.error);
} else if (res.configured) {
alert('Organización vinculada y configurada: ' + res.org_id);
} else {
alert('Organización vinculada: ' + res.org_id + '. Revisa pasos pendientes.');
}
loadFacturapiStatus();
} catch (e) {
alert('Error: ' + e.message);
} finally {
btn.disabled = false;
btn.textContent = 'Crear / Vincular Organización';
}