fixed stas3
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user