permission($radice))) {
$bind = array();
$codice = purify($_GET["codice"]);
$bind[":codice"] = $codice;
$compare_sql = "SELECT b_utenti.codice
FROM b_utenti
JOIN r_collaborazioni ON b_utenti.codice = r_collaborazioni.codice_utente
JOIN r_permessi_collaborazioni ON r_collaborazioni.codice = r_permessi_collaborazioni.cod_relazione
WHERE r_collaborazioni.monitoraggio = 'N' AND r_permessi_collaborazioni.id_modulo = :codice AND r_collaborazioni.attivo = 'S'";
$compare_binds = [ ":codice" => $_GET["codice"]];
$already_assigned_users = $pdo->go($compare_sql, $compare_binds)->fetchAll(PDO::FETCH_COLUMN, 0);
$str_ids = [":0"];
$bind[":0"] = "0";
foreach ($already_assigned_users as $id) {
$bind[":{$id}"] = $id;
$str_ids[] = ":{$id}";
}
$str_ids = implode(",", $str_ids);
$sql = "SELECT r_permessi_collaborazioni.codice AS codiceP, b_utenti.cognome, b_utenti.nome, b_utenti.codice AS codice_user,
r_collaborazioni.codice_ente, r_collaborazioni.gruppo, r_permessi_collaborazioni.timestamp,
r_collaborazioni.codice as codice_collaborazione
FROM b_utenti
JOIN r_collaborazioni ON b_utenti.codice = r_collaborazioni.codice_utente
LEFT JOIN r_permessi_collaborazioni ON r_collaborazioni.codice = r_permessi_collaborazioni.cod_relazione
WHERE r_collaborazioni.monitoraggio = 'N' AND b_utenti.codice NOT IN ({$str_ids})";
$bind[":gerarchia"] = $_SESSION["utente"]->gerarchia;
if (!empty($_SESSION["ente"])) {
$bind[":codice_ente"] = $_SESSION["ente"]->codice;
$sql .= " AND (r_collaborazioni.codice_ente = :codice_ente OR r_collaborazioni.codice_ente IN (SELECT codice FROM b_enti WHERE sua = :codice_ente)) ";
}
$return = [
"draw" => (int) $_GET["draw"],
"recordsTotal" => (int) 0,
"recordsFiltered" => (int) 0,
"data" => []
];
$total_sql = $sql;
$total_bind = $bind;
$return["recordsTotal"] = $pdo->go($total_sql, $total_bind)->rowCount();
if (!empty($_GET["search"]["value"])) {
$sql .= " AND (b_utenti.nome LIKE :search OR b_utenti.cognome LIKE :search) ";
$bind[":search"] = "%".$_GET["search"]["value"]."%";
}
$return["recordsFiltered"] = $pdo->go($sql, $bind)->rowCount();
$_GET["start"] = purify($_GET["start"]);
$_GET["length"] = purify($_GET["length"]);
$sql .= " GROUP BY b_utenti.codice ";
$sql .= " LIMIT {$_GET["start"]}, {$_GET["length"]}";
$risultato = $pdo->go($sql, $bind);
while ($record = $risultato->fetch(PDO::FETCH_ASSOC)) {
$row = [];
ob_start();
?>
|=$codice?>">
=$record['nome']?> =$record['cognome']?>
$row[] = ob_get_clean();
$row[] = ente::getInfoFromID($record["codice_ente"])[0]["denominazione"];
$row[] = mysql2datetime($record["timestamp"]);
ob_start();
?>
$row[] = ob_get_clean();
$return["data"][] = $row;
}
echo json_encode($return);
}