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.
 
 
 
 
 

96 righe
5.0 KiB

<?
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php";
include_once($configPath);
$error = true;
if (!empty($_POST) && !empty($_SESSION["utente"]) &&
($_SESSION["utente"]->permission("utenti",$_POST["codice_utente"]))
&& tokenVerify()) {
$ruoli = utente::ruoli();
$bind = [];
$bind[":codice_utente"] = $_POST["codice_utente"];
$bind[":codice_collaborazione"] = $_POST["codice"];
$sql = "SELECT r_collaborazioni.* FROM r_collaborazioni JOIN b_enti ON r_collaborazioni.codice_ente = b_enti.codice";
$sql = "{$sql} WHERE r_collaborazioni.codice_utente = :codice_utente AND r_collaborazioni.codice = :codice_collaborazione";
if (!empty($_SESSION["ente"])) {
$bind[":codice_ente"] = $_SESSION["ente"]->codice;
$sql = "{$sql} AND r_collaborazioni.codice_ente IN (SELECT codice FROM b_enti WHERE codice = :codice_ente OR sua = :codice_ente)";
if ($_SESSION["utente"]->gerarchia >= 9) {
$sql = "{$sql} AND r_collaborazioni.codice_ente NOT IN (SELECT codice FROM b_enti WHERE sua = :codice_ente AND (dominio IS NOT NULL AND dominio <> '' AND attivo = 'S'))";
}
}
$collaborazioni = $pdo->go($sql,$bind);
if ($collaborazioni->rowCount() == 1) {
Utente::removeLock($_POST["codice_utente"]);
$collaborazione = $collaborazioni->fetch(PDO::FETCH_ASSOC);
$gerarchia = $ruoli[$collaborazione["gruppo"]]["gerarchia"] ?? 0;
if ($_SESSION["utente"]->gerarchia <= $gerarchia) {
$collaborazione["limiti"] = "";
if (!empty($_POST["limite"]) && !isset($_POST["rimuoviLimiti"])) { $collaborazione["limiti"] = json_encode($_POST["limite"]); }
$salva = new salva();
$salva->debug = false;
$salva->nome_tabella = "r_collaborazioni";
$salva->operazione = "UPDATE";
$salva->oggetto = $collaborazione;
$salva->save();
$error = false;
$moduli = Modulo::getModuli(["attivo"=>true,"all_utente"=>false]);
$permissions = [];
$delete = $pdo->prepare("DELETE FROM r_permessi_collaborazioni WHERE cod_relazione = :codice AND id_modulo = :id_modulo ");
$create = $pdo->prepare("INSERT INTO r_permessi_collaborazioni (cod_relazione,id_modulo) VALUES (:codice,:modulo)");
if (!empty($_POST["permission"])) { $permissions = array_keys($_POST["permission"]); }
$codice = $collaborazione["codice"];
foreach($moduli AS $id_modulo => $modulo) {
$delete->bindValue(":codice",$codice);
$delete->bindValue(":id_modulo",$id_modulo);
$delete->execute();
ob_start();
$delete->debugDumpParams();
$sql = ob_get_clean();
$sql = get_string_between($sql,"Sent SQL: ","Key:");
$sql = get_string_between($sql,"]","Params:");
scriviLog("r_permessi_collaborazioni","DELETE",$sql);
if (in_array($id_modulo, $permissions) !== false) {
$create->bindValue(":codice",$codice);
$create->bindValue(":modulo",$id_modulo);
$create->execute();
ob_start();
$create->debugDumpParams();
$sql = ob_get_clean();
$sql = get_string_between($sql,"Sent SQL: ","Key:");
$sql = get_string_between($sql,"]","Params:");
scriviLog("r_permessi_collaborazioni","INSERT",$sql);
if($id_modulo == "verifica-art-80") {
$ente = $pdo->go("SELECT * FROM b_enti WHERE codice = :codice", [":codice" => $collaborazione["codice_ente"]])->fetch(PDO::FETCH_ASSOC);
$articolo80 = Articolo80::init($ente);
if(! empty($articolo80) && is_a($articolo80, "Articolo80")) {
$pdo->go("DELETE FROM b_permessi_verifiche_articolo_80 WHERE codice_collaborazione = :codice_collaborazione", [":codice_collaborazione" => $collaborazione["codice"]]);
if (! empty($_POST["classi_documentali_art80"]) && ! isset($_POST["rimuoviLimitiArt80"])) {
$available = array_column($articolo80->documenti, "uuid");
$sth = $pdo->prepare("INSERT INTO b_permessi_verifiche_articolo_80 (`codice_collaborazione`, `classe_documentale`, `utente_modifica`, `timestamp`) VALUES (:codice_collaborazione, :classe_documentale, :utente_modifica, NOW())");
$sth->bindValue(":codice_collaborazione", $collaborazione["codice"]);
$sth->bindValue(":utente_modifica", $_SESSION["utente"]->codice);
foreach ($_POST["classi_documentali_art80"] as $classe_documentale) {
if(in_array($classe_documentale, $available)) {
$sth->bindValue(":classe_documentale", $classe_documentale);
$sth->execute();
}
}
}
}
}
}
}
?>
swal({title:js_dict["success-msg"],type:"success"}).then(function() { window.location.reload(); });
<?
}
}
}
if ($error) {
header('HTTP/1.0 403 Forbidden');
die();
}
?>