' + d.alba.novetats14dies + ' novetats en 14 dies · '
+ d.alba.pendentsDeValidar + ' evidències pendents de validar'
+ (d.alba.senseGrup.length ? ' · ' + d.alba.senseGrup.length + ' marques sense grup conegut, que és la primera pregunta a fer' : '')
+ '
';
}
function taulaSocietats(d) {
const glif = (r) => r.vencuts > 30 ? 'mira' : r.vencuts > 0 ? 'mig' : 'ok';
const f = d.guaita.societats
? d.guaita.societats.map((s) => [
esc(s.nom),
s.vendes ? eur(s.vendes) + (s.vendesAnt ? '' + eur(s.vendesAnt) + '' : '') : '—',
s.resultat ? eur(s.resultat) + (s.resultatAnt ? '' + eur(s.resultatAnt) + '' : '') : '—',
s.margeNet !== null && s.margeNet !== undefined ? pc(s.margeNet) : '—',
s.autonomia !== null && s.autonomia !== undefined ? pc(s.autonomia, 0) : '—',
s.diesEstoc ? String(Math.round(s.diesEstoc)) : '—',
s.liquiditat !== null && s.liquiditat !== undefined ? dec(s.liquiditat) : '—',
'',
])
: d.guaita.resum.map((r) => [esc(r.nom), '—', '—', '—', '—', '—', '—', '']);
// Una taula sencera de guions NO explica res, i era el que sortia quan les
// fitxes no es llegien: semblava que l'app estigues trencada. Si no hi ha
// fitxes es diu, i es diu QUE falta i on va.
const peu = d.guaita.societats
? 'Xifra petita = exercici anterior. Les fitxes estan en estat PROPOSTA fins que les validis amb '
+ 'npm run guaita -- valida-fitxa. ● mirar-s\'ho · ◐ atenció · ○ tranquil'
: 'No hi ha cap fitxa comptable, i per aixo totes les xifres surten buides. '
+ 'Falta el fitxer estat/guaita-fitxes.json a la carpeta del projecte. '
+ 'Si creus que hi es, mira que no es digui .json.txt: el Windows amaga '
+ 'les extensions conegudes i el fitxer sembla be quan no ho es. '
+ 'Per veure-ho tot d\'un cop: npm run comprovar.';
return taula(['Societat', 'Vendes', 'Resultat', 'Marge net', 'Autonomia', 'Dies estoc', 'Liquiditat', ''], f, peu);
}
// ---------- arrencada ----------
carrega().catch(() => { mostra('p-entrada'); $('usuari').focus(); });
setInterval(() => { if (D && $('p-entrada').hidden) carrega().catch(() => {}); }, 300_000);
// El treballador de servei: es el que fa que l'app obri sense cobertura i que
// "Afegir a la pantalla d'inici" doni una app de debo. Nomes sobre HTTPS o a
// localhost — el navegador no el registra enlloc mes, i esta be que sigui aixi.
// Si falla no es diu res a la pantalla: l'app funciona igual, nomes sense
// arrencada sense xarxa, i un avis aqui no li serviria de res a qui mira.
if ('serviceWorker' in navigator) {
addEventListener('load', () => navigator.serviceWorker.register('/sw.js').catch(() => {}));
}