added sales summary
This commit is contained in:
@@ -211,6 +211,32 @@ class MagoSalesStats
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* SOMMARIO (semafori): soglie [verde, rosso]. Tra le due = giallo.
|
||||
* Per gli indicatori "più alto è meglio" verde se >= primo valore, rosso se < secondo.
|
||||
* Per quelli "più basso è meglio" verde se <= primo valore, rosso se > secondo.
|
||||
*/
|
||||
const SUMMARY_THRESHOLDS = [
|
||||
'growth' => [3, -3], // % crescita vs stessa data anno prima (fatturato, ordinato, previsione)
|
||||
'b2b' => [1.05, 0.95], // book-to-bill 90 gg
|
||||
'cover_weeks' => [8, 4], // settimane di lavoro in portafoglio
|
||||
'late_pct' => [10, 25], // % del portafoglio già oltre data ZIBO (più basso è meglio)
|
||||
'risk_pct' => [3, 8], // % fatturato 12 mesi di clienti dormienti/persi (più basso è meglio)
|
||||
'top5_pct' => [40, 60], // % fatturato 12 mesi dei primi 5 clienti (più basso è meglio)
|
||||
'cn_pct' => [1.5, 3], // % note di credito su fatturato 12 mesi (più basso è meglio)
|
||||
'customers' => [0, -5], // % variazione clienti attivi 12 mesi
|
||||
];
|
||||
|
||||
/** Semaforo: 'green' | 'yellow' | 'red' | 'grey' (dato non disponibile). */
|
||||
public static function light($value, $key, $lowerIsBetter = false)
|
||||
{
|
||||
if ($value === null || !is_finite((float)$value)) return 'grey';
|
||||
[$g, $r] = self::SUMMARY_THRESHOLDS[$key];
|
||||
$v = (float)$value;
|
||||
if ($lowerIsBetter) return $v <= $g ? 'green' : ($v > $r ? 'red' : 'yellow');
|
||||
return $v >= $g ? 'green' : ($v < $r ? 'red' : 'yellow');
|
||||
}
|
||||
|
||||
/** Etichette dei tipi documento (tabella documenti). */
|
||||
const INVOICE_TYPE_LABELS = [
|
||||
3407874 => 'Fattura',
|
||||
|
||||
Reference in New Issue
Block a user