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
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); |
|
} |
|
} |
|
?>
|
|
|