$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 '
') 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[] = '