$_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[] = "