document.addEventListener('DOMContentLoaded', async () => {
try {
const response = await apiFetch('api/movimientos.php');
const data = await response.json();
if (data.status === 'success') {
// Update balance
document.getElementById('ui-balance').textContent = `$${data.balance.toFixed(2)}`;
// Render movements
const uiMovimientos = document.getElementById('ui-movimientos');
uiMovimientos.innerHTML = '';
data.movimientos.forEach(mov => {
const isExpense = mov.tipo === 'gasto';
const sign = isExpense ? '-' : '+';
const amountColor = isExpense ? 'text-error' : 'text-primary-container';
uiMovimientos.innerHTML += `
${mov.categoria_icono || 'payments'}
${mov.notas || mov.categoria_nombre}
${mov.fecha}
${sign}$${parseFloat(mov.monto).toFixed(2)}
`;
});
// Dynamize Donut Chart
if (data.grafico && data.grafico.length > 0) {
const totalGastos = data.grafico.reduce((sum, item) => sum + parseFloat(item.total), 0);
let svgHtml = `
$${totalGastos.toFixed(0)}
Gastos
`;
document.getElementById('ui-donut-chart').innerHTML = svgHtml;
document.getElementById('ui-donut-legend').innerHTML = legendHtml;
} else {
document.getElementById('ui-donut-chart').innerHTML = `Sin gastos registrados
`;
document.getElementById('ui-donut-legend').innerHTML = '';
}
}
} catch (e) {
console.error('Error cargando el dashboard:', e);
}
});