go("SELECT codice, prezzoRiferimento, oggetto, id, codice_ente FROM b_concorsi WHERE codice NOT IN (SELECT codice_gara FROM r_simog_moduli WHERE modulo = :modulo)",[":modulo"=>$idModulo])->fetchAll(PDO::FETCH_ASSOC); $returnModulo = []; if (!empty($ids)) { $sqLotti = $pdo->prepare("SELECT codice,cig FROM b_concorsi_lotti WHERE codice_concorso = :concorso"); foreach($ids AS $id) { $enteBeneficiario = Ente::getInfoFromID($id["codice_ente"])[0] ?? null; $ente = Ente::getInfoFromID($enteBeneficiario)[0] ?? null; $privato = false; if (isset($ente["soggettoPrivato"]) && $ente["soggettoPrivato"] == "S") { $privato = true; } if (!$privato) { $sqLotti->execute([":concorso"=>$id["codice"]]); if ($sqLotti->rowCount() > 0) { $lotti = $sqLotti->fetchAll(PDO::FETCH_ASSOC); if (count($lotti) === 1 && $id["prezzoRiferimento"] <= anac::limiteSmartCIG()) { $smart_cig = "S"; } else { $smart_cig = "N"; } $returnModulo[] = ["modulo"=>$idModulo,"id"=>$id["codice"],"oggetto"=>$id["oggetto"],"ref"=>$id["id"],"lotti"=>$lotti,"smart_cig"=>$smart_cig]; } } } $return = array_merge($return,$returnModulo); } if (!empty($bindLostElements) && !empty($returnModulo)) { foreach($return AS $istanza) { $count = 0; foreach($istanza["lotti"] AS $lotto) { if (!empty($lotto["cig"])) { $checkExistingLotto->execute([":cig"=>$lotto["cig"]]); if ($checkExistingLotto->rowCount() > 0) { $count++; $existing = $checkExistingLotto->fetch(PDO::FETCH_ASSOC); anac::staticSaveRelazione($idModulo,$istanza["id"],$lotto["codice"],$existing["codice_simog"],$existing["codice"]); } } } if ($count < count($lotti)) { $concorso = concorso::init($istanza["id"]); if (!empty($concorso)) { $concorso->creaIstanzaANAC($istanza["smart_cig"]); } } } } return $return; }