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.
86 righe
3.6 KiB
86 righe
3.6 KiB
<? |
|
|
|
if (isset($this) && is_a($this,"gara") && isset($settings)) { |
|
$partecipanti = $this->getPartecipantiForAnomalia(); |
|
usort($partecipanti,"sortPartecipantiTotale"); |
|
if (!empty($partecipanti)) { |
|
$maxTecnico = 0; |
|
$maxEconomico = 0; |
|
$criteri = $this->getMacroCriteri(); |
|
foreach($criteri AS $criterio) { |
|
if ($criterio["economico"] == "S") { |
|
$maxEconomico += $criterio["peso"]; |
|
} else { |
|
$maxTecnico += $criterio["peso"]; |
|
} |
|
} |
|
$sogliaTecnica = $maxTecnico * 0.8; |
|
$sogliaEconomica = $maxEconomico * 0.8; |
|
if ($arrotondamento) { |
|
$sogliaTecnica = number_format($sogliaTecnica,$decimali); |
|
$sogliaEconomica = number_format($sogliaEconomica,$decimali); |
|
} else { |
|
$sogliaTecnica = truncate($sogliaTecnica,$decimali); |
|
$sogliaEconomica = truncate($sogliaEconomica,$decimali); |
|
} |
|
$anomali = []; |
|
$punteggiReali = $this->db->prepare("SELECT SUM(valore) AS totale |
|
FROM b_gare_punteggi_partecipanti JOIN b_gare_criteri_valutazione ON b_gare_punteggi_partecipanti.codice_criterio = b_gare_criteri_valutazione.codice WHERE |
|
b_gare_punteggi_partecipanti.codice_partecipante = :partecipante AND b_gare_criteri_valutazione.economico = :economico |
|
GROUP BY b_gare_punteggi_partecipanti.codice_partecipante"); |
|
foreach($partecipanti AS $partecipante) { |
|
$totaleTecnico = $partecipante["totaleTecnico"]; |
|
$totaleEconomico = $partecipante["totaleEconomico"]; |
|
$punteggiReali->bindValue(":partecipante",$partecipante["codice"]); |
|
|
|
$punteggiReali->bindValue(":economico","N"); |
|
$punteggiReali->execute(); |
|
if ($punteggiReali->rowCount() > 0) { |
|
$totaleTecnico = $punteggiReali->fetch(PDO::FETCH_COLUMN); |
|
} |
|
|
|
$punteggiReali->bindValue(":economico","S"); |
|
$punteggiReali->execute(); |
|
if ($punteggiReali->rowCount() > 0) { |
|
$totaleEconomico = $punteggiReali->fetch(PDO::FETCH_COLUMN); |
|
} |
|
if(!$soloSoglia) { |
|
if ($arrotondamento) { |
|
$totaleTecnico = number_format($totaleTecnico,$decimali); |
|
$totaleEconomico = number_format($totaleEconomico,$decimali); |
|
} else { |
|
$totaleTecnico = truncate($totaleTecnico,$decimali); |
|
$totaleEconomico = truncate($totaleEconomico,$decimali); |
|
} |
|
} |
|
if ($totaleTecnico > $sogliaTecnica && $totaleEconomico > $sogliaEconomica) { |
|
$anomali[] = $partecipante["codice"]; |
|
} |
|
} |
|
$extraInfo = ["set-anomalia-{$this->round["codice"]}"=>json_encode($settings,JSON_PRETTY_PRINT)]; |
|
if (!empty($anomali)) { |
|
$infoAnomalia = []; |
|
$infoAnomalia["riepilogo"] = "Anomalia calcolata ai sensi dell'art. 97 c. 3 del D.lgs 50/2016"; |
|
$extraInfo["info-anomalia-{$this->round["codice"]}"] = json_encode($infoAnomalia,JSON_PRETTY_PRINT); |
|
reset($partecipanti); |
|
$salva = new salva(); |
|
$salva->debug = false; |
|
|
|
$salva->nome_tabella = "r_partecipanti_gare"; |
|
$salva->operazione = "UPDATE"; |
|
foreach($partecipanti AS $partecipante) { |
|
if (in_array($partecipante["codice"],$anomali)) { |
|
$partecipante["anomalia"] = "S"; |
|
$partecipante["a_facoltativa"] = "N"; |
|
$partecipante["motivazione_anomalia"] = "Calcolo automatico"; |
|
$salva->oggetto = $partecipante; |
|
$salva->save(); |
|
} |
|
} |
|
} |
|
$errors = ""; |
|
} else { |
|
$errors = __("Nessun partecipante ammesso"); |
|
} |
|
} |
|
?>
|