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.
 
 
 
 
 

612 righe
26 KiB

<?
Class Programma {
public $info;
public $extraInfo;
protected $db;
private function __construct()
{
}
public static function tipologie() {
return [
"LV" => "Lavori pubblici",
"SF" => "Servizi e forniture"
];
}
public static function getStati()
{
return jsonToArray(__DIR__ . "/stati.json");
}
public static function init($codice) {
if (!empty($codice) && !empty($_SESSION["utente"]) && !empty($_SESSION["ente"])) {
global $pdo;
$bind = [":codice" => $codice];
$sql = "SELECT * FROM b_programmi_art21 WHERE codice = :codice ";
if (!$_SESSION["utente"]->fromHere()) {
$sql .= " AND codice_ente = :codice_ente";
$bind[":codice_ente"] = $_SESSION["utente"]->codice_ente;
}
$programma = $pdo->go($sql, $bind)->fetch(PDO::FETCH_ASSOC);
if (!empty($programma)) {
$instance = new Programma();
$instance->info = $programma;
$instance->extraInfo = json_decode($programma["extraInfo"],true);
$instance->db = $pdo;
return $instance;
}
}
return false;
}
public function getAnnualita() {
$anni = [];
if ($this->info["tipologia"] == "LV") {
$cont = 3;
} else if ($this->info["tipologia"] == "SF") {
if ($this->info["anno"] < 2023) {
$cont = 2;
} else {
$cont = 3;
}
}
for ($i=0;$i<$cont;$i++) {
$anni[] = (int) $this->info["anno"] + $i;
}
return $anni;
}
public function getInterventi() {
$annualita = $this->getAnnualita();
if ($this->info["tipologia"] == "LV") {
$tipologie = " AND b_progetti.tipologia = 'L'";
} else if ($this->info["tipologia"] == "SF") {
$tipologie = " AND (b_progetti.tipologia = 'S' OR b_progetti.tipologia = 'F')";
}
if (!empty($tipologie)) {
$interventi = $this->db->go("SELECT b_progetti.* FROM b_progetti
JOIN b_progetti_dotazione ON b_progetti.codice = b_progetti_dotazione.codice_progetto
WHERE b_progetti.codice_ente = :ente AND b_progetti_dotazione.anno IN (".implode(",",$annualita).")
{$tipologie} AND (b_progetti.cui IS NOT NULL OR b_progetti.cui <> '')
AND (b_progetti.stato_programmazione IS NULL OR b_progetti.stato_programmazione = '')
GROUP BY b_progetti.codice",[":ente"=>$this->info["codice_ente"]]);
if ($interventi->rowCount() > 0) {
return $interventi->fetchAll(PDO::FETCH_ASSOC);
}
}
}
public function getNonRiproposti() {
$annoRiferimeto = $this->getAnnualita()[0];
if ($this->info["tipologia"] == "LV") {
$tipologie = " AND b_progetti.tipologia = 'L'";
$annualita = [$annoRiferimeto-2,$annoRiferimeto-1];
} else if ($this->info["tipologia"] == "SF") {
$tipologie = " AND (b_progetti.tipologia = 'S' OR b_progetti.tipologia = 'F')";
$annualita = [$annoRiferimeto-1];
}
if (!empty($tipologie)) {
$interventi = $this->db->go("SELECT b_progetti.* FROM b_progetti
JOIN b_progetti_dotazione ON b_progetti.codice = b_progetti_dotazione.codice_progetto
WHERE b_progetti.codice_ente = :ente AND b_progetti_dotazione.anno IN (".implode(",",$annualita).")
{$tipologie} AND (b_progetti.cui IS NOT NULL OR b_progetti.cui <> '')
AND b_progetti.stato_programmazione = \"A\"
GROUP BY b_progetti.codice",[":ente"=>$this->info["codice_ente"]]);
if ($interventi->rowCount() > 0) {
return $interventi->fetchAll(PDO::FETCH_ASSOC);
}
}
}
public function getIncompiuti() {
$annualita = $this->getAnnualita();
if ($this->info["tipologia"] == "LV") {
$tipologie = " AND b_progetti.tipologia = 'L'";
} else if ($this->info["tipologia"] == "SF") {
$tipologie = " AND (b_progetti.tipologia = 'S' OR b_progetti.tipologia = 'F')";
}
if (!empty($tipologie)) {
$interventi = $this->db->go("SELECT b_progetti.* FROM b_progetti
JOIN b_progetti_dotazione ON b_progetti.codice = b_progetti_dotazione.codice_progetto
WHERE b_progetti.codice_ente = :ente AND b_progetti_dotazione.anno IN (".implode(",",$annualita).")
{$tipologie} AND (b_progetti.cui IS NOT NULL OR b_progetti.cui <> '')
AND b_progetti.stato_programmazione = \"I\"
GROUP BY b_progetti.codice",[":ente"=>$this->info["codice_ente"]]);
if ($interventi->rowCount() > 0) {
return $interventi->fetchAll(PDO::FETCH_ASSOC);
}
}
}
public static function getTipologiaRisorse() {
return[
"01"=>"risorse derivanti da entrate aventi destinazione vincolata per legge",
"02"=>"risorse derivanti da entrate acquisite mediante contrazione di mutuo",
"PR"=>"risorse acquisite mediante apporti di capitali privati",
"05"=>"stanziamenti di bilancio",
"04"=>"finanziamenti acquisibili ai sensi dell'articolo 3 del decreto-legge 31 ottobre 1990, n. 310, convertito con modificazioni dalla legge 22 dicembre 1990, n. 403",
"03"=>"risorse derivanti da trasferimento di immobili",
"99"=>"altra tipologia"
];
}
public function getQuadroRisorse() {
$annualita = $this->getAnnualita();
$interventi = $this->getInterventi();
$return = [];
if (!empty($interventi)) {
$tipologiaRisorse = self::getTipologiaRisorse();
$tipologieDotazione = progetto::getOpzioni("programmazione","tipologiaCoperturaPubblica");
$query = $this->db->prepare("SELECT * FROM b_progetti_dotazione WHERE codice_progetto = :progetto AND anno = :anno");
$cont = 0;
foreach($annualita AS $anno) {
$query->bindValue(":anno",$anno);
foreach($interventi AS $intervento) {
$query->bindValue(":progetto",$intervento["codice"]);
$query->execute();
if ($query->rowCount() > 0) {
while($dotazione = $query->fetch(PDO::FETCH_ASSOC)) {
if (!isset($return[$cont])) {
$keys = array_keys($tipologiaRisorse);
foreach($keys AS $key) {
$return[$cont][$key] = 0;
}
}
$key = null;
$infoDotazione = json_decode($dotazione["extraInfo"],true);
if ($dotazione["privata"] == "S") {
$key = "PR";
} else {
$key = $tipologieDotazione[$infoDotazione["tipologiaPubblica"]]["riferimento"] ?? null;
}
if (!empty($key)) {
$return[$cont][$key] += $dotazione["importo"];
}
}
}
}
$cont++;
}
}
return $return;
}
public function getTitolo() {
$primo_anno = $this->info["anno"];
if ($this->info["tipologia"] == "LV") {
$ultimo_anno = $primo_anno + 2;
return __("Programma triennale dei lavori pubblici") . " {$primo_anno} / {$ultimo_anno}";
} else if ($this->info["tipologia"] == "SF") {
if ($this->info["anno"] < 2023) {
$title = "biennale";
$ultimo_anno = $primo_anno + 1;
} else {
$title = "triennale";
$ultimo_anno = $primo_anno + 2;
}
return __("Programma {$title} dei servizi e delle forniture") . " {$primo_anno} / {$ultimo_anno}";
}
}
public function updateStato() {
$tipologieSchede = self::getSchedeProgramma($this->info["tipologia"]);
$status = 0;
if (!empty($tipologieSchede)) {
$idSchede = array_keys($tipologieSchede);
$schedeGenerate = 0;
$stato_cpn = $this->info["stato_cpn"] ?? 0;
foreach($idSchede AS $idScheda) {
$idEditor = $this->getIdEditorScheda($idScheda);
if (!empty($idEditor)) {
$editor = new editorManager("programmazione-art21",$idEditor);
if (!empty($editor->versions(0))) {
$schedeGenerate++;
}
}
}
if ($schedeGenerate > 0) {
$status = 1;
if (count($tipologieSchede) == $schedeGenerate) {
$status = 10;
if (!empty($stato_cpn)) {
if ($stato_cpn == 100) {
$status = 100;
} else {
$status = 25;
}
}
} else {
if (!empty($stato_cpn)) {
if ($stato_cpn == 100) {
$status = 30;
} else {
$status = 20;
}
}
}
} else {
if (!empty($stato_cpn)) {
if ($stato_cpn == 100) {
$status = 50;
} else {
$status = 5;
}
}
}
if (isset($_SESSION["ente"])) {
$_SESSION["ente"]->manageUpdates("programmazione",$this->info["codice"],$this);
}
$this->db->go("UPDATE b_programmi_art21 SET stato = :stato WHERE codice = :codice",[":stato"=>$status,":codice"=>$this->info["codice"]]);
scriviLog("b_programmi_art21","UPDATE",$this->db->getSQL(),$this->info["codice"]);
}
}
public function getIdEditorScheda($idScheda) {
return "programma-{$this->info["codice"]}-{$idScheda}";
}
public static function getSchedeProgramma($tipologia) {
return jsonToArray(__DIR__ . "/schedePDF.json")[$tipologia];
}
public static function getDatiRichiesti($tipologia) {
$datiRichiesti = [
"avvio-procedura-affidamento",
"lotto-funzionale",
"priorita",
"nuts"
];
if ($tipologia == "L") {
$datiRichiesti[] = "localizzazione-istat";
$datiRichiesti[] = "conformita-urbanistica";
$datiRichiesti[] = "livello-progettazione";
$datiRichiesti[] = "lavoro-complesso";
$datiRichiesti[] = "tipologia-lavori";
$datiRichiesti[] = "finalita";
$datiRichiesti[] = "settore-cup";
$datiRichiesti[] = "scadenza-mutuo";
$datiRichiesti[] = "vincoli-ambientali";
} else {
$datiRichiesti[] = "acquisto-ricompreso";
$datiRichiesti[] = "cui-ricompreso";
$datiRichiesti[] = "durata-contratto";
$datiRichiesti[] = "nuovo-affidamento-contratto";
}
$datiRichiesti[] = "ausa-cuc";
$datiRichiesti[] = "denominazione-cuc";
$datiRichiesti[] = "intervento-variato";
return $datiRichiesti;
}
public static function getDatiIncompiuta($tipologia) {
$datiRichiesti = [
"determinazioni-incompiuta",
"ambito-interesse",
"anno-ultimo-qa",
"importo-complessivo-ultimo-qa",
"causa-incompiuta",
];
if ($tipologia == "L") {
$datiRichiesti[] = "importo-lavori-ultimo-qa";
$datiRichiesti[] = "oneri-ultimazione";
$datiRichiesti[] = "ultimo-sal";
$datiRichiesti[] = "precentuale-sal";
$datiRichiesti[] = "fruibilita-parziale";
$datiRichiesti[] = "stato-realizzazione";
$datiRichiesti[] = "utilizzo-ridimensionato";
$datiRichiesti[] = "destinazione-uso";
$datiRichiesti[] = "concessione-corrispettivo";
$datiRichiesti[] = "vendita-demolizione";
$datiRichiesti[] = "oneri-riqualifica";
$datiRichiesti[] = "parte-infrastruttura-rete";
}
return $datiRichiesti;
}
public static function getDatiNonRiproposta($tipologia) {
return [
"motivazione-non-riproposto",
];
}
public function getDotazioneCPN($codice_progetto) {
$vociFinanziamento = [
"01"=>"risorseVincolatePerLegge",
"02"=>"risorseMutuo",
"PR"=>"risorsePrivati",
"05"=>"risorseBilancio",
"04"=>"risorseArt3_",
"03"=>"risorseImmobili",
"99"=>"risorseAltro"
];
$tipologieDotazione = progetto::getOpzioni("programmazione","tipologiaCoperturaPubblica");
$dotazioni = progetto::getDotazioneProgetto($codice_progetto);
$annualita = $this->getAnnualita();
$annualita[] = end($annualita) + 1;
$return = [];
if ($this->info["tipologia"] == "LV") {
$return["immobili"] = [];
}
foreach($dotazioni AS $dotazione) {
$arrayPos = array_search($dotazione["anno"],$annualita);
if ($arrayPos !== false) {
$arrayPos++;
if ($arrayPos >= count($annualita)) {
$arrayPos = "Succ";
}
if (($this->info["tipologia"] == "LV") && !empty($dotazione["codice_immobile"])) {
if (empty($return["immobili"][$dotazione["codice_immobile"]])) {
$immobile = $this->db->go("SELECT * FROM b_progetti_immobili WHERE codice = :codice",[":codice"=>$dotazione["codice_immobile"]])->fetch(PDO::FETCH_ASSOC);
if (!empty($immobile)) {
$infoImmobile = json_decode($immobile["extraInfo"],true);
$tmp = [
"cui" => $immobile["codice_univoco"],
"istat" => str_pad(($infoImmobile["regione"] ?? ""). ($infoImmobile["comune"]??""),9,"0",STR_PAD_LEFT),
"nuts" => $infoImmobile["nuts"] ?? "",
"descrizione" => $immobile["descrizione"],
"trasferimentoTitoloCorrispettivo",
"immobileDisponibile",
"alienati",
"inclusoProgrammaDismissione",
"tipoDisponibilita",
"valoreStimato1" => 0,
"valoreStimato2" => 0,
"valoreStimato3" => 0,
"valoreStimatoSucc" => 0
];
if ($tmp["istat"] == "000000000") {
unset($tmp["istat"]);
}
$return["immobili"][$immobile["codice"]] = $tmp;
}
}
if (!empty($return["immobili"][$dotazione["codice_immobile"]])) {
$return["immobili"][$dotazione["codice_immobile"]]["valoreStimato".$arrayPos] += $dotazione["importo"];
}
}
$key = null;
$infoDotazione = json_decode($dotazione["extraInfo"],true);
if ($dotazione["privata"] == "S") {
$key = "PR";
} else {
$key = $tipologieDotazione[$infoDotazione["tipologiaPubblica"]]["riferimento"] ?? null;
}
if (!empty($key)) {
$returnIndex = $vociFinanziamento[$key];
$returnIndex .= $arrayPos;
if (!isset($return[$returnIndex])) {
$return[$returnIndex] = 0;
}
$return[$returnIndex] += $dotazione["importo"];
}
}
}
return $return;
}
public function getSFCPN() {
$return = [];
$acquisti = [];
$interventi = $this->getInterventi();
$annualita = $this->getAnnualita();
if (!empty($interventi)) {
foreach($interventi AS $intervento) {
$istat = json_decode(quickInfoProgetto($intervento["codice"],"localizzazione-istat"),true);
$tmp = [
"cui" => $intervento["cui"],
"settore" => $intervento["tipologia"],
"codiceInterno" => $intervento["codice"],
"descrizione" => $intervento["oggetto"],
"anno" => (array_search(quickInfoProgetto($intervento["codice"],"avvio-procedura-affidamento"),$annualita) ?? 0) + 1,
"esenteCup" => (empty($intervento["cup"])) ? "1" : "2",
"cup" => $intervento["cup"],
"acquistoRicompreso" => quickInfoProgetto($intervento["codice"],"acquisto-ricompreso"),
"cuiCollegato" => quickInfoProgetto($intervento["codice"],"cui-ricompreso"),
"cpv" => (progetto::getCategorieMerceologicheProgetto($intervento["codice"])[0] ?? ""),
"istat" => str_pad(($istat["regione"]??"").($istat["comune"] ?? ""),9,"0",STR_PAD_LEFT),
"nuts" => quickInfoProgetto($intervento["codice"],"nuts"),
"priorita" => quickInfoProgetto($intervento["codice"],"priorita"),
"lottoFunzionale" => quickInfoProgetto($intervento["codice"],"lotto-funzionale"),
"durataInMesi" => (int) quickInfoProgetto($intervento["codice"],"durata-contratto"),
"nuovoAffidamento" => quickInfoProgetto($intervento["codice"],"nuovo-affidamento-contratto"),
];
if ($tmp["istat"] == "000000000") {
unset($tmp["istat"]);
}
$dotazione = $this->getDotazioneCPN($intervento["codice"]);
$tmp += $dotazione;
$importoDotazione = quickDotazioneProgetto($intervento["codice"],1,"S",true);
$tipologiaPrivata = $importoDotazione["tipologie"] ?? "";
if (!empty($tipologiaPrivata)) {
$tipologiaPrivata = array_unique($tipologiaPrivata);
$tmp["tipologiaCapitalePrivato"] = $tipologiaPrivata[0];
}
$tmp["codiceSoggettoDelegato"] = quickInfoProgetto($intervento["codice"],"ausa-cuc");
$tmp["delega"] = (empty($tmp["codiceSoggettoDelegato"])) ? "2" : "1";
$tmp["nomeSoggettoDelegato"] = quickInfoProgetto($intervento["codice"],"denominazione-cuc");
$tmp["variato"] = quickInfoProgetto($intervento["codice"],"intervento-variato");
$rup = quickResponsabileProgetto($intervento["codice"]);
$tmp["rup"] = [
"cognome" => $rup["cognome"] ?? "",
"nome" => $rup["nome"] ?? "",
"cfPiva" => $rup["codice_fiscale"] ?? "",
"indirizzo" => $rup["indirizzo"] ?? "",
"civico" => $rup["civico"] ?? "",
"provincia" => $rup["provincia"] ?? "",
"cap" => "",
// "luogoIstat" => $rup["comune"] ?? ""
];
$acquisti[] = $tmp;
}
}
$return["acquisti"] = $acquisti;
return $return;
}
public function getLVCPN() {
$return = [];
$interventi = [];
$tmpInterventi = $this->getInterventi();
$annualita = $this->getAnnualita();
if (!empty($tmpInterventi)) {
foreach($tmpInterventi AS $intervento) {
$istat = json_decode(quickInfoProgetto($intervento["codice"],"localizzazione-istat"),true);
$settore = json_decode(quickInfoProgetto($intervento["codice"],"settore-cup"),true);
$tmp = [
"cui" => $intervento["cui"],
"codiceInterno" => $intervento["codice"],
"descrizione" => $intervento["oggetto"],
"anno" => (array_search(quickInfoProgetto($intervento["codice"],"avvio-procedura-affidamento"),$annualita) ?? 0) + 1,
"esenteCup" => (empty($intervento["cup"])) ? "1" : "2",
"cup" => $intervento["cup"],
"acquistoRicompreso" => quickInfoProgetto($intervento["codice"],"acquisto-ricompreso"),
"cuiCollegato" => quickInfoProgetto($intervento["codice"],"cui-ricompreso"),
"cpv" => (progetto::getCategorieMerceologicheProgetto($intervento["codice"])[0] ?? ""),
"istat" => str_pad(($istat["regione"]??"").($istat["comune"] ?? ""),9,"0",STR_PAD_LEFT),
"nuts" => quickInfoProgetto($intervento["codice"],"nuts"),
"priorita" => quickInfoProgetto($intervento["codice"],"priorita"),
"lottoFunzionale" => quickInfoProgetto($intervento["codice"],"lotto-funzionale"),
"lavoroComplesso" => quickInfoProgetto($intervento["codice"],"lavoro-complesso"),
"tipologia" => quickInfoProgetto($intervento["codice"],"tipologia-lavori"),
"categoria" => ($settore["settore"] ?? "").".".($settore["sottosettore"] ?? "") ,
"scadenzaFinanziamento" => quickInfoProgetto($intervento["codice"],"scadenza-mutuo"),
"finalita" => quickInfoProgetto($intervento["codice"],"finalita"),
"conformitaUrbanistica" => quickInfoProgetto($intervento["codice"],"conformita-urbanistica"),
"conformitaAmbientale" => quickInfoProgetto($intervento["codice"],"vincoli-ambientali"),
"statoProgettazione" => quickInfoProgetto($intervento["codice"],"livello-progettazione"),
];
if ($tmp["istat"] == "000000000") {
unset($tmp["istat"]);
}
$dotazione = $this->getDotazioneCPN($intervento["codice"]);
$tmp += $dotazione;
$importoDotazione = quickDotazioneProgetto($intervento["codice"],1,"S",true);
$tipologiaPrivata = $importoDotazione["tipologie"] ?? "";
if (!empty($tipologiaPrivata)) {
$tipologiaPrivata = array_unique($tipologiaPrivata);
$tmp["tipologiaCapitalePrivato"] = $tipologiaPrivata[0];
}
$tmp["codiceSoggettoDelegato"] = quickInfoProgetto($intervento["codice"],"ausa-cuc");
$tmp["delega"] = (empty($tmp["codiceSoggettoDelegato"])) ? "2" : "1";
$tmp["nomeSoggettoDelegato"] = quickInfoProgetto($intervento["codice"],"denominazione-cuc");
$tmp["variato"] = quickInfoProgetto($intervento["codice"],"intervento-variato");
$rup = quickResponsabileProgetto($intervento["codice"]);
$tmp["rup"] = [
"cognome" => $rup["cognome"] ?? "",
"nome" => $rup["nome"] ?? "",
"cfPiva" => $rup["codice_fiscale"] ?? "",
"indirizzo" => $rup["indirizzo"] ?? "",
"civico" => $rup["civico"] ?? "",
"provincia" => $rup["provincia"] ?? "",
"cap" => "",
// "luogoIstat" => $rup["comune"] ?? ""
];
$interventi[] = $tmp;
}
}
$return["interventi"] = $interventi;
return $return;
}
public function getNonRipropostiCPN() {
$nonRiproposti = [];
$interventi = $this->getNonRiproposti();
if (!empty($interventi)) {
foreach($interventi AS $intervento) {
$tmp = [
"cui" => $intervento["cui"],
"cup" => $intervento["cup"],
"descrizione" => $intervento["oggetto"],
"importo" => $intervento["importo"],
"priorita" => quickInfoProgetto($intervento["codice"],"priorita"),
"motivo" => quickInfoProgetto($intervento["codice"],"motivazione-non-riproposto")
];
if (empty($tmp["cup"])) {
unset($tmp["cup"]);
}
$nonRiproposti[] = $tmp;
}
}
return $nonRiproposti;
}
public function getIncompiutiCPN() {
$incompiuti = [];
$interventi = $this->getIncompiuti();
if (!empty($interventi)) {
foreach($interventi AS $intervento) {
$istat = json_decode(quickInfoProgetto($intervento["codice"],"localizzazione-istat"),true);
$tmp = [
"cup" => $intervento["cup"],
"descrizione" => $intervento["oggetto"],
"determinazioneAmministrazione" => quickInfoProgetto($intervento["codice"],"determinazioni-incompiuta"),
"ambito" => quickInfoProgetto($intervento["codice"],"ambito-interesse"),
"anno" => quickInfoProgetto($intervento["codice"],"anno-ultimo-qa"),
"importoIntervento" => quickInfoProgetto($intervento["codice"],"importo-complessivo-ultimo-qa"),
"importoLavori" => quickInfoProgetto($intervento["codice"],"importo-lavori-ultimo-qa"),
"oneri" => quickInfoProgetto($intervento["codice"],"oneri-ultimazione"),
"importoAvanzamento" => quickInfoProgetto($intervento["codice"],"ultimo-sal"),
"percentualeAvanzamento"=>quickInfoProgetto($intervento["codice"],"precentuale-sal"),
"causa"=>quickInfoProgetto($intervento["codice"],"causa-incompiuta"),
"stato"=>quickInfoProgetto($intervento["codice"],"stato-realizzazione"),
"infrastruttura"=>quickInfoProgetto($intervento["codice"],"parte-infrastruttura-rete"),
"fruibile"=>quickInfoProgetto($intervento["codice"],"fruibilita-parziale"),
"ridimensionato"=>quickInfoProgetto($intervento["codice"],"utilizzo-ridimensionato"),
"destinazioneUso"=>quickInfoProgetto($intervento["codice"],"destinazione-uso"),
"cessione"=>quickInfoProgetto($intervento["codice"],"concessione-corrispettivo"),
"oneriSito"=>quickInfoProgetto($intervento["codice"],"oneri-riqualifica"),
"altriDati" => [
"istat" => str_pad(($istat["regione"]??"").($istat["comune"] ?? ""),9,"0",STR_PAD_LEFT),
"nuts" => quickInfoProgetto($intervento["codice"],"nuts"),
"tipologiaIntervento" => quickInfoProgetto($intervento["codice"],"tipologia-lavori"),
"categoriaIntervento" => ($settore["settore"] ?? "").".".($settore["sottosettore"] ?? "")
]
];
$incompiuti[] = $tmp;
}
}
return $incompiuti;
}
public function getRequestCPN() {
$return = [];
$cfEnte = Ente::getInfoFromID($this->info["codice_ente"])[0]["cf"];
$return["id"] = $this->info["tipologia"] . $cfEnte . $this->info["anno"] . "001";
$return["codiceFiscaleSA"] = $cfEnte;
$return["ufficio"] = "";
$return["anno"] = $this->info["anno"];
$return["descrizione"] = $this->getTitolo();
$return["numeroApprovazione"] = $this->extraInfo["numeroApprovazione"];
$return["dataApprovazione"] = $this->extraInfo["dataApprovazione"];
$return["dataPubblicazioneApprovazione"] = $this->extraInfo["dataPubblicazioneApprovazione"];
$return["titoloAttoApprovazione"] = $this->extraInfo["titoloAttoApprovazione"];
$return["urlAttoApprovazione"] = $this->extraInfo["urlAttoApprovazione"];
$return["idRicevuto"] = $this->extraInfo["idRicevuto"] ?? null;
$return["referente"] = [
"cognome" => $this->extraInfo["cognome"],
"nome" => $this->extraInfo["nome"],
"cfPiva" => $this->extraInfo["cf_referente"],
"indirizzo" => $this->extraInfo["indirizzo"],
"civico" => $this->extraInfo["civico"],
"provincia" => $this->extraInfo["provincia"],
"cap" => "",
"luogoIstat" => $this->extraInfo["comune"]
];
if ($this->info["tipologia"] == "SF") {
$return += $this->getSFCPN();
} else {
$return += $this->getLVCPN();
}
$return[($this->info["tipologia"] == "SF") ? "acquistiNonRiproposti" : "interventiNonRiproposti"] = $this->getNonRipropostiCPN();
if (!empty($this->info["invio_cpn"])) {
$return["idRicevuto"] = $this->info["invio_cpn"];
}
return $return;
}
}
?>