Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
91 righe
3.1 KiB
91 righe
3.1 KiB
<? |
|
|
|
if (isset($this) && is_a($this,"gara") && isset($settings) && !empty($partecipanti)) { |
|
$numero_partecipanti = count($partecipanti); |
|
$firstRound = $this->getRounds()[0]; |
|
if (strtotime($firstRound["pubblicazione"]) < strtotime('2017-05-20')) { |
|
$numSoglia = ceil($numero_partecipanti * 10 /100); |
|
} else { |
|
$numSoglia = ceil($numero_partecipanti * 20 /100); |
|
} |
|
$taglioAli = []; |
|
$i = 0; |
|
$contatore = 0; |
|
$punteggioAttuale = ""; |
|
while($i < $numSoglia) { |
|
$partecipante = $partecipanti[$contatore]; |
|
$taglioAli[] = $partecipante["codice"]; |
|
if ($punteggioAttuale != $partecipante["totale"]) { |
|
$punteggioAttuale = $partecipante["totale"]; |
|
$i++; |
|
} |
|
$contatore++; |
|
} |
|
if (isset($partecipanti[$contatore]) && $partecipanti[$contatore]["totale"] === $punteggioAttuale) { |
|
while($partecipanti[$contatore]["totale"] === $punteggioAttuale) { |
|
$partecipante = $partecipanti[$contatore]; |
|
$taglioAli[] = $partecipante["codice"]; |
|
$contatore++; |
|
} |
|
} |
|
$i = 0; |
|
$contatore = $numero_partecipanti -1; |
|
$punteggioAttuale = ""; |
|
while($i < $numSoglia) { |
|
$partecipante = $partecipanti[$contatore]; |
|
$taglioAli[] = $partecipante["codice"]; |
|
if ($punteggioAttuale != $partecipante["totale"]) { |
|
$punteggioAttuale = $partecipante["totale"]; |
|
$i++; |
|
} |
|
$contatore--; |
|
} |
|
if (isset($partecipanti[$contatore]) && $partecipanti[$contatore]["totale"] === $punteggioAttuale) { |
|
while($partecipanti[$contatore]["totale"] === $punteggioAttuale) { |
|
$partecipante = $partecipanti[$contatore]; |
|
$taglioAli[] = $partecipante["codice"]; |
|
$contatore--; |
|
} |
|
} |
|
reset($partecipanti); |
|
$somma = 0; |
|
$contatore = 0; |
|
foreach($partecipanti AS $partecipante) { |
|
if (in_array($partecipante["codice"],$taglioAli) === false) { |
|
$somma += $partecipante["totale"]; |
|
$contatore++; |
|
} |
|
} |
|
$media = $somma / $contatore; |
|
if (!$soloSoglia) { |
|
if ($arrotondamento) { |
|
$somma = number_format($somma,$decimali); |
|
$media = number_format($media,$decimali); |
|
} else { |
|
$somma = truncate($somma,$decimali); |
|
$media = truncate($media,$decimali); |
|
} |
|
} |
|
|
|
$somma = strval($somma); |
|
$decremento = 0; |
|
if (strpos($somma,".")!==false) { |
|
$decremento = explode(".",$somma); |
|
$decremento = (int) substr($decremento[1],0,1); |
|
if ($decremento % 2 == 0) { |
|
$decremento = 0; |
|
} |
|
} |
|
$soglia_anomalia = $media - (($media*$decremento)/100); |
|
if ($arrotondamento) { |
|
$soglia_anomalia = number_format($soglia_anomalia,$decimali); |
|
} else { |
|
$soglia_anomalia = truncate($soglia_anomalia,$decimali); |
|
} |
|
|
|
$infoAnomalia["media"] = $media; |
|
$infoAnomalia["decremento"] = $decremento; |
|
$infoAnomalia["soglia"] = $soglia_anomalia; |
|
$infoAnomalia["riepilogo"] = "Anomalia calcolata ai sensi dell'art. 97 c. 2 lettera b del D.lgs 50/2016 - Media: {$media} - Decremento: {$decremento} - Soglia individuata: {$soglia_anomalia}"; |
|
} |
|
?>
|