isSupportoOrRoot()) { $tokenImport = $_POST["importKey"]; if (!empty($_SESSION["bulkImportFornitori"][$tokenImport])) { $dataToImport = $_SESSION["bulkImportFornitori"][$tokenImport]; ini_set("max_execution_time", 10*count($dataToImport)); $errors = []; $i = 0; $checkExisting = $pdo->prepare("SELECT codice FROM b_operatori_economici WHERE pec = :pec"); $checkRelazione = $pdo->prepare("SELECT codice FROM r_enti_operatori WHERE cod_ente = :ente AND codice_operatore = :codice_operatore"); $checkExistingUser = $pdo->prepare("SELECT codice FROM b_utenti WHERE email = :email"); $getOEfromUser = $pdo->prepare("SELECT codice_operatore FROM r_oe_utenti WHERE codice_utente = :codice"); $checkRelazione->bindValue(":ente",$_SESSION["ente"]->codice); $insertRelazione = $pdo->prepare("INSERT INTO r_enti_operatori (cod_ente,codice_operatore,utente_modifica) VALUES (:ente, :codice_operatore, -1)"); $insertRelazione->bindValue(":ente",$_SESSION["ente"]->codice); if (!empty($_POST["codice_elenco"])) { $checkElenco = $pdo->prepare("SELECT codice FROM r_partecipanti_albo WHERE codice_elenco = :elenco AND codice_operatore = :operatore"); $checkElenco->bindValue(":elenco",$_POST["codice_elenco"]); $insertElenco = $pdo->prepare("INSERT INTO r_partecipanti_albo (codice_elenco,codice_operatore,conferma,valutato,ammesso,visto,utente_modifica) VALUES (:elenco,:operatore,'S','S','S','S',-1)"); $insertElenco->bindValue(":elenco",$_POST["codice_elenco"]); } foreach($dataToImport AS $row) { $i++; $codiceOE = null; $existing = false; $checkExisting->execute([":pec"=>$row["pec"]]); $checkExistingUser->execute([":email"=>$row["emailReferente"]]); if ($checkExisting->rowCount() > 0) { $existing = true; $codiceOE = $checkExisting->fetch(PDO::FETCH_COLUMN); } else if ($checkExistingUser->rowCount() > 0) { $existing = true; $codiceUser = $checkExistingUser->fetch(PDO::FETCH_COLUMN); $getOEfromUser->execute([":codice"=>$codiceUser]); if ($getOEfromUser->rowCount() > 0) { $codiceOE = $getOEfromUser->fetch(PDO::FETCH_COLUMN); } else { $errors[$i] = __("Impossibile associare l'utente"); } } else { $post = []; $post["user"] = [ "email" => $row["emailReferente"], "password" => generateStrongPassword(), "nome" => $row["nomeReferente"], "cognome" => $row["cognomeReferente"] ]; $post["oe"] = [ "tipo" => ($row["tipologia"] == "impresa") ? "IMP" : "PRO", "ragione_sociale" => $row["denominazione"], "vecchio_codice" => $row["vecchioCodice"], "stato_legale" => (strlen($row["nazione"] ?? "") == 2) ? $row["nazione"] : "IT", "codice_fiscale_impresa" => $row["codiceFiscale"], "partita_iva" => $row["partitaIva"], "pec" => $row["pec"], ]; $post["elenchi"] = []; if(!empty($row["elenchi"])) { $post["elenchi"] = explode("/", $row["elenchi"]); } $post["soa"] = []; if(!empty($row["soa"])) { $soas = explode("/", $row["soa"]); foreach($soas as $soa) { $categoria_soa = $soa[0]; $classifica_soa = $soa[1]; $post["soa"][] = ["categoria" => $categoria_soa, "classifica" => $classifica_soa]; } } if (strpos($row["cpv"],"/") !== false) { $tmpCpv = explode("/",$row["cpv"]); } else { $tmpCpv = [$row["cpv"]]; } $post["cpv"] = []; if (!empty($tmpCpv)) { foreach($tmpCpv AS $codice) { $check = rtrim($codice,"0"); $check = cpvManager::getInfo([$check]); if (!empty($codice)) { $post["cpv"][] = $codice; } } } //if (!empty($post["cpv"])) { $check = oeManager::create($post,$_SESSION["ente"]->codice); if (!is_numeric($check)) { $errors[$i] = json_encode($check); } else { $codiceOE = $check; } /*} else { $errors[$i] = __("Categorie CPV mancanti"); }*/ } if (!empty($codiceOE)) { $checkRelazione->bindValue(":codice_operatore",$codiceOE); $checkRelazione->execute(); if (empty($checkRelazione->rowCount())) { $insertRelazione->bindValue(":codice_operatore",$codiceOE); $insertRelazione->execute(); } if (!empty($_POST["codice_elenco"])) { $checkElenco->bindValue(":operatore",$codiceOE); $checkElenco->execute(); if (empty($checkElenco->rowCount())) { $insertElenco->bindValue(":operatore",$codiceOE); $insertElenco->execute(); } } if (empty($existing)) { $pdo->go("UPDATE b_operatori_economici SET attivo = 'S' WHERE codice = :codice",[":codice" => $codiceOE]); $codice_utente = $pdo->go("SELECT codice_utente FROM r_oe_utenti WHERE codice_operatore = :operatore",[":operatore"=>$codiceOE])->fetch(PDO::FETCH_COLUMN); if (!empty($codice_utente)) { $utente = Utente::getInfoFromID($codice_utente); if (!empty($utente)) { $tmp = array(); $tmp["codice"] = $utente["codice"]; $tmp["password_request"] = date("Y-m-d H:m:i"); $tmp["password_token"] = tokenGen(); $tmp["attivo"] = "S"; $salva = new salva(); $salva->debug = false; $salva->nome_tabella = "b_utenti"; $salva->operazione = "UPDATE"; $salva->oggetto = $tmp; if ($salva->save() > 0) { $link_sito = $config["protocollo"] . $_SESSION["ente"]->getInfo()["dominio"]; $link = $link_sito . "/profilo/change_pwd.php?email=" . base64_encode($utente["email"]) . "&token=" . base64_encode($tmp["password_token"]); $link = "".$link.""; $corpo = str_replace("##--placeholder-link--##",$link,$_POST["messaggio"]); $mailer->oggetto = "Creazione utenza"; $mailer->corpo = $corpo; $mailer->codice_pec = -3; $mailer->comunicazione = false; $mailer->coda = true; $mailer->destinatari = $row["emailReferente"]; $esito = $mailer->send(); if (!$esito) { $errors[$i] = __("Errore invio email"); } } else { $errors[$i] = __("Errore generazione reset password"); } } else { $errors[$i] = __("Errore riconoscimento utente"); } } else { $errors[$i] = __("Errore riconoscimento relazione utente"); } } } } $error = false; if (empty($errors)) { ?> swal({title:js_dict["success-msg"],type:"success"}).then(function(){ window.location.reload(); }); swal({title:"",type:"warning"}).then(function(){ window.location.reload(); });