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.
 
 
 
 
 

122 righe
6.1 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"])) {
$keys = [
"b_operatori_economici.codice",
"b_operatori_economici.codice_fiscale_impresa",
"b_operatori_economici.partita_iva",
"b_operatori_economici.ragione_sociale",
"b_operatori_economici.tipo",
"GROUP_CONCAT(b_utenti.email SEPARATOR '<br>') AS emailUtenti",
"b_operatori_economici.pec"
];
$whereKeys = [
"b_operatori_economici.codice",
"b_operatori_economici.codice_fiscale_impresa",
"b_operatori_economici.partita_iva",
"b_operatori_economici.ragione_sociale",
"b_operatori_economici.tipo",
"b_utenti.email",
"b_operatori_economici.pec"
];
$return = array();
$return["draw"] = (int)$_GET["draw"];
$return["recordsTotal"] = (int)0;
$return["recordsFiltered"] = (int)0;
$bind = array();
$sqlCount = "SELECT b_operatori_economici.codice FROM b_operatori_economici ";
$sqlAll = "SELECT ".implode(",",$keys).", b_operatori_economici.attivo, b_operatori_economici.timestamp_modifica FROM b_operatori_economici ";
$sql = " JOIN r_oe_utenti ON b_operatori_economici.codice = r_oe_utenti.codice_operatore
JOIN b_utenti ON r_oe_utenti.codice_utente = b_utenti.codice ";
if (isset($_SESSION["ente"])) {
$bind[":codice"] = $_SESSION["ente"]->codice;
$sql .= "JOIN r_enti_operatori ON b_operatori_economici.codice = r_enti_operatori.codice_operatore WHERE r_enti_operatori.cod_ente = :codice ";
} else {
$sql .= "WHERE b_operatori_economici.codice > 0 ";
}
$risultato = $pdo->go($sqlCount . $sql . " GROUP BY b_operatori_economici.codice",$bind);
if ($risultato->rowCount() > 0) {
$return["recordsTotal"] = (int)$risultato->rowCount();
$filterApplied = false;
if (!empty($_GET["search"]["value"])) {
$filterApplied = true;
$sql .= " AND ( ";
foreach($whereKeys AS $key) {
$suddivisione = suddivisione_pdo($_GET["search"]["value"],$key);
$sql .= "(" . $suddivisione["sql"] . ") OR ";
$bind = array_merge($bind,$suddivisione["bind"]);
}
$sql = substr($sql,0,-4);
$sql .= ") ";
}
$order = "ragione_sociale ";
switch($_GET["order"][0]["column"]) {
case "1": $order = "b_operatori_economici.codice "; break;
case "2": $order = "b_operatori_economici.codice_fiscale_impresa "; break;
case "3": $order = "b_operatori_economici.partita_iva "; break;
case "4": $order = "b_operatori_economici.ragione_sociale "; break;
case "5": $order = "b_operatori_economici.tipo "; break;
case "6": $order = "emailUtenti "; break;
case "7": $order = "b_operatori_economici.pec "; break;
case "8": $order = "b_operatori_economici.timestamp_modifica "; break;
}
if ($_GET["order"][0]["dir"] == "desc") {
$order.= "DESC ";
} else {
$order.= "ASC ";
}
$sql .= "GROUP BY b_operatori_economici.codice ORDER BY " . $order . ", b_operatori_economici.ragione_sociale ASC ";
$risultatBeforeLimit = $pdo->go($sqlCount.$sql,$bind);
if ($_GET["length"] !== "-1") { $sql.= "LIMIT ". (int)$_GET["start"] .", " . (int)$_GET["length"]; }
$risultato = $pdo->go($sqlAll.$sql,$bind);
if ($risultato->rowCount() > 0) {
if ($filterApplied) {
$return["recordsFiltered"] = (int)$risultatBeforeLimit->rowCount();
} else {
$return["recordsFiltered"] = $return["recordsTotal"];
}
$return["data"] = array();
$checkUser = $pdo->prepare("SELECT b_utenti.codice FROM r_oe_utenti JOIN b_utenti ON r_oe_utenti.codice_utente = b_utenti.codice WHERE r_oe_utenti.codice_operatore = :operatore AND b_utenti.attivo = 'S'");
while($record = $risultato->fetch(PDO::FETCH_ASSOC)) {
$stato = "bg-disabled";
$stato_label = __('disattivo');
if ($record["attivo"]=="S") {
$stato = "bg-active";
$stato_label = __('attivo');
$checkUser->bindValue(":operatore",$record["codice"]);
$checkUser->execute();
if (empty($checkUser->rowCount())) {
$stato = "bg-warning";
$stato_label = __('Utente non attivo');
}
}
$row = array();
$row[] = '<div id="flag_'.$record["codice"].'" class="status_flag '.$stato.'"><span class="sr-only">'.$stato_label.'</span></div>';
$row[] = $record["codice"];
$row[] = $record["codice_fiscale_impresa"];
$row[] = $record["partita_iva"];
$row[] = "<a href=\"#\" onClick=\"showCompany({$record["codice"]})\" title=\"".__("Visualizza Operatore")."\">{$record["ragione_sociale"]}</a>";
$row[] = ($record["tipo"] == "IMP") ? __("Impresa") : __("Professionista");
$row[] = $record["emailUtenti"];
$row[] = $record["pec"];
$row[] = $record["timestamp_modifica"];
if ($_SESSION["utente"]->gerarchia === 1 || $_SESSION["utente"]->hasSuperPowers()) { $row[] = "<a href='edit.php?codice=".$record["codice"]."' title='".__("modifica")."' class='btn-primary btn btn-sm'><span class='fa fa-pencil-alt'></span></a>"; }
$row[] = "<button title='".__("gestisci")."' class='btn btn-sm btn-info' onclick='showModalWithURL(\"manage.php?codice=".$record["codice"]."\");'><span class='fa fa-cog'></span></button>";
$row[] = "<button title='".__("Attiva/Disattiva")."' class='btn btn-sm btn-warning' onclick='disabilita(".$record["codice"].",\"operatori_economici\");'><span class='fa fa-sync'></span></button>";
$return["data"][] = $row;
}
} else {
$return["data"] = array();
}
} else {
$return["error"] = "No record";
}
echo json_encode($return);
}
}
?>