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