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.
 
 
 
 
 

64 righe
2.4 KiB

<?php
if (!empty($elabora_coda) && (!empty($_SESSION["ente"]))) {
$npa = null;
$ora = date("H");
$force = in_array("--forceANAC", $argv);
if ($force || ($ora > 8 && $ora < 19 && empty(getQueueLog($_SESSION["ente"]->codice, "anac_autopubblica-H{$ora}")))) {
$metadataSchede = NuovaPiattaformaAppalti::getCardsMetadata();
$schedePubblicazioneImplicita = array_keys(array_filter($metadataSchede, function($val, $index) {
return $val["pubblicazione_implicita"] ?? false;
}, ARRAY_FILTER_USE_BOTH));
writeQueueLog($_SESSION["ente"]->codice, "anac_autopubblica-H{$ora}");
$schede = NuovaPiattaformaAppalti::fetchSchede(
["codice"],
[
"stato" => ["AND", [[">=", NuovaPiattaformaAppalti::TRASMITTED_STATO], ["<", NuovaPiattaformaAppalti::PUBLISHED_STATO]]],
"errore" => "NO",
"id_scheda" => ["IN", $schedePubblicazioneImplicita],
],
true,
true
);
$count = count($schede);
if ($count) {
alertManager::printCliInfo("Ottenimento {$count} avvisi auto-pubblicati da ANAC.");
foreach ($schede as $scheda) {
try {
$npa = NuovaPiattaformaAppalti::init(null, $scheda["codice"]);
if (!$npa) {
alertManager::printCliAlert("Impossibile inizializzare NuovaPiattaformaAppalti per la scheda {$scheda['codice']}");
continue;
}
//if($npa->isUserLoggedIn()) {
$validRoles = $npa->getPermissionFor("pubblicazioneAvvisi", "read");
foreach ($validRoles as $role) {
$cf = $npa->getUserFromRole($role, RoleSyncBehaviour::NEVER_SYNC);
if ($cf === null) continue;
$npa->setCronOverrideUser($role, $cf);
if ($npa->updatePublicationStatus($message)) {
alertManager::printCliInfo("\t- La scheda {$scheda['codice']} ha terminato la sua pubblicazione.");
}
break;
}
} catch (\Throwable $t) {
$alert = <<<ERR
[!] NPA::EsitoPubblicazione ha lanciato un eccezione:
{$t->getMessage()}
{$t->getTraceAsString()}
ERR;
alertManager::printCliAlert($alert);
ec_create_ticket("Eccezione in NPA::AUTOPUBBLICA", $alert, $ente->codice ?? 0);
}
}
} else {
alertManager::printCliInfo("Nessuna scheda da finalizzare");
}
} else {
alertManager::printCliInfo("Salto la verifica avviso ANAC per l'ora {$ora}");
}
}