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.
 
 
 
 
 

137 righe
6.0 KiB

<?
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php";
include_once($configPath);
if (!empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice)) {
if (isset($_GET["draw"])) {
$return = array();
$return["draw"] = (int)$_GET["draw"];
$return["recordsTotal"] = (int)0;
$return["recordsFiltered"] = (int)0;
$colonnaEnte = false;
$enti = $_SESSION["utente"]->getEntiBeneficiari(false);
if (!empty($enti)) {
$enti[$_SESSION["ente"]->codice] = $_SESSION["ente"]->getInfo();
}
$bind = array(":codice_gestore"=>$_SESSION["ente"]->codice);
$sql = "SELECT b_concorsi.codice,
b_concorsi.badge,
b_concorsi.codice_ente,
b_concorsi.id,
b_concorsi.stato,
b_concorsi.prezzoRiferimento,
b_concorsi.oggetto,
b_concorsi.fase_attiva,
GROUP_CONCAT(b_concorsi_lotti.cig) AS cig
FROM b_concorsi
LEFT JOIN b_concorsi_lotti ON b_concorsi.codice = b_concorsi_lotti.codice_concorso
WHERE b_concorsi.codice > 0 ";
if (!empty($_GET["ente"])) {
$bind[":enteFiltro"] = $_GET["ente"];
$sql .= " AND b_concorsi.codice_ente = :enteFiltro ";
}
if ($_SESSION["utente"]->gerarchia > 10) {
$ids = Utente::getPermissionsInModulo($_SESSION["ente"]->codice,$_SESSION["utente"]->codice,"concorsi");
$ids = implode(",",$ids);
$sql .= " AND b_concorsi.codice IN ({$ids}) ";
}
if (!$_SESSION["utente"]->fromHere()) {
$sql .= " AND codice_ente = :codice_ente";
$bind[":codice_ente"] = $_SESSION["utente"]->codice_ente;
}
$risultati = $pdo->go($sql. " GROUP BY b_concorsi.codice",$bind);
if ($risultati->rowCount() > 0) {
$checkPubblicata = $pdo->prepare("SELECT codice FROM b_concorsi_round WHERE codice_concorso = :codice AND pubblicazione < now()");
$return["recordsTotal"] = (int)$risultati->rowCount();
$filterApplied = false;
if (!empty($_GET["search"]["value"])) {
$filterApplied = true;
$sql .= " AND ( ";
$suddivisione = suddivisione_pdo($_GET["search"]["value"],"b_concorsi.id");
$sql .= "(" . $suddivisione["sql"] . ") OR ";
$bind = array_merge($bind,$suddivisione["bind"]);
$suddivisione = suddivisione_pdo($_GET["search"]["value"],"b_concorsi.oggetto");
$sql .= "(" . $suddivisione["sql"] . ") OR ";
$bind = array_merge($bind,$suddivisione["bind"]);
$suddivisione = suddivisione_pdo($_GET["search"]["value"],"b_concorsi_lotti.oggetto");
$sql .= "(" . $suddivisione["sql"] . ") OR ";
$bind = array_merge($bind,$suddivisione["bind"]);
$suddivisione = suddivisione_pdo($_GET["search"]["value"],"b_concorsi_lotti.cig");
$sql .= "(" . $suddivisione["sql"] . ") ";
$bind = array_merge($bind,$suddivisione["bind"]);
$sql .= ") ";
}
if (isset($_GET["stato"]) && $_GET["stato"]!=="") {
$filterApplied = true;
$bind[":status"] = $_GET["stato"];
$sql .= " AND b_concorsi.stato = :status ";
}
switch($_GET["order"][0]["column"]) {
case "2": $order = "b_concorsi.codice "; break;
case "4": $order = "b_concorsi.badge "; break;
case "6": $order = "b_concorsi.oggetto "; break;
case "7": $order = "b_concorsi.prezzoRiferimento "; break;
default: $order = "b_concorsi.codice ";
}
if ($_GET["order"][0]["dir"] == "desc") {
$order.= "DESC ";
} else {
$order.= "ASC ";
}
$sql .= " GROUP BY b_concorsi.codice ORDER BY " . $order . ", b_concorsi.codice DESC ";
$risultatiBeforLimit = $pdo->go($sql,$bind);
if ($_GET["length"] !== "-1") { $sql.= "LIMIT ". (int)$_GET["start"] .", " . (int)$_GET["length"]; }
$risultati = $pdo->go($sql,$bind);
if ($risultati->rowCount() > 0) {
if ($filterApplied) {
$return["recordsFiltered"] = (int)$risultatiBeforLimit->rowCount();
} else {
$return["recordsFiltered"] = $return["recordsTotal"];
}
$return["data"] = array();
$stati = concorso::getStati();
$tipologie = getTipologieAffidamento();
while($record = $risultati->fetch(PDO::FETCH_ASSOC)) {
$stato = $stati[$record["stato"]];
if ($record["stato"] == 20 ) {
$checkPubblicata->execute([":codice"=>$record["codice"]]);
if ($checkPubblicata->rowCount() === 0) {
$stato["titolo"] = "Programmata pubblicazione";
}
}
$panelHref = "/backend/concorsi/panel.php?codice={$record["codice"]}";
$row = array();
$row[] = '<div id="flag_'.$record["codice"].'" class="status_flag" style="background-color:'.$stato["color"].'"></div>';
$row[] = __($stato["titolo"]);
$row[] = $record["id"];
$row[] = str_replace(",","<br>",$record["cig"]);
$row[] = ($record["badge"] > 0) ? "<span class='badge badge-danger' style='font-size:1em'>" . $record["badge"] . "</span> " : "";
$row[] = "<strong><a href='{$panelHref}' title='".__("gestisci")."'>" . $record["oggetto"] . "</a></strong>";
$row[] = number_format($record["prezzoRiferimento"],2,",",".");
if (!empty($enti)) {
$row[] = $enti[$record["codice_ente"]]["denominazione"] ?? "";
}
$row[] = "<a href='{$panelHref}' title='".__("gestisci")."' class='btn-info btn-sm'><span class='fa fa-th'></span></a>";
$return["data"][] = $row;
}
} else {
$return["data"] = array();
}
} else {
$return["data"] = array();
}
echo json_encode($return);
}
}
?>