fixed stas3

This commit is contained in:
2026-10-13 17:30:27 +02:00
parent 9525ba528f
commit 22114963db
3 changed files with 185 additions and 16 deletions
+42 -4
View File
@@ -501,6 +501,18 @@ if ($action === 'data') {
font-style: italic;
}
.week-badge {
display: inline-block;
background: #fef3c7;
color: #b45309;
font-size: .66rem;
font-weight: 800;
border-radius: 999px;
padding: 1px 7px;
margin-left: 5px;
vertical-align: middle;
}
.late-days {
display: inline-block;
background: #fde8ea;
@@ -628,7 +640,7 @@ if ($action === 'data') {
</div>
</div>
<div class="legend-dates">
<span><b class="z">Data ZIBO</b> = scadenza comunicata (rossa se superata)</span>
<span><b class="z">Data ZIBO</b> = settimana di consegna comunicata (rossa a settimana finita)</span>
<span><b class="c">Data cliente</b> = desiderata (arancione se superata)</span>
</div>
</div>
@@ -826,11 +838,37 @@ if ($action === 'data') {
const fmtMetric = v => metric === 'value' ? fmtEur(v) : fmtNum(Math.round(v));
const fmtAxis = v => metric === 'value' ? fmtEurShort(v) : fmtNum(Math.round(v));
// Data ZIBO = settimana di consegna (impostazioni in MagoSalesStats)
const ZIBO_WEEK = <?= MagoSalesStats::ZIBO_IS_WEEK ? 'true' : 'false' ?>;
const ZIBO_END_DAYS = <?= (int)MagoSalesStats::ZIBO_WEEK_END_DAYS ?>;
// scadenza della data ZIBO: fine della settimana indicata
function ziboEnd(z) {
if (!z || !ZIBO_WEEK) return z;
const d = new Date(String(z).substring(0, 10) + 'T00:00:00');
d.setDate(d.getDate() - ((d.getDay() + 6) % 7) + ZIBO_END_DAYS);
return iso(d);
}
// stato della data ZIBO: 'late' (settimana finita), 'week' (settimana in corso), '' (futura)
function ziboState(z, open) {
if (!z || !open) return '';
const today = iso(new Date());
if (ziboEnd(z) < today) return 'late';
if (ZIBO_WEEK && String(z).substring(0, 10) <= today) return 'week';
return '';
}
function ziboHtml(z, open, extra) {
const st = ziboState(z, open);
const title = ZIBO_WEEK ? ` title="Settimana del ${fmtDate(z)}: consegna entro ${fmtDate(ziboEnd(z))}"` : '';
return `<div class="dt-zibo${st === 'late' ? ' late' : ''}"${title}><span class="dt-tag">ZIBO${ZIBO_WEEK ? ' sett.' : ''}</span>${fmtDate(z)}` +
(st === 'week' ? '<span class="week-badge">IN SETTIMANA</span>' : '') + (extra || '') + '</div>';
}
function dateCell(zibo, client) {
const today = iso(new Date());
let h = zibo ?
`<div class="dt-zibo${zibo < today ? ' late' : ''}"><span class="dt-tag">ZIBO</span>${fmtDate(zibo)}</div>` :
'<div class="dt-fallback">data ZIBO non indicata</div>';
let h = zibo ? ziboHtml(zibo, true) : '<div class="dt-fallback">data ZIBO non indicata</div>';
if (client) h += `<div class="dt-client${client < today ? ' late' : ''}"><span class="dt-tag">Cliente</span>${fmtDate(client)}</div>`;
return h;
}