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.
325 righe
19 KiB
325 righe
19 KiB
<? |
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php"; |
|
include_once($configPath); |
|
$id_modulo = "criteri"; |
|
$cmd_info = gara::getInfoModulo($id_modulo); |
|
if (!empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice,$_GET["codice"],$id_modulo) && $_SESSION["utente"]->permission($cmd_info["modulo_riferimento"])) { |
|
$codice_round = $_GET["codice_round"] ?? NULL; |
|
$gara = gara::init($_GET["codice"],$codice_round); |
|
if (!empty($gara)) { |
|
$record = $gara->info; |
|
$round = $gara->round; |
|
$lotti = $gara->getLotti(); |
|
$partial = false; |
|
$multiLotto = (count($gara->getLotti()) > 1); |
|
$lottiMisti = $gara->lottiMisti(); |
|
$sogliaAttiva = (($gara->getRisposteElaborazione()["sogliaMinima"] ?? "N") != "N"); |
|
$lock = $gara->checkLock($cmd_info["id"]); |
|
$titolo_modulo = __($cmd_info["titolo"]); |
|
|
|
if (!empty($round)) { $titolo_modulo .= " - " . $round["infoFase"]["titolo"]; } |
|
$macro = null; |
|
if (!empty($_GET["codice_padre"])) { |
|
$macro = $gara->getCriteri($_GET["codice_padre"])[0] ?? null; |
|
$form = $gara->getFormCriterio($macro["codice"]); |
|
} |
|
|
|
$breadcrumb = array(); |
|
$breadcrumb["/".$radice."/"] = Modulo::getInfo($radice)["titolo"]; |
|
$breadcrumb["/".$radice."/panel.php?codice=".$record["codice"]."&codice_round=".$round["codice"]] = __("Pannello"); |
|
if (!empty($_GET["codice_lotto"]) && $multiLotto) { |
|
$breadcrumb["/".$radice."/criteri/index.php?codice=".$record["codice"]."&codice_round=".$round["codice"]] = __("Selezione lotto"); |
|
} |
|
if (!empty($macro)) { $breadcrumb["/".$radice."/criteri/index.php?codice=".$record["codice"]."&codice_round=".$round["codice"]."&codice_lotto=".$_GET["codice_lotto"]] = __("Macro criteri"); } |
|
$breadcrumb[""] = $titolo_modulo; |
|
|
|
include_once ($beRoot."/layout/top.php"); |
|
?><h1><?= $titolo_modulo ?></h1><? |
|
if ($gara->chooseLotto($_GET["codice_lotto"] ?? false,"{$_SERVER["PHP_SELF"]}?codice=".$record["codice"]."&codice_round=".$round["codice"])) { |
|
$lotto = $gara->lotto; |
|
if (!empty($macro)) { |
|
if (empty($form)) { |
|
$criteri = $gara->getSubCriteri($macro["codice"]); |
|
} |
|
} else { |
|
$criteri = $gara->getMacroCriteri(); |
|
} |
|
?> |
|
<?= ($macro !== null) ? "<h4><span class='fa fa-sitemap'></span> {$macro["denominazione"]}</h4>" : "" ?> |
|
<?= (!empty($lotto)) ? "<h4><span class='fa fa-list'></span> {$lotto["oggetto"]}</h4>" : "" ?> |
|
<div id="commands" class="mb-5"> |
|
<div class="commands container-fluid"> |
|
<div class="row"> |
|
<div class="col-12 text-right"> |
|
<? if (!empty($criteri) && (!$multiLotto || !empty($lotto))) { ?> |
|
<a target="_blank" href='export.php?codice_gara=<?= $record["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?>' class="btn btn-warning" title="<?= __('Esporta') ?>"><span class="fa fa-download"></span> <?= __('Esporta') ?></a> |
|
<? } ?> |
|
<? if (!$lock) { ?> |
|
<button onClick="showModalWithURL('edit.php?codice_gara=<?= $record["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice=0<?= ($macro !== null) ? "&codice_padre={$macro["codice"]}" : "" ?>')" class="btn btn-success" title="<?= __('Aggiungi nuovo') ?>"><span class="fa fa-plus-circle"></span> <?= __('Aggiungi nuovo') ?></button> |
|
<? } ?> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<? |
|
if (!empty($criteri)) { |
|
$formule = gara::getFormule(); |
|
?> |
|
<div class="card mb-2"> |
|
<div class="card-body"> |
|
<table class="table table-striped table-hover m-0"> |
|
<thead> |
|
<tr> |
|
<th width="10"></th> |
|
<th width="10"></th> |
|
<th><?= __("descrizione") ?></th> |
|
<th class="text-center" width="10"><?= __("economico") ?></th> |
|
<th class="text-center" width="100"><?= __("tipologia") ?></th> |
|
<th class="text-center" width="10%"><?= __("peso") ?></th> |
|
<? if ($sogliaAttiva) { ?><th class="text-center" width="10%"><?= __("soglia") ?></th><? } ?> |
|
<? if ($multiLotto && empty($macro)) { ?> |
|
<th width="200"></th> |
|
<? } ?> |
|
<th width="10"></th> |
|
</tr> |
|
</thead> |
|
<tbody id="listCriteri"> |
|
<? |
|
$somma = 0; |
|
$form = $pdo->prepare("SELECT codice FROM b_gare_form WHERE codice_criterio = :criterio"); |
|
$sub = $pdo->prepare("SELECT codice, peso FROM b_gara_criteri_valutazione WHERE codice_padre = :criterio"); |
|
$preview_tecnica = false; |
|
$preview_economica = false; |
|
foreach($criteri AS $criterio) { |
|
$btnErrorClass = ""; |
|
$somma += $criterio["peso"]; |
|
$status = "bg-success"; |
|
$badge = 0; |
|
$badge_sub = 0; |
|
$badgeEP = 0; |
|
$note = ""; |
|
$sub = $gara->getSubCriteri($criterio["codice"]); |
|
if (!empty($sub)) { |
|
$badge_sub = count($sub); |
|
$totale_sub = 0; |
|
foreach($sub AS $s) { |
|
$totale_sub += $s["peso"]; |
|
$form->bindValue(":criterio",$s["codice"]); |
|
$form->execute(); |
|
if ($form->rowCount()) { $preview_tecnica = true; } |
|
if ($s["auto"] != "") { |
|
if ($s["economico"] == "S" || $s["busta"] == "economica") { $preview_economica = true; } |
|
if ($s["economico"] == "N" && $s["busta"] != "economica") { $preview_tecnica = true; } |
|
} |
|
} |
|
if ($totale_sub != $criterio["peso"]) { |
|
$status = "bg-warning"; |
|
$note .= __("Totale sub-criteri errato"); |
|
} |
|
} |
|
if ($criterio["tipologia"] == "Q") { |
|
$form->bindValue(":criterio",$criterio["codice"]); |
|
$form->execute(); |
|
$badge = $form->rowCount(); |
|
if ($badge > 0) { |
|
$preview_tecnica = true; |
|
} |
|
} |
|
if ($criterio["auto"] != "") { |
|
if ($criterio["economico"] == "S" || $criterio["busta"] == "economica") { $preview_economica = true; } |
|
if ($criterio["economico"] == "N" && $criterio["busta"] != "economica") { $preview_tecnica = true; } |
|
if ($criterio["tipologia"] == "E" && !empty($criterio["auto"])) { |
|
$elencoPrezzi = $gara->getElencoPrezzi($criterio["codice"]); |
|
if (empty($elencoPrezzi)) { |
|
$status = "bg-danger"; |
|
$btnErrorClass = "warning"; |
|
$note .= " " . __("Elenco prezzi mancante"); |
|
} else { |
|
$badgeEP = count($elencoPrezzi); |
|
} |
|
} |
|
} |
|
$totalBadge = $badge + $badge_sub + $badgeEP; |
|
?> |
|
<tr class="rowCritero"> |
|
<td width="10" class="handle"><span class="text-disabled fa fa-bars"></span></td> |
|
<td width="10"><div class="status_flag <?= $status ?>"></div></td> |
|
<td> |
|
<input class="ordinamento" type="hidden" name="ordinamento-criteri[<?= $criterio["codice"] ?>]" value="<?= $criterio["ordinamento"] ?>"> |
|
<strong><?= $criterio["denominazione"] ?></strong> |
|
<? if (!empty($formule[$criterio["auto"]])) { ?> |
|
<span class="badge badge-info"><span class="fa fa-magic"></span> <?= __($formule[$criterio["auto"]]["titolo"]) ?></span> |
|
<? } else if ($criterio["tipologia"] != "Q") { ?> |
|
<span class="badge badge-secondary"><?= __("Valutazione automatica disattiva") ?></span> |
|
<? } ?> |
|
<? if (!empty($note)) { ?> |
|
<span class="badge badge-<?= $btnErrorClass ?>"><?= $note ?></span> |
|
<? } ?> |
|
<br><small><?= $criterio["descrizione"] ?></td> |
|
<td class="text-center"><?= ($criterio["economico"] == "S") ? __("Si") : __("No") ?></td> |
|
<td class="text-center"> |
|
<? |
|
switch($criterio["tipologia"]) { |
|
case "Q": echo __("Discrezionale"); break; |
|
case "N": echo __("Quantitativo"); break; |
|
case "E": echo __("Elenco prezzi"); break; |
|
default: echo __("Configurazione errata"); |
|
} |
|
?> |
|
</td> |
|
<td class="text-center" width="10%"><?= $criterio["peso"] ?></td> |
|
<? if ($sogliaAttiva) { ?><td class="text-center" width="10%"><?= $criterio["soglia"] ?></td><? } ?> |
|
<? if ($multiLotto && empty($macro)) { |
|
$selezionati = $gara->getLottiFromCriterio($criterio["codice"]); |
|
$label = __("Errore"); |
|
$color = "danger"; |
|
if (!empty($selezionati)) { |
|
if (empty($selezionati[0])) { |
|
if ($criterio["economico"] == "S" || !$lottiMisti) { |
|
$label = __("Tutti i lotti"); |
|
$color = "success"; |
|
} else { |
|
$partial = true; |
|
$color = "warning"; |
|
$label = __("Lotti compatibili"); |
|
} |
|
} else { |
|
$partial = true; |
|
$color = "warning"; |
|
$label = count($selezionati) . "/" . count($lotti) . " " . __("Lotti"); |
|
} |
|
} |
|
?> |
|
<td> |
|
<button onClick="showModalWithURL('lotti.php?_disableRefresh=1&codice_gara=<?= $record["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice=<?= $criterio["codice"] ?>')" class="btn btn-block btn-sm btn-<?= $color ?>" title="<?= __('Lotti') ?>"><?= $label ?></button> |
|
</td> |
|
<? } ?> |
|
<td> |
|
<div class="dropdown"> |
|
<button title='<?= __("gestione") ?>' class='btn btn-block btn-sm btn-<?= (!empty($btnErrorClass)) ? $btnErrorClass : "info" ?> dropdown-toggle' type="button" id="menuAzioni<?= $criterio["codice"] ?>" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
|
<span class='fa fa-cog'></span> <?= __("Operazioni") ?> |
|
<? if ($totalBadge > 0) { ?><span class="badge badge-danger"><?= $totalBadge ?></span><? } ?> |
|
</button> |
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="menuAzioni<?= $criterio["codice"] ?>"> |
|
<a href="#" onClick="showModalWithURL('edit.php?codice_gara=<?= $record["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice=<?= $criterio["codice"] ?>')" class="dropdown-item" title="<?= __('modifica') ?>"><span class="fa fa-edit"></span> <?= __("Dettagli") ?></a> |
|
<? if ($criterio["tipologia"] == "E" && !empty($criterio["auto"])) { |
|
$modal = "elencoPrezzi.php"; |
|
$label = __("Elenco prezzi"); |
|
?> |
|
<a href="#" onClick="showModalWithURL('<?= $modal ?>?codice_gara=<?= $record["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice=<?= $criterio["codice"] ?>')" class="dropdown-item" title="<?= $label ?>"> |
|
<? if ($badgeEP > 0) { ?> |
|
<span class="fa fa-clipboard-list"></span> <?= $label ?> |
|
<span class="badge badge-danger"><?= $badgeEP ?></span> |
|
<? } else { ?> |
|
<span class="text-warning"><span class="fa fa-exclamation-triangle"></span> <?= $label ?></span> |
|
<? } ?> |
|
</a> |
|
<? |
|
} |
|
if ($criterio["tipologia"] == "Q" && $criterio["economico"] == "N" && $badge_sub == 0) { |
|
$modal = "form.php"; |
|
$label = __("Form"); |
|
?> |
|
<a href="#" onClick="showModalWithURL('<?= $modal ?>?codice_gara=<?= $record["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice=<?= $criterio["codice"] ?>')" class="dropdown-item" title="<?= $label ?>"> |
|
<span class="fa fa-list"></span> <?= $label ?> |
|
<? if ($badge > 0) { ?><span class="badge badge-danger"><?= $badge ?></span><? } ?> |
|
</a> |
|
<? } ?> |
|
<? if (empty($macro) && $badge == 0 && empty($criterio["auto"])) { ?> |
|
<a class="dropdown-item" href="/backend/gare/criteri/index.php?codice=<?= $gara->info["codice"] ?>&codice_round=<?= $gara->round["codice"] ?>&codice_padre=<?= $criterio["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?>"> |
|
<span class="fa fa-sitemap"></span> |
|
<?= __("Subcriteri") ?> |
|
<? if ($badge_sub > 0) { ?><span class="badge badge-danger"><?= $badge_sub ?></span><? } ?> |
|
</a> |
|
<? } ?> |
|
<? if (empty($lock)) { ?> |
|
<a href="#" title="<?= __("elimina") ?>" class="dropdown-item text-danger" onclick="elimina('<?= $criterio["codice"] ?>','gare/criteri');"><span class='fa fa-times'></span> <?= __("Elimina") ?></a> |
|
<? } ?> |
|
</div> |
|
</div> |
|
</td> |
|
</tr> |
|
<? |
|
} |
|
?> |
|
</tbody> |
|
<? if (!$multiLotto || !empty($lotto)) { |
|
$totale = ($macro === null) ? 100 : $macro["peso"]; |
|
$differenza = $totale - $somma; |
|
?> |
|
<tfoot> |
|
<tr> |
|
<th class="text-right" colspan="5"><?= __("Totale") ?></th> |
|
<th class="text-center <?= (!empty($differenza)) ? "text-danger" : "" ?>"> |
|
<?= $somma ?> / <?= $totale ?> |
|
<? if (!empty($differenza)) { |
|
echo "<br>". __("Differenza")." ". $differenza; |
|
} ?> |
|
</th> |
|
<th colspan="5"></th> |
|
</tr> |
|
</tfoot> |
|
<? } ?> |
|
</table> |
|
</div> |
|
<? |
|
if (($preview_economica || $preview_tecnica)) { |
|
?> |
|
<div class="card-footer"> |
|
<? if ((!$multiLotto || !empty($lotto))) { ?> |
|
<? if ($preview_economica) { ?> |
|
<button class="btn btn-info float-right mx-1" onClick="showModalWithURL('preview.php?economica=1&codice_gara=<?= $record["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?? 0 ?>')"> |
|
<span class="fa fa-search"></span> <?= __("Anteprima form Economico") ?></button> |
|
</button> |
|
<? } ?> |
|
<? if ($preview_tecnica) { ?> |
|
<button class="btn btn-info float-right" onClick="showModalWithURL('preview.php?economica=0&codice_gara=<?= $record["codice"] ?>&codice_round=<?= $round["codice"] ?>&codice_lotto=<?= $lotto["codice"] ?? 0 ?>')"> |
|
<span class="fa fa-search"></span> <?= __("Anteprima form Tecnico") ?></button> |
|
</button> |
|
<? } ?> |
|
<? } else { ?> |
|
<div class="text-right p-2"> |
|
<a href="#" onClick="showModalWithURL('selectLotto.php?codice_gara=<?= $record["codice"] ?>&codice_round=<?= $round["codice"] ?>')" class="alert alert-warning text-right"><?= __("Seleziona un lotto per visualizzare l'anteprima") ?></a> |
|
</div> |
|
<? } ?> |
|
</div> |
|
<? |
|
} |
|
?> |
|
</div> |
|
<? |
|
$gara->alertModifichePericolose($id_modulo); |
|
if (!$lock) { |
|
?> |
|
<script> |
|
$( "#listCriteri" ).sortable({ |
|
handle: ".handle", |
|
update: function( event, ui ) { |
|
$(".rowCritero","#listCriteri").each(function(index, el) { |
|
$(this).find('.ordinamento').val(index); |
|
}); |
|
$.ajax({ |
|
type: "POST", |
|
url: '/backend/gare/criteri/save-order.php', |
|
data: $('.ordinamento').serialize(), |
|
async: true |
|
}); |
|
} |
|
}); |
|
</script> |
|
<? |
|
} |
|
} else { |
|
alertManager::printWarningBox(__("Nessun risultato")); |
|
} |
|
} |
|
include_once ($beRoot."/layout/bottom.php"); |
|
} else { |
|
echo '<meta http-equiv="refresh" content="0;URL=/index.php">'; |
|
die(); |
|
} |
|
} else { |
|
echo '<meta http-equiv="refresh" content="0;URL=/index.php">'; |
|
die(); |
|
} |
|
?>
|
|
|