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.
255 righe
13 KiB
255 righe
13 KiB
<?php |
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php"; |
|
include_once $configPath ; |
|
if (!empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice,$_GET["codice"])) { |
|
$codice_round = $_GET["codice_round"] ?? null; |
|
$gara = gara::init($_GET["codice"],$codice_round); |
|
|
|
|
|
if ($gara !== false) { |
|
$record = $gara->info; |
|
$round = $gara->round; |
|
$lotti = $gara->getLotti(); |
|
$extraInfoGara = $gara->getExtraInfo()["gara"]; |
|
$breadcrumb = array(); |
|
$breadcrumb["/".$radice."/"] = Modulo::getInfo($radice)["titolo"]; |
|
$breadcrumb[""] = __("Pannello"); |
|
include_once $beRoot."/layout/top.php"; |
|
$stati = gara::getStati(); |
|
$stato = $stati[$record["stato"]]; |
|
if ($record["stato"] == 20 && strtotime($round["pubblicazione"]) > time()) { |
|
$stato["titolo"] = "Programmata pubblicazione"; |
|
} |
|
$alertManager = new alertManager("gara-{$record["codice"]}"); |
|
$canCreate = $_SESSION["ente"]->checkLimite($radice,true); |
|
if ($canCreate) { |
|
if (!$_SESSION["utente"]->readOnly) { |
|
$canCreate = $_SESSION["utente"]->permission("gare.insert"); |
|
} else { |
|
$canCreate = false; |
|
} |
|
} |
|
if ($gara->quickAvailable && !isset($extraInfoGara["quickPanel"]) && empty($gara->info["stato"])) { |
|
?> |
|
<div class="card"> |
|
<div class="card-header"> |
|
<span class="card-title h3"><?= __("Scelta pannello") ?></span> |
|
</div> |
|
<div class="card-body"> |
|
<? alertManager::printInfoBox(__("Procedura semplificata disponibile"),__("La procedura scelta permette l'accesso ad un pannello di gestione semplificato per assolvere ai soli obblighi di trasparenza, come vuoi procedere?")); ?> |
|
<form action="/backend/gare/setQuickPanel.php" method="POST"> |
|
<input type="hidden" name="codice" value="<?= $record["codice"] ?>"> |
|
<input type="hidden" name="token" value="<?= tokenGen() ?>"> |
|
<input type="hidden" id="quickPanel" name="quickPanel" value=""> |
|
<div class="row"> |
|
<div class="col-12 col-lg-6"> |
|
<button type="submit" onClick="$('#quickPanel').val('S');" class="btn btn-warning btn-lg btn-block p-5"> |
|
<span class="fa fa-bolt fa-5x"></span><br> |
|
<?= __("Pannello semplificato") ?> |
|
</button> |
|
</div> |
|
<div class="col-12 col-lg-6"> |
|
<button type="submit" onClick="$('#quickPanel').val('N');" class="btn btn-primary btn-lg btn-block p-5"> |
|
<span class="fa fa-suitcase fa-5x"></span><br> |
|
<?= __("Pannello completo") ?> |
|
</button> |
|
</div> |
|
</div> |
|
</form> |
|
</div> |
|
</div> |
|
<? |
|
} else { |
|
?> |
|
<div id="commands" class="mb-5"> |
|
<div class="commands container-fluid clearfix"> |
|
<? if ($gara->quickAvailable && $_SESSION["utente"]->isSupportoOrRoot()) { ?> |
|
<form class="float-right mx-1" action="/backend/gare/setQuickPanel.php" method="POST"> |
|
<input type="hidden" name="codice" value="<?= $record["codice"] ?>"> |
|
<input type="hidden" name="token" value="<?= tokenGen() ?>"> |
|
<input type="hidden" id="quickPanel" name="quickPanel" value=""> |
|
<button type="submit" onClick="$('#quickPanel').val('<?= $gara->quickPanel ? 'N' : 'S' ?>');" class="btn btn-secondary"> |
|
<span class="fa fa-sync"></span> <?= __("Passa a") . ": " . __("Pannello " . (($gara->quickPanel) ? "completo" : "semplificato")); ?> |
|
</button> |
|
</form> |
|
<? } ?> |
|
<div class="btn-group flex-wrap float-right"> |
|
<? if ($_SESSION["utente"]->hasSuperPowers()) { ?> |
|
<? if (!empty($record["stato"]) > 0) { ?> |
|
<button class="btn btn-danger" onClick="showModalWithURL('/backend/gare/oneStepBehind.php?codice=<?= $record["codice"] ?>');"><span class="fa fa-undo-alt"></span> <?= __("Porta allo step precedente") ?></button> |
|
<? } ?> |
|
<? if (!empty($record["public_key"]) && !$gara->checkPartecipantiPresenti()) { ?> |
|
<button class="btn btn-danger" onClick="if (confirm('<?= __("Sei sicuro di voler procedere?") ?>')) { showModalWithURL('/backend/gare/removePublic.php?codice=<?= $record["codice"] ?>'); }"><span class="fa fa-key"></span> <?= __("Rimuovi chiave") ?></button> |
|
<? } ?> |
|
<? } ?> |
|
<? if ($_SESSION["utente"]->canAssignPermissions()) { ?> |
|
<button type="button" class="btn btn-danger" onClick="managePermessi('gare','<?= $record["codice"] ?>','<?= $record["codice_ente"] ?>')"> |
|
<span class="fa fa-lock"></span> <?= __("Permessi") ?> |
|
</button> |
|
<? } ?> |
|
<? $alertManager->printAlertModalButton() ?> |
|
<button type="button" class="btn btn-info" onClick="showModalWithURL('/backend/calendar.php?month=<?= date('m') ?>&year=<?= date('Y') ?>&modal=1&modulo=gare&codice_elemento=<?= $record["codice"] ?>')"> |
|
<span class="fa fa-calendar"></span> <?= __("Scadenzario") ?> |
|
</button> |
|
<button type="button" class="btn btn-info" onClick="showModalWithURL('/backend/listAttivita.php?modal=1&modulo=gare&codice_elemento=<?= $record["codice"] ?>')"> |
|
<span class="fa fa-road"></span> <?= __("Roadmap") ?> |
|
</button> |
|
<button type="button" class="btn btn-primary" onClick="openChat('gare','<?= $record["codice"] ?>','<?= $record["codice_ente"] ?>')"> |
|
<span class="fa fa-envelope"></span> <?= __("Chat interna") ?> |
|
<? $unread = Communicator::countUnreadInitiativeChat('gare',$record["codice"]); ?> |
|
<span id="badge-chat" class="badge"><?= (!empty($unread)) ? $unread : "" ?></span> |
|
</button> |
|
<?php if ($canCreate): ?> |
|
<a class="btn btn-default" href="/backend/gare/edit.php?codice=0©=<?= $record["codice"] ?>" title="<?= __("copia") ?>"><span class="fa fa-copy"></span> <?= __("Copia") ?></a> |
|
<?php endif ?> |
|
</div> |
|
</div> |
|
</div> |
|
<?php if(!empty($gara->info["importata"])): ?> |
|
<?php if($gara->info["importata"] === "BDNCP"): ?> |
|
<div class="alert alert-warning my-2"> |
|
|
|
<h5> |
|
<i class="fa fa-exclamation-triangle"></i> |
|
<?= __("Gara importata da BDNCP") ?> |
|
</h5> |
|
<?= __("Si specifica che le informazioni disponibili in BDNCP non consentono la ricostruzione integrale del pannello di gara.") ?> |
|
<p> |
|
<?= __("Pertanto l'importazione è funzionale solo allo scopo di sincronizzazione delle schede trasmesse e alla compilazione delle successive schede previste dagli adempimenti e dai flussi ANAC.") ?> |
|
</p> |
|
<?php if ($gara->validaElaborazione() !== true && $gara->info["stato"] < 10) : ?> |
|
<div class="alert alert-danger mb-0"> |
|
<strong><?= __("Attenzione:") ?></strong> |
|
<?= __("Sarà necessario integrare le risposte mancanti nella sezione 'Elaborazione' per visualizzare il modulo ANAC") ?> |
|
</div> |
|
<?php endif; ?> |
|
</div> |
|
<?php endif; ?> |
|
<?php endif; ?> |
|
<div class="mt-5"> |
|
<h1 style="border-bottom: 5px solid <?= $stato["color"] ?>" class="clearfix"> |
|
<?= __("Gara") ?> #<?= $record["id"] ?> |
|
<small class="float-right"><?= __($stato["titolo"]); ?></small> |
|
</h1> |
|
</div> |
|
<h3><?= $record["oggetto"] ?></h3> |
|
|
|
<? |
|
$rounds = $gara->getRounds(); |
|
if (count($rounds) > 1) { |
|
?> |
|
<div class="card card-body p-2 mb-2"> |
|
<div class="d-flex flex-row"> |
|
<? |
|
$class = round(12 / count($rounds)); |
|
$procedura = $gara->getProcedura(); |
|
$cont = []; |
|
foreach($rounds AS $rnd) { |
|
if (!isset($cont[$rnd["id"]])) { |
|
$cont[$rnd["id"]] = 0; |
|
} |
|
$cont[$rnd["id"]]++; |
|
$infoFase = $procedura["fasi"][$rnd["id"]]; |
|
?> |
|
<div class="mx-2 text-center"> |
|
<a href="/backend/gare/panel.php?codice=<?= $record["codice"] ?>&codice_round=<?= $rnd["codice"] ?>" class="btn py-2 px-5 btn-block <?= ($rnd["codice"] == $gara->round["codice"]) ? "btn-success" : "btn-secondary" ?>"> |
|
<span class="<?= ($rnd["codice"] == $gara->round["codice"]) ? "fa fa-check-circle" : "far fa-circle" ?>"></span> <?= __($infoFase["titolo"]) ?> <?= ($infoFase["ripetibile"]) ? (": " . $cont[$rnd["id"]]) : "" ?> |
|
</a> |
|
</div> |
|
<? |
|
} |
|
?> |
|
</div> |
|
</div> |
|
<? |
|
} |
|
$filtri = []; |
|
$filtri["scaduta"] = false; |
|
$filtri["apertura"] = false; |
|
if ($gara->privata) { |
|
$filtri["privata"] = true; |
|
} |
|
if ($gara->getModalita()["online"]) { |
|
$filtri["online"] = true; |
|
} else { |
|
$filtri["offline"] = true; |
|
} |
|
if (!empty($gara->round["infoFase"])) { |
|
if ($gara->round["infoFase"]["graduatoria"]) { |
|
$filtri["graduatoria"] = true; |
|
} else { |
|
$filtri["istanza_semplice"] = true; |
|
} |
|
} |
|
if (strtotime($round["scadenza"])<=time() || $gara->quickPanel) { unset($filtri["scaduta"]); } |
|
if (strtotime($round["apertura"])<=time() || $gara->quickPanel) { unset($filtri["apertura"]); } |
|
$ris_tipi = gara::getTipologie(); |
|
if (count($ris_tipi) > 0) { |
|
?> |
|
<div class="card card-body"> |
|
<div class="row"> |
|
<? |
|
foreach($ris_tipi AS $id_tipo => $rec_tipo) { |
|
$filtri["tipo"] = $id_tipo; |
|
$stati = $gara->getStatoPannello(); |
|
$statoMin = $stati["min"]; |
|
$statoMax = $stati["max"]; |
|
$ris_comandi = gara::getModuli($filtri,$statoMax,null,$gara->quickPanel); |
|
if (count($ris_comandi) > 0) { |
|
$class = 12 / count($ris_tipi); |
|
$class= "col-sm-".$class; |
|
$tipo = __($rec_tipo["titolo"]); |
|
?> |
|
<div class="col-12 <?= $class ?>"> |
|
<span class="h3"> |
|
<? echo ucfirst($tipo) ?> |
|
</span> |
|
<? |
|
foreach($ris_comandi AS $id_comando => $rec) { |
|
$badge = ""; |
|
$show = true; |
|
$folder = explode("/",$rec["link"]); |
|
$temp = array_pop($folder); |
|
$folder = implode("/",$folder); |
|
$hrefComando = $rec["link"]; |
|
$hrefComando .= (strpos($rec["link"], "?") === false) ? "?" : "&"; |
|
$hrefComando .= "codice={$record["codice"]}&codice_round={$round["codice"]}"; |
|
if (file_exists($root.$folder."/check.php")) { include($root.$folder."/check.php"); } |
|
$lock = $gara->checkLock($id_comando,$statoMin); |
|
$status = ""; |
|
if (file_exists($root.$folder."/_status.php") && ($show || empty($rec["stato_minimo"]) || $rec["stato_minimo"] <= 20)) { |
|
include($root.$folder."/_status.php"); |
|
} |
|
if ($show && $_SESSION["utente"]->permission($radice,$_GET["codice"],$id_comando) && $_SESSION["utente"]->permission($rec["modulo_riferimento"])) { |
|
?> |
|
<a class="btn my-1 <?= $status ?> btn-block btn-<?=($lock==true) ? "secondary" : "info"?>" href="<?= $hrefComando ?>" title="<?= __($rec["descrizione"] ?? $rec["titolo"]) ?>"> |
|
<span class="float-left"><?= __($rec["titolo"]) ?></span> |
|
<? if ($rec["badge"] != "") { |
|
if (file_exists($root.$rec["badge"])) { include($root.$rec["badge"]); } |
|
} ?> |
|
<div class="clearfix"></div> |
|
</a> |
|
<? |
|
} |
|
} ?> |
|
</div> |
|
<? } |
|
} |
|
if (!empty($alertManager->alerts)) { |
|
$alertManager->printModal(); |
|
} |
|
?> |
|
</div> |
|
</div> |
|
<? |
|
} |
|
include_once ($beRoot."/layout/bottom.php"); |
|
} |
|
} else { |
|
echo '<meta http-equiv="refresh" content="0;URL=/backend/index.php">'; |
|
die(); |
|
} |
|
} else { |
|
echo '<meta http-equiv="refresh" content="0;URL=/backend/index.php">'; |
|
die(); |
|
}
|
|
|