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
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); |
|
} |
|
} |
|
?>
|
|
|