codice,"scadenzeForm"))) { $current_time = (int) date('H'); if($current_time >= 8) { $elenchi = []; $elenchi["b_bandi_albo"] = ["partecipanti"=>"r_partecipanti_albo","folder"=>"albo_fornitori","modulo"=>"albo_fornitori","relazione"=>"r_albo_fornitori_form"]; $limiti = array(); $limiti["30"] = date('Y-m-d',strtotime("+30 days")); $limiti["7"] = date('Y-m-d',strtotime("+7 day")); $limiti["1"] = date('Y-m-d',strtotime("+1 day")); $limiti["0"] = date('Y-m-d'); $limite_ultimo = date('Y-m-d'); $inputInfo = $pdo->prepare("SELECT * FROM b_form_input WHERE codice = :codice_input"); $groupQS = $pdo->prepare("SELECT * FROM b_form_data WHERE codice_gruppo = :gruppo AND gruppo_compilazione = :gc AND type = :type AND id = :id AND soft_delete = 'N'"); $deadlineIds = $pdo->prepare("SELECT b_form_input.codice FROM b_form_input JOIN b_form_group ON b_form_input.codice_gruppo = b_form_group.codice WHERE b_form_group.codice_form = :form AND b_form_input.tipo = 'deadline'"); $deadlineValues = $pdo->prepare("SELECT * FROM b_form_data WHERE type = :type AND codice_input = :input AND id = :id"); foreach ($elenchi AS $tabella => $infoElenco) { $scadenze = []; $folder = $infoElenco["folder"]; $modulo = $infoElenco["modulo"]; $sql_bandi = "SELECT * FROM {$tabella} WHERE (scadenza > now() OR scadenza IS NULL) AND pubblica > 0 AND stato NOT IN (80)"; $ris_bandi = $pdo->query($sql_bandi); $checkForm = $pdo->prepare("SELECT codice_form FROM {$infoElenco["relazione"]} WHERE codice_elenco = :elenco"); $groupQS->bindValue(":type","{$modulo}-{$_SESSION["ente"]->codice}"); $deadlineValues->bindValue(":type","{$modulo}-{$_SESSION["ente"]->codice}"); $risPartecipanti = $pdo->prepare("SELECT ".$infoElenco["partecipanti"].".* FROM " . $infoElenco["partecipanti"] . " WHERE ammesso = 'S' AND codice_elenco = :elenco"); if ($ris_bandi->rowCount() > 0) { while($bando = $ris_bandi->fetch(PDO::FETCH_ASSOC)) { $logID = "scadenzeRevisioni-{$tabella}-{$bando["codice"]}"; if (empty(getQueueLog($_SESSION["ente"]->codice,$logID))) { $risPartecipanti->bindValue(":elenco",$bando["codice"]); $risPartecipanti->execute(); if ($risPartecipanti->rowCount() > 0) { $partecipanti = $risPartecipanti->fetchAll(PDO::FETCH_ASSOC); $checkForm->bindValue(":elenco",$bando["codice"]); $checkForm->execute(); if ($checkForm->rowCount() > 0) { while($idForm = $checkForm->fetch(PDO::FETCH_COLUMN)) { $deadlineIds->bindValue(":form",$idForm); $deadlineIds->execute(); if (!empty($deadlineIds->rowCount())) { while($deadlineID = $deadlineIds->fetch(PDO::FETCH_COLUMN)) { $deadlineValues->bindValue(":input",$deadlineID); foreach($partecipanti AS $partecipante) { if ($partecipante["valutato"]=="S") { $deadlineValues->bindValue(":id",$partecipante["codice"]); $deadlineValues->execute(); if ($deadlineValues->rowCount() > 0) { while($formData = $deadlineValues->fetch(PDO::FETCH_ASSOC)) { $scadenza = date2mysql($formData["valore"]); if (!empty($scadenza)) { foreach($limiti AS $gg => $limite) { if ($limite == $scadenza) { if (!isset($scadenze[$partecipante["codice_operatore"]][$bando["codice"]])) { $scadenze[$partecipante["codice_operatore"]][$bando["codice"]] = ["bando" => $bando, "msg" => "", "scaduta" => null]; } $scadenza_string = $gg . " giorni"; if ($gg=="30") { $scadenza_string = "1 mese"; } if ($gg=="1") { $scadenza_string = "1 giorno"; } if (empty($gg)) { $scadenza_string = "SCADUTA"; $scadenze[$partecipante["codice_operatore"]][$bando["codice"]]["scaduta"] = $partecipante["codice"]; } $groupQS->bindValue(":gruppo",$formData["codice_gruppo"]); $groupQS->bindValue(":gc",$formData["gruppo_compilazione"]); $groupQS->bindValue(":id",$formData["id"]); $groupQS->execute(); if ($groupQS->rowCount() > 0) { $corpo = ""; while($groupData = $groupQS->fetch(PDO::FETCH_ASSOC)) { $inputInfo->bindValue(":codice_input",$groupData["codice_input"]); $inputInfo->execute(); if ($inputInfo->rowCount() > 0) { $info = $inputInfo->fetch(PDO::FETCH_ASSOC); if ($info["tipo"] != "file") { $titolo = json_decode($info["titolo"],true)["IT"]; $corpo .= $titolo . ": " . $groupData["valore"]; if ($info["codice"] == $formData["codice_input"]) { $corpo .= " - {$scadenza_string}"; } $corpo .= "
"; } } } $corpo .= "

"; $scadenze[$partecipante["codice_operatore"]][$bando["codice"]]["msg"] .= $corpo; } } } } } } } } } } } } } writeQueueLog($_SESSION["ente"]->codice,$logID); } } } if (!empty($scadenze)) { foreach($scadenze AS $codice_operatore => $bandi) { $oggetto = __("Documenti in scadenza"); $corpo = "Si informa la S.V. sono presenti documenti in scadenza relativi ai seguenti bandi:"; foreach($bandi AS $codice_bando => $info) { $bando = $info["bando"]; $href = "https://".$_SESSION["ente"]->getInfo()["dominio"]."/".$folder."/id".$bando["codice"]."-dettaglio"; $corpo.= "

" . $bando["oggetto"] . "
"; $corpo.= $info["msg"]; if (!empty($info["scaduta"]) && settingsManager::getValue("scadenzaDocumentiForm") == "E") { $pdo->go("UPDATE {$infoElenco["partecipanti"]} SET valutato = 'S', ammesso = 'N', motivazione = 'Documentazione scaduta' WHERE codice = :codice ",[":codice"=>$info["scaduta"]]); } } $corpo.= "La invitiamo ad aggiornare quanto prima i suoi dati
"; $corpo.= "Distinti Saluti

"; $mailer = new Communicator(); $mailer->oggetto = $oggetto; $mailer->corpo = $corpo; $mailer->codice_pec = $bando["codice_pec"]; $mailer->comunicazione = true; $mailer->coda = false; $mailer->destinatari = $codice_operatore; $esito = $mailer->send(); unset($mailer); } } } writeQueueLog($_SESSION["ente"]->codice,"scadenzeForm"); } } else { alertManager::printCliWarning("GiĆ  eseguito"); } } ?>