token) && $params->token == $_SESSION["ente"]->getInfo()["token"]) { return true; } } function getGare($params) { if (validateRequest($params)) { $json = []; $filters = []; if (!empty($params->tipologia)) { $tipologie = getTipologieAffidamento(true, null); $tipologie = array_combine(array_column($tipologie, "codice_api"), array_keys($tipologie)); if(! empty($tipologie[$params->tipologia])) { $filters["b_gare.tipologia"] = $tipologie[$params->tipologia]; } } if (!empty($params->procedura)) { $procedure = getProcedure(true, null, null, $_SESSION["ente"]->codice); $procedure = array_combine(array_column($procedure, "codice_api"), array_keys($procedure)); if(! empty($procedure[$params->procedura])) { $filters["b_gare.procedura"] = $procedure[$params->procedura]; } } if (!empty($params->stato)) { switch($params->stato) { case "3": $filters["b_gare.stato"] = "20"; break; // titolo": "Pubblicato" case "4": $filters["b_gare.stato"] = "30"; break; // titolo": "Proposta di aggiudicazione" case "5": $filters["b_gare.stato"] = "31"; break; // titolo": "Verifica anomalie" case "7": $filters["b_gare.stato"] = "35"; break; // titolo": "Aggiudicazione definitiva" case "8": $filters["b_gare.stato"] = "50"; break; // titolo": "Inviato esito" case "99": $filters["b_gare.stato"] = "90"; break; // titolo": "Annullato" case "98": $filters["b_gare.stato"] = "95"; break; // titolo": "Deserto" case "100": $filters["b_gare.stato"] = "99"; break; // titolo": "Non aggiudicato" case "101": $filters["b_gare.stato"] = "100"; break; // titolo": "Completo" } } if (!empty($params->codice)) { $filters["b_gare.codice"] = $params->codice; } if (!empty($params->codice)) { $filters["b_gare.codice_ente"] = $params->codice_ente; } if (!empty($params->cig)) { $filters["b_gare_lotti.cig"] = $params->cig; } if (!empty($params->cup)) { $filters["b_gare_lotti.cup"] = $params->cup; } if (!empty($params->data->typeDate)) { $dataInizio = $params->data->startDate ?? null; $dataFine = $params->data->endDate ?? null; if (!empty($dataInizio) || !empty($dataFine)) { $filtriData = ["data_pubblicazione","data_accesso","data_scadenza","data_apertura"]; if (in_array($params->data->typeDate,$filtriData) !== false) { $indexFiltroData = $params->data->typeDate; } } } $tmp = publicGara::getList($_SESSION["ente"]->codice,$filters,[],0,-1); $regexData = '/([0-9]{2}\/[0-9]{2}\/[0-9]{4})/m'; if (!empty($tmp)) { foreach($tmp AS $rec) { $continua = true; $obj = publicGara::init($rec["codice"]); $extraInfo = $obj->getExtraInfo(); $insert = []; $gara = []; $allegati = []; $rounds = $obj->getRounds(); $gara["data_pubblicazione"] = ""; if (!empty($rounds)) { foreach($rounds AS $round) { $tmp = filesManager::listFiles($round["codice"],"gare-public"); $allegati = array_merge($allegati,$tmp); if (empty($gara["data_pubblicazione"]) && !empty($round["pubblicazione"])) { $gara["data_pubblicazione"] = $round["pubblicazione"]; } if (!empty($round["chiarimenti"])) { $gara["data_accesso"] = $round["chiarimenti"]; } if (!empty($round["scadenza"])) { $gara["data_scadenza"] = $round["scadenza"]; } if (!empty($round["apertura"])) { $gara["data_apertura"] = $round["apertura"]; } } } if (!empty($indexFiltroData)) { $riferimento = strtotime($gara[$indexFiltroData]); if (!empty($dataInizio)) { $time = strtotime($dataInizio); if ($time > $riferimento) { $continua = false; } } if (!empty($dataFine)) { $time = strtotime($dataFine); if ($time < $riferimento) { $continua = false; } } } if ($continua) { $gara["codice"] = $rec["codice"]; $gara["codice_ente"] = $rec["codice_ente"]; $gara["codice_gestore"] = $_SESSION["ente"]->codice; $gara["id"] = $rec["id"]; switch($rec["stato"]) { case "20": $gara["stato"] = "3"; break; // titolo": "Pubblicato" case "21": $gara["stato"] = "3"; break; // titolo": "Scaduto" case "25": $gara["stato"] = "3"; break; // titolo": "In valutazione" case "30": $gara["stato"] = "4"; break; // titolo": "Proposta di aggiudicazione" case "31": $gara["stato"] = "5"; break; // titolo": "Verifica anomalie" case "35": $gara["stato"] = "7"; break; // titolo": "Aggiudicazione definitiva" case "50": $gara["stato"] = "8"; break; // titolo": "Inviato esito" case "80": $gara["stato"] = "3"; break; // titolo": "Sospesa" case "90": $gara["stato"] = "99"; break; // titolo": "Annullato" case "95": $gara["stato"] = "98"; break; // titolo": "Deserto" case "99": $gara["stato"] = "100"; break; // titolo": "Non aggiudicato" case "100": $gara["stato"] = "101"; break; // titolo": "Completo" } $gara["numero_atto_indizione"] = $extraInfo["gara"]["provvedimentoIndizione"]; $gara["data_atto_indizione"] = (!empty($extraInfo["gara"]["dataProvvedimentoIndizione"])) ? date2mysql($extraInfo["gara"]["dataProvvedimentoIndizione"]) : null; $gara["estremi_progetto"] = $extraInfo["gara"]["estremiProgetto"]; $gara["data_validazione"] = date2mysql($extraInfo["gara"]["dataApprovazioneProgetto"]); $gara["validatore"] = $extraInfo["gara"]["soggettoApprovatore"]; $gara["rup"] = ""; $incaricati = $obj->getManagerIncarichi()->getIncaricati(); if (!empty($incaricati)) { foreach($incaricati AS $incaricato) { if ($incaricato["ruolo"] == 14) { $gara["rup"] = $incaricato["extraInfo"]["cognome"]. " " . $incaricato["extraInfo"]["nome"]; break; } } } $gara["struttura_proponente"] = $extraInfo["gara"]["strutturaProponente"]; $gara["responsabile_struttura"] = $extraInfo["gara"]["responsabileStruttura"]; $gara["oggetto"] = $rec["oggetto"]; $gara["descrizione"] = ""; $gara["somme_disponibili"] = $extraInfo["gara"]["sommeAmministrazione"]; $gara["prezzoBase"] = $rec["prezzoRiferimento"]; $gara["nuts"] = $extraInfo["gara"]["nuts"]; $gara["flag_gestione_autonoma"] = ""; $gara["url"] = $_SESSION["config"]["link_sito"] . "/gare/dettaglio.php?codice={$gara["codice"]}"; switch($rec["tipologia"]) { case "L": $gara["tipologia"] = "Lavori"; break; case "S": $gara["tipologia"] = "Servizi"; break; case "F": $gara["tipologia"] = "Forniture"; break; case "ST": $gara["tipologia"] = "Servzi Tecnici"; break; case "LE": $gara["tipologia"] = "Lavori e progettazione esecutiva"; break; case "LDE": $gara["tipologia"] = "Lavori e progettazione definitiva ed esecutiva"; break; } switch($rec["procedura"]) { case "aperta": $gara["procedura"] = "Aperta"; break; // Aperta art. 60 del D.Lgs n. 50/2016 case "negoziata": $gara["procedura"] = "Negoziata"; break; // Negoziata art. 36 del D.Lgs n. 50/2016 case "ristretta": $gara["procedura"] = "Ristretta"; break; // Ristretta art. 61 del D.Lgs n. 50/2016 case "sda": $gara["procedura"] = "Sistema dinamico di acquisizione"; break; // Sistema dinamico di acquisizione Nuovo Codice degli Appalti case "dialogo": $gara["procedura"] = "Dialogo competitivo"; break; // Dialogo competitivo art. 64 del D.Lgs n. 50/2016 case "aq": $gara["procedura"] = "Accordo Quadro"; break; // Accordo Quadro Nuovo Codice degli Appalti case "affidamento": $gara["procedura"] = "Affidamento Diretto"; break; // Affidamento Diretto art. } $gara["modalita"] = ($rec["modalita"] == "telematica") ? "Telematica" : "Gare extra-piattaforma"; $managerCommissione = $obj->getManagerCommissione("seggio"); $seggio = $managerCommissione->getInfo(); $gara["numero_atto_seggio"] = $seggio["numero_atto"]; $gara["data_atto_seggio"] = $seggio["data_atto"]; $managerCommissione = $obj->getManagerCommissione("commissione"); $commissione = $managerCommissione->getInfo(); $gara["numero_atto_commissione"] = $commissione["numero_atto"]; $gara["data_atto_commissione"] = $commissione["data_atto"]; $gara["data_annullamento"] = null; preg_match_all($regexData, $extraInfo["gara"]["estremi_annullamento"] ?? "", $matchesAnnullamento, PREG_SET_ORDER, 0); if (!empty($matchesAnnullamento[0][0])) { $data = date2mysql($matchesAnnullamento[0][0]); if (!empty($data)) { $gara["data_annullamento"] = $data; } } $insert["gara"] = $gara; $lotti = $obj->getLotti(); if (!empty($lotti)) { $insert["lotti"] = []; foreach($lotti AS $tmpLotto) { $obj->setLotto($tmpLotto["codice"]); $extraInfoLotto = json_decode($tmpLotto["extraInfo"],true); $lotto = []; $lotto["codice"] = $tmpLotto["codice"]; $lotto["cig"] = $tmpLotto["cig"]; $lotto["oggetto"] = $tmpLotto["oggetto"]; $lotto["descrizione"] = $tmpLotto["descrizione"]; $lotto["cpv"] = $tmpLotto["cpv"]; $lotto["cup"] = $tmpLotto["cup"]; $lotto["importo_base"] = $tmpLotto["importoBase"]; $lotto["importo_oneri_ribasso"] = 0; $lotto["importo_oneri_no_ribasso"] = $tmpLotto["oneriNoRibasso"]; $lotto["importo_personale"] = $tmpLotto["importoManodopera"]; $lotto["importoAggiudicazione"] = $tmpLotto["importoAggiudicazione"]; $lotto["numero_atto_esito"] = (!empty($extraInfoLotto["estremi_definitiva"])) ? $extraInfoLotto["estremi_definitiva"] : null; $lotto["data_atto_esito"] = null; preg_match_all($regexData, $lotto["numero_atto_esito"], $matches, PREG_SET_ORDER, 0); if (!empty($matches[0][0])) { $data = date2mysql($matches[0][0]); if (!empty($data)) { $lotto["data_atto_esito"] = $data; } } if ($obj->pubblicaPartecipanti()) { $partecipanti = $obj->getPartecipanti(); if (!empty($partecipanti)) { $lotto["partecipanti"] = []; foreach($partecipanti AS $tmpPartecipante) { $partecipante = []; $infoOe = null; $legale = null; $operativa = null; if (!empty($tmpPartecipante["codice_operatore"])) { $infoOe = oeManager::getOE($tmpPartecipante["codice_operatore"]); $idForm = FormManager::getInfoFromID("info-oe",$tmpPartecipante["codice_operatore"]); $form = new FormManager; $form->init($idForm["codice"],"oe",$infoOe["codice"]); $values = $form->getValues(); if (!empty($values)) { foreach($values AS $group => $inputs) { foreach($inputs AS $key => $value) { if ($key == "3") { $legale = json_decode($value["value"],true); } else if ($key == "6" && empty($operativa)) { $operativa = json_decode($value["value"],true); } } } } } $partecipante["codice"] = $tmpPartecipante["codice"]; if (!empty($infoOe)) { $partecipante["codice_fiscale"] = $infoOe["codice_fiscale_impresa"]; $partecipante["partita_iva"] = $infoOe["partita_iva"]; } else { $partecipante["partita_iva"] = $tmpPartecipante["codice_fiscale"]; } $partecipante["codice_operatore"] = $tmpPartecipante["codice_operatore"]; $partecipante["ragione_sociale"] = $tmpPartecipante["ragione_sociale"]; $partecipante["pec"] = $infoOe["pec"] ?? ""; $partecipante["email"] = $infoOe["pec"] ?? ""; $partecipante["primo"] = $tmpPartecipante["aggiudicatario"]; $partecipante["anomalia"] = $tmpPartecipante["anomalia"]; $partecipante["anomalia_facoltativa"] = $tmpPartecipante["a_facoltativa"]; $partecipante["verifica"] = $tmpPartecipante["a_verificata"]; $partecipante["escluso"] = $tmpPartecipante["escluso"]; $partecipante["ammesso"] = ($tmpPartecipante["escluso"] == "N") ? "S" : "N"; $partecipante["motivazione"] = $tmpPartecipante["motivazione"]; $partecipante["motivazione_anomalia"] = $tmpPartecipante["motivazione_anomalia"]; $raggruppamento = $obj->getRaggruppamento($tmpPartecipante["codice"]); if (!empty($raggruppamento)) { $partecipante["tipo"] = "04-CAPOGRUPPO"; $partecipante["raggruppamento"] = []; foreach($raggruppamento AS $membro) { $partecipante["raggruppamento"][] = [ "codice" => $membro["codice"], "partita_iva" => ($membro["stato"] == "IT") ? $membro["codice_fiscale_impresa"] : "", "ragione_sociale" => ($membro["stato"] == "IT") ? $membro["ragione_sociale"] : "", "identificativoEstero" => ($membro["stato"] != "IT") ? $membro["codice_fiscale_impresa"] : "", "pec" => "", "tipo" => $membro["ruolo"] ]; } } else { $partecipante["tipo"] = ""; } $partecipante["indirizzo_legale"] = $legale["indirizzo"] ?? ""; $partecipante["citta_legale"] = $legale["citta"] ?? ""; $partecipante["provincia_legale"] = $legale["provincia"] ?? ""; $partecipante["regione_legale"] = $legale["regione"] ?? ""; $partecipante["stato_legale"] = $legale["stato"] ?? ""; $partecipante["indirizzo_operativa"] = $operativa["indirizzo"] ?? ""; $partecipante["citta_operativa"] = $operativa["citta"] ?? ""; $partecipante["provincia_operativa"] = $operativa["provincia"] ?? ""; $partecipante["regione_operativa"] = $operativa["regione"] ?? ""; $partecipante["stato_operativa"] = $operativa["stato"] ?? ""; $lotto["partecipanti"][] = $partecipante; } } $invitati = $obj->getInvitati(); if (!empty($invitati)) { $lotto["invitati"] = []; foreach($invitati AS $invitato) { $infoInvitato = oeManager::getOE($invitato["codice_operatore"]); $lotto["invitati"][] = [ "codice_fiscale" => $infoInvitato["codice_fiscale_impresa"], "partita_iva" => $infoInvitato["partita_iva"], "ragione_sociale" => $infoInvitato["ragione_sociale"], "pec" => $infoInvitato["pec"], "codice_operatore" => $infoInvitato["codice"] ]; } } $invitati = $obj->getInvitatiManuali(); if (!empty($invitati)) { if (!isset($lotto["invitati"])) { $lotto["invitati"] = []; } foreach($invitati AS $invitato) { $lotto["invitati"][] = [ "partita_iva" => $invitato["codice_fiscale_operatore"], "ragione_sociale" => $invitato["denominazione"], "pec" => $invitato["pec"], "codice_operatore" => "" ]; } } } $insert["lotti"][] = $lotto; } unset($obj->lotto); } $cpv = $obj->getCategorieMerceologiche(); if (!empty($cpv)) { $insert["cpv"] = cpvManager::getInfo($cpv); } if (!empty($allegati)) { $insert["allegati"] = []; foreach($allegati AS $allegato) { $insert["allegati"][] = [ "codice" => $allegato["codice"], "sezione" => "gare-public", "nome_file" => $allegato["name"], "titolo" => $allegato["titolo"], "url" => $_SESSION["config"]["link_sito"] . filesManager::getAttachURL($allegato,$allegato["sourceID"],"gare-public",0), "timestamp" => $allegato["timestamp"] ]; } } $json[] = $insert; } } } return json_encode($json,JSON_HEX_TAG | JSON_UNESCAPED_SLASHES); } return json_encode(["error"=>"Errore richiesta"]); } function getAlbi($params) { if (validateRequest($params)) { $json = []; $filters = []; if (!empty($params->codice)) { $filters["b_bandi_albo.codice"] = $params->codice; } $albi = publicAlboFornitori::getList($filters,[],0,-1); if (!empty($albi)) { foreach($albi AS $tmpAlbo) { $obj = publicAlboFornitori::init($tmpAlbo["codice"]); if($obj) { $insert = []; $bando = []; $bando["codice"] = $tmpAlbo["codice"]; $bando["codice_ente"] = $tmpAlbo["codice_ente"]; $bando["codice_gestore"] = $_SESSION["ente"]->codice; $bando["id"] = $tmpAlbo["id"]; $bando["stato"] = 3; $bando["tipologia"] = $tmpAlbo["tipologia"]; $bando["rup"] = ""; $bando["oggetto"] = $tmpAlbo["oggetto"]; $bando["data_pubblicazione"] = $tmpAlbo["pubblicazione"]; $bando["data_scadenza"] = $tmpAlbo["scadenza"]; $bando["data_chiarimenti"] = $tmpAlbo["chiarimenti"]; $incaricati = $obj->getManagerIncarichi()->getIncaricati(); if (!empty($incaricati)) { foreach($incaricati AS $incaricato) { if ($incaricato["ruolo"] == 14) { $bando["rup"] = $incaricato["extraInfo"]["cognome"]. " " . $incaricato["extraInfo"]["nome"]; break; } } } $insert["bando"] = $bando; $cpv = $obj->getCategorieMerceologiche(); if (!empty($cpv)) { $insert["cpv"] = cpvManager::getInfo($cpv); } $allegati = filesManager::listFiles($tmpAlbo["codice"],"albo_fornitori-public"); if (!empty($allegati)) { $insert["allegati"] = []; foreach($allegati AS $allegato) { $insert["allegati"][] = [ "codice" => $allegato["codice"], "sezione" => "albo_fornitori-public", "nome_file" => $allegato["name"], "titolo" => $allegato["titolo"], "url" => $_SESSION["config"]["link_sito"] . filesManager::getAttachURL($allegato,$tmpAlbo["codice"],"albo_fornitori-public",0), "timestamp" => $allegato["timestamp"] ]; } } $json[] = $insert; } } } return json_encode($json,JSON_HEX_TAG | JSON_UNESCAPED_SLASHES); } return json_encode(["error"=>"Errore richiesta"]); } $base = file_get_contents("base.wsdl"); $base = str_replace("https://www.stazioneappalti.it",$_SESSION["config"]["link_sito"],$base); $base = 'data://text/plain;base64,'.base64_encode($base); $server = new SoapServer($base,array('cache_wsdl'=>WSDL_CACHE_NONE)); $server->addFunction("getGare"); $server->addFunction("getAlbi"); $server->handle(); } ?>