$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php";
include_once($configPath);
$error = true;
$id_modulo = "pubblica";
$cmd_info = concorso::getInfoModulo("pubblica");
if (!empty($_POST) && !empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($cmd_info["modulo_riferimento"]) && $_SESSION["utente"]->permission($radice,$_POST["codice"],$id_modulo) && tokenVerify()) {
$concorso = concorso::init($_POST["codice"],$_POST["codice_round"]);
if (!empty($concorso)) {
$lock = $concorso->checkLock($cmd_info["id"]);
if (!$lock) {
$record = $concorso->info;
$round = $concorso->round;
if ($record["fase_attiva"] == $round["numero"]) {
$record_update = $record;
$round_update = $_POST;
$round_update["codice"] = $_POST["codice_round"];
if ($record["stato"] <= 21) {
if ($_POST["pubblica"] > 0) {
$record_update["stato"] = "20";
} else {
$record_update["stato"] = "10";
}
}
$salva = new salva();
$salva->debug = false;
$salva->nome_tabella = "b_concorsi";
$salva->operazione = "UPDATE";
$salva->oggetto = $record_update;
$salva->expect = array("codice","stato");
$codice = $salva->save();
if (!empty($codice)) {
$salva = new salva();
$salva->debug = false;
$salva->nome_tabella = "b_concorsi_round";
$salva->operazione = "UPDATE";
$salva->oggetto = $round_update;
$salva->expect = array("codice","pubblica","pubblicazione","chiarimenti","scadenza","apertura","sopralluogo");
$codice_round = $salva->save();
if (!empty($codice_round)) {
$error = false;
if ($round["pubblica"] > 0) {
$newRound = $concorso->getRounds($round["codice"])[0] ?? false;
$keysChecks = ["chiarimenti","scadenza","apertura","sopralluogo"];
$edits = [];
foreach($keysChecks AS $key) {
if ($round[$key] != $newRound[$key]) {
$edits[$key] = ["old"=>$round[$key],"new"=>$newRound[$key]];
}
}
if (!empty($edits)) {
$manager = $concorso->getManagerAvvisi();
$avviso = [];
$avviso["codice"] = "";
$avviso["titolo"] = __("Modifica termini di concorso") . " - " . $concorso->info["oggetto"];
$avviso["testo"] = __("Si comunica l'avvenuta modifica dei termini come di seguito riportato") . ":
";
foreach($edits AS $key => $termini) {
switch($key) {
case "chiarimenti": $label = "Richiesta chiarimenti"; break;
case "apertura": $label = "Apertura offerte"; break;
case "sopralluogo": $label = "Richiesta sopralluogo"; break;
default: $label = "Presentazione offerte"; break;
}
$avviso["testo"] .= "
" . __($label) . "
" . __("Vecchio termine") . ": " . mysql2datetime($termini["old"]) . "
" . __("Nuovo termine") . ": " . mysql2datetime($termini["new"]) . "
";
}
$avviso["modulo"] = "concorsi";
$avviso["codice_elemento"] = $concorso->info["codice"];
$avviso["sub"] = $concorso->round["codice"];
$avviso["attivo"] = "I";
$avviso["data"] = date("d/m/Y H:i:s");
$codiceAvviso = $manager->saveAvviso($avviso);
if (!empty($codiceAvviso) && !empty($concorso->getDestinatari(true))) {
$manager->sendAvviso($codiceAvviso);
}
}
}
}
if (!$error) {
$concorso->addToLog("UPDATE",__("Pubblicazione") . " " . __("Fase") . " " . $concorso->round["numero"]);
$concorso->info["stato"] = $record_update["stato"];
$_SESSION["ente"]->manageUpdates("concorsi",$concorso->info["codice"],$concorso);
?>
swal({title:js_dict["success-msg"],type:"success"}).then(function(){ window.location.href="/backend/concorsi/panel.php?codice== $record["codice"] ?>"; });
}
}
} else {
?>
swal({title:js_dict.error,html:"= __('La fase non รจ attiva') ?>",type:"warning"});
die();
}
}
}
}
if ($error) {
header('HTTP/1.0 403 Forbidden');
die();
}
?>