gestione gare pubbliche
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.
 
 
 
 
 

297 righe
12 KiB

<?
$_cdir = __DIR__;
$root = dirname($_cdir, 3);
include_once "{$root}/config.php";
include_once "{$_cdir}/class/TedEsender.class.php";
if (!empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice)) {
if (isset($_GET["draw"])) {
$return = [];
$return["draw"] = (int) $_GET["draw"];
$return["recordsTotal"] = (int) 0;
$return["recordsFiltered"] = (int) 0;
$bind = [];
$select = "SELECT b_guue.codice, b_guue.titolo, b_guue.version, b_guue.numero, b_guue.anno, b_guue.numero_ojs, b_guue.form,
b_guue.numero_tecnico, b_guue.form, b_guue.stato, b_guue.data_trasmissione, b_guue.data_pubblicazione,
b_guue.data_aggiornamento, b_guue.modulo, b_guue.codice_elemento";
$sql = "FROM b_guue WHERE soft_delete = 'N'";
if (!empty($_GET["modulo"]) && !empty($_GET["codice_elemento"]) && !empty(TedEsender::moduliCollegati()[$_GET["modulo"]])) {
$sql .= " AND modulo = :modulo AND codice_elemento = :elemento";
$bind[":modulo"] = $_GET["modulo"];
$bind[":elemento"] = $_GET["codice_elemento"];
}
$sql .= " AND b_guue.version = 'eSender' ";
if ($_SESSION["utente"]->gerarchia > 10 && (settingsManager::getValue("visibilitaGUUE",$_SESSION["ente"]->codice) == "N")) {
$ids = Utente::getPermissionsInModulo($_SESSION["ente"]->codice, $_SESSION["utente"]->codice, "guue");
$ids = implode(",",$ids);
$sql = "{$sql} AND b_guue.codice IN ({$ids})";
}
if (! $_SESSION["utente"]->fromHere()) {
$sql = "{$sql} AND codice_ente = :codice_ente";
$bind[":codice_ente"] = $_SESSION["utente"]->codice_ente;
}
$risultati = $pdo->go("SELECT codice {$sql}", $bind);
if ($risultati->rowCount() > 0) {
$sql = "{$select} {$sql}";
$return["recordsTotal"] = (int) $risultati->rowCount();
if (!empty($_GET["search"]["value"])) {
$sql = "{$sql} AND (";
$suddivisione = suddivisione_pdo($_GET["search"]["value"], "b_guue.titolo");
$sql = "{$sql} (" . $suddivisione["sql"] . ") OR ";
$bind = array_merge($bind,$suddivisione["bind"]);
$suddivisione = suddivisione_pdo($_GET["search"]["value"], "b_guue.form");
$sql = "{$sql} (" . $suddivisione["sql"] . ") OR ";
$bind = array_merge($bind,$suddivisione["bind"]);
$suddivisione = suddivisione_pdo($_GET["search"]["value"], "b_guue.valori");
$sql = "{$sql} (" . $suddivisione["sql"] . ")";
$bind = array_merge($bind,$suddivisione["bind"]);
$sql .= ")";
}
if (isset($_GET["stato"]) && $_GET["stato"] !== "") {
$bind[":status"] = $_GET["stato"];
$sql = "{$sql} AND b_guue.stato = :status ";
}
$dir = "DESC";
$order = "b_guue.codice {$dir}";
if($_GET["order"][0]["dir"] !== "desc") { $dir = "ASC"; }
switch($_GET["order"][0]["column"]) {
case "3": $order = "b_guue.codice {$dir}"; break;
case "2": $order = "b_guue.form {$dir}"; break;
case "1": $order = "b_guue.stato {$dir}"; break;
}
$sql = "{$sql} ORDER BY {$order}";
$risultatiBeforLimit = $pdo->go($sql,$bind);
if ($_GET["length"] !== "-1" && is_numeric($_GET["start"]) && is_numeric($_GET["length"])) {
$sql = "{$sql} LIMIT " . (int) $_GET["start"] . ", " . (int) $_GET["length"];
}
$risultati = $pdo->go($sql,$bind);
$return["data"] = [];
if ($risultati->rowCount() > 0) {
if (!empty($_GET["search"]["value"])) {
$return["recordsFiltered"] = (int)$risultatiBeforLimit->rowCount();
} else {
$return["recordsFiltered"] = $return["recordsTotal"];
}
$s = TedEsender::getStati();
$stati = array_flip(array_column($s, 'title'));
$settings = jsonToArray(__DIR__."/config/settings.json");
$eforms = eFormsManager::listAvailableNoticeForms()["options"];
while($record = $risultati->fetch(PDO::FETCH_ASSOC)) {
$stato = $s[$stati[$record["stato"]]];
$stato_str = $record["stato"];
// Temp fix per ANAC
if($record["stato"] == "TRASMESSO" && $record["version"] == "eForms") {
$stato_str = __guue("Pronto per ANAC");
} else {
$stato_str = __guue(ucwords(strtolower($stato_str)));
}
$tipologia = $eforms[$record["form"]] ?? "n.a.";
if($record["version"] == "eSender") {
$tipologia = $settings["forms"][$record["form"].".xsd"]["name"] ?? "n.a.";
}
$row = [];
$row[] = "<div class='text-center px-1'><div class=\"badge badge-primary badge-pill\" style=\"background-color:{$stato["color"]}; !important\">{$stato_str}</div></div>";
$row[] = "<small>({$record["version"]})</small> {$tipologia}";
$row[] = $record["codice"];
$titolo = $record["titolo"];
if($record["modulo"] && $record["codice_elemento"] && !isset($_GET["modulo"])) {
$modulo = $record["modulo"];
$codice_elemento = $record["codice_elemento"];
global $beRoot;
if (file_exists("{$beRoot}/{$modulo}/panel.php")) {
$infoModulo = Modulo::getInfo($modulo);
$modulo_url = "/backend/{$modulo}/panel.php?codice={$codice_elemento}";
$titolo .= " - (<a href='{$modulo_url}'>{$infoModulo['titolo']}</a>)";
}
}
$row[] = $titolo;
$numero = "";
if(! empty($record["numero_ojs"])) { $numero = "<b>{$record["numero_ojs"]}</b><br>"; }
$numero = "{$numero}{$record["numero_tecnico"]}";
$row[] = $numero;
$row[] = mysql2datetime($record["data_aggiornamento"]);
$json_downloadable = false;
if ($_SESSION["utente"]->isSupportoOrRoot()) {
$json_downloadable = true;
}
$sendable = false;
//if($stato["status"] == 10) { $sendable = true; }
$editable = false;
$viewable = true;
// Riattivo l'edit anche per gli eform pronti per anac
if($stato["status"] < 20) { $editable = true; }
$downloadable = false;
if($stato["status"] == 100 || $stato["status"] == 97 ) { $downloadable = true; }
$deletable = true;
if($stato["status"] >= 20 && ($stato["status"] != 98 || $stato["status"] != 99)) { $deletable = false; }
$xmlable = true;
if($stato["status"] < 10 || !$_SESSION["utente"]->isSupportoOrRoot()) { $xmlable = false; }
$updatable = false;
if(($stato["status"] == 20) && ($_SESSION["utente"]->isSupportoOrRoot() || $config["developEnv"])) {
$updatable = true;
}
$pdf = false;
$rectify = false;
if ($stato["status"] == 100 || ($stato["status"] >= 20 && $record["version"] != "eForms")) {
$id_guue = $record["numero_tecnico"];
if (!empty($record["numero_ojs"])) {
$anno_guue = explode("/",$record["numero_ojs"]);
$anno_guue = $anno_guue[0];
$id_guue = explode("-",$record["numero_ojs"]);
$id_guue = end($id_guue);
$pdf = true;
}
$rectify = true;
}
$importable = $_SESSION["utente"]->isSupportoOrRoot();
if ($record["version"] != "eForms") {
$sendable = false;
$xmlable = false;
$json_downloadable = false;
$rectify = false;
$importable = false;
$downloadable = false;
$pdf = false;
$viewable = false;
// Per le vecchie pubblicazioni abilito la possibilità di scaricare l'avviso
if($stato["status"] >= 20) {
$downloadable = true;
$pdf = true;
}
}
ob_start();
if ($sendable || $editable || $viewable|| $downloadable || $deletable || $xmlable || $updatable || $pdf || $rectify || $importable) {
?>
<div class="dropdown pl-3">
<a class="dropdown-toggle btn btn-light" href="#" id="dropdownLanguage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-cog"></span>
</a>
<div class="dropdown-menu bg-light p-2 flex" aria-labelledby="dropdownEdit">
<? if ($editable || $viewable) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= $editable ? __guue("Modifica") : __guue("Visualizza") ?>"class="btn btn-info btn-sm w-100" href="<?="/backend/guue/edit.php?&codice={$record["codice"]}&form={$record["form"]}"?>" role="button">
<i style="width: 18px" class="fas fa-<?= $editable ? "pencil-alt" : "link" ?>"></i>
<b><?= $editable ? __guue("Modifica") : __guue("Visualizza") ?></b>
</a>
</div>
<?if ($importable) {?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?=__guue("Importa")?>" class="btn btn-warning btn-sm w-100" href="#" onclick="showModalWithURL('/backend/guue/import.php?codice=<?=$record['codice']?>');" role="button"><i style="width: 18px" class="fas fa-code"></i><b><?=__guue('Importa')?></b></a>
</div>
<?}?>
<? } ?>
<? if ($sendable) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Invia") ?>" class="btn btn-primary btn-sm w-100" href="<?="/backend/guue/send.php?codice={$record["codice"]}&form={$record["form"]}"?>" role="button"><i style="width: 18px" class="fas fa-upload"></i> <b><?=__guue('Invia')?></b></a>
</div>
<? } ?>
<? if ($xmlable) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Visualizza XML") ?>" class="btn btn-warning btn-sm w-100" href="<?="/backend/guue/xml.php?codice={$record["codice"]}&form={$record["form"]}"?>" role="button"><i style="width: 18px" class="fas fa-code"></i> <b><?=__guue('Visualizza XML')?></b></a>
</div>
<? } ?>
<? if ($downloadable) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Download PDF") ?>" class="btn btn-secondary btn-sm w-100" href="<?="/backend/guue/download.php?codice={$record["codice"]}&form={$record["form"]}"?>" role="button"><i style="width: 18px" class="fas fa-file-pdf"></i> <b><?=__guue("Download PDF")?></b></a>
</div>
<? } ?>
<? if ($pdf && !empty($id_guue) && !empty($anno_guue)) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Download avviso") ?>" class="btn btn-secondary btn-sm w-100" href="https://ted.europa.eu/udl?uri=TED:NOTICE:<?= $id_guue ?>-<?= $anno_guue ?>:PDF:IT:HTML" role="button"><i style="width: 18px" class="fas fa-file-pdf"></i><b><?=__guue('Download avviso pubblicato')?></b></a>
</div>
<? } ?>
<? if ($json_downloadable) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Json") ?>" class="btn btn-secondary btn-sm w-100" href="<?="/backend/guue/download-json.php?codice={$record['codice']}&form={$record['form']}"?>" role="button"><i style="width: 18px" class="fas fa-code"></i> <b><?=__guue('Json Download')?></b></a>
</div>
<? } ?>
<? if ($updatable) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Aggiorna") ?>" class="btn btn-primary btn-sm w-100" href="javascript:void(0)" onclick="forceUpdate('<?=$record['codice']?>')" role="button"><i style="width: 18px" class="fas fa-sync"></i> <?=__guue('Aggiorna')?></a>
</div>
<? } ?>
<? if ($deletable) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Elimina") ?>" class="btn btn-danger btn-sm w-100" href="javascript:void(0)" onclick="elimina('<?=$record['codice']?>','guue')" role="button"><i style="width: 18px" class="fas fa-trash"></i> <b><?=__guue('Elimina')?></b></a>
</div>
<? } ?>
<? if (false && $rectify) { ?>
<div class="dropdown-item px-0">
<a data-toggle="tooltip" data-placement="top" title="<?= __guue("Crea rettifica")?>" class="btn btn-success btn-sm w-100" href="<?=url('/backend/guue/rectify.php?codice='.$record["codice"])?>"><i style="width: 18px" class="fas fa-edit"></i> <?=__guue('Crea rettifica')?></a>
</div>
<? } ?>
</div>
</div>
<?
}
$row[] = ob_get_clean();
$return["data"][] = $row;
}
}
} else {
$return["data"] = [];
}
echo json_encode($return);
}
}
?>