// ═══════════════════════════════════════════════════════════════════════════ // LandveX Finance — Dashboard View // ═══════════════════════════════════════════════════════════════════════════ export const Dashboard = { async render(app) { app.render(`

Balansrapport

2026-06
`); try { const data = await app.api.get('/trial-balance?fiscal_year=2026&period=2026-06'); this.renderBalance(data, app); } catch (e) { document.getElementById('dashboard-content').innerHTML = `

Fel: ${e.message}

`; } }, renderBalance(data, app) { if (!data.ok || !data.accounts) return; const assets = data.accounts.filter(a => parseFloat(a.balance) > 0); const liabilities = data.accounts.filter(a => parseFloat(a.balance) < 0); const totalAssets = assets.reduce((s, a) => s + parseFloat(a.balance), 0); const totalLiab = liabilities.reduce((s, a) => s + parseFloat(a.balance), 0); document.getElementById('dashboard-content').innerHTML = `
Tillgångar
${this.fmt(totalAssets)}
Skulder/EK
${this.fmt(Math.abs(totalLiab))}

Viktiga konton

${data.accounts.slice(0, 10).map(a => ` `).join('')}
KontoSaldo
${a.account_number} ${a.account_name} ${this.fmt(a.balance)}
`; }, fmt(n) { return new Intl.NumberFormat('sv-SE', { style: 'currency', currency: 'SEK' }).format(n); } };