function stampaPannellodiControllo ($vet_id) {
include('sites/all/libraries/fnovi2/db_configuration.php');
try {
$db = new PDO("mysql:host=" . $fnovidb_host . ";dbname=" . $fnovidb_name . "", $fnovidb_user, $fnovidb_psw);
$db->exec("SET NAMES utf8");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die("Could not connect to the database\n" . $e->getMessage());
}
$sql = "
SELECT
COUNT(VET_ID) AS counter
FROM
`fn_anag_ambprof_richieste`
WHERE
VET_ID = :VET_ID
AND AMB_PROF_ID=6
AND PUBBLICAZIONE=1
AND CANCELLAZIONE=0;";
$mySql = $db->prepare($sql);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['counter']>0) {
$bt_agopuntura = "
|
CANCELLAZIONE DALL'ELENCO DEI MEDICI VETERINARI CON PARTICOLARI COMPETENZE IN MEDICINA TRADIZIONALE CINESE
|
";
}
else {
$bt_agopuntura = "
|
RICHIESTA ISCRIZIONE ELENCO DEI MEDICI VETERINARI CON PARTICOLARI COMPETENZE IN MEDICINA TRADIZIONALE CINESE
|
";
}
$sql = "
SELECT
COUNT(VET_ID) AS counter
FROM
`fn_anag_ambprof_richieste`
WHERE
VET_ID = :VET_ID
AND AMB_PROF_ID=7
AND PUBBLICAZIONE=1
AND CANCELLAZIONE=0;";
$mySql = $db->prepare($sql);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['counter']>0) {
$bt_nutrizione = "
|
CANCELLAZIONE DALL'ELENCO DEI MEDICI VETERINARI CON PARTICOLARI COMPETENZE NELL’AMBITO DELLA NUTRIZIONE, ALIMENTAZIONE E DIETOLOGIA CLINICA DEGLI ANIMALI DA COMPAGNIA
|
";
}
else {
$bt_nutrizione = "
|
RICHIESTA ISCRIZIONE ELENCO DEI MEDICI VETERINARI CON PARTICOLARI COMPETENZE NELL’AMBITO DELLA NUTRIZIONE, ALIMENTAZIONE E DIETOLOGIA CLINICA DEGLI ANIMALI DA COMPAGNIA
|
";
}
$output = '';
$output .= "
";
// MODIFICA David Zulli 2025/05/19 - Pulsante linkato al file PDF sulla "Certificare le competenze del medico veterinario"
$output .= "
|
CERTIFICARE LE COMPETENZE DEL MEDICO VETERINARIO
|
";
// FINE MODIFICA David Zulli 2025/05/19
$flag_iscritti = false;
//survey 13/02/2026 francesca
$survey_id = 971325; //764266;
$survey_database = "fnoadm_LSDB_20230921";
$vet_id_attribute = "attribute_2"; // attribute_1, attribute_2, attribute_3, etc.
$survey_title = "Monitoraggio degli episodi di violenza commessi ai danni degli esercenti le professioni sanitarie e socio-sanitarie nell'esercizio delle loro funzioni - anno 2026"; //"ACCEDI AL SONDAGGIO \"Benessere psicologico e supporto ai medici veterinari\"";
$survey_icon = "fa fa-flask"; // Font Awesome icon class
$survey_base_url = "https://survey.fnovi.it";
// ===================================================
try {
$db_survey = new PDO("mysql:host=" . $fnovidb_host . ";dbname=" . $survey_database, $fnovidb_user, $fnovidb_psw);
$db_survey->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die("Could not connect to the database\n" . $e->getMessage());
}
$sql = "SELECT active, startdate, expires FROM `lime_surveys` WHERE sid = :SURVEY_ID";
$mySql = $db_survey->prepare($sql);
$mySql->bindParam(':SURVEY_ID', $survey_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['active']=='Y' &&
($result['startdate'] == null || $result['startdate'] <= date('Y-m-d H:i:s')) &&
($result['expires'] == null || $result['expires'] >= date('Y-m-d H:i:s'))) {
$sql = "
SELECT
token,
completed
FROM
`lime_tokens_" . $survey_id . "`
WHERE
" . $vet_id_attribute . " = :VET_ID;";
$mySql = $db_survey->prepare($sql);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['token']!='' and $result['completed']=='N') {
$url_sondaggio = $survey_base_url . '/index.php/' . $survey_id . '?token=' . $result['token'] . '&lang=it';
$output .= "
|
{$survey_title}
|
";
}
}
//fine survey 13/02/2026 francesca
/*
$survey_id = 783324;
$survey_database = "fnoadm_LSDB_20230921";
$vet_id_attribute = "attribute_2"; // attribute_1, attribute_2, attribute_3, etc.
$survey_title = "ACCEDI AL SONDAGGIO \"MONITORAGGIO DEGLI EPISODI DI VIOLENZA COMMESSI AI DANNI DEGLI ESERCENTI LE PROFESSIONI SANITARIE E SOCIO-SANITARIE NELL'ESERCIZIO DELLE LORO FUNZIONI - ANNO 2025\"";
$survey_icon = "fa fa-flask"; // Font Awesome icon class
$survey_base_url = "https://survey.fnovi.it";
// ===================================================
try {
$db_survey = new PDO("mysql:host=" . $fnovidb_host . ";dbname=" . $survey_database, $fnovidb_user, $fnovidb_psw);
$db_survey->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die("Could not connect to the database\n" . $e->getMessage());
}
$sql = "SELECT active, startdate, expires FROM `lime_surveys` WHERE sid = :SURVEY_ID";
$mySql = $db_survey->prepare($sql);
$mySql->bindParam(':SURVEY_ID', $survey_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['active']=='Y' &&
($result['startdate'] == null || $result['startdate'] <= date('Y-m-d H:i:s')) &&
($result['expires'] == null || $result['expires'] >= date('Y-m-d H:i:s'))) {
$sql = "
SELECT
token,
completed
FROM
`lime_tokens_" . $survey_id . "`
WHERE
" . $vet_id_attribute . " = :VET_ID;";
$mySql = $db_survey->prepare($sql);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['token']!='' and $result['completed']=='N') {
$url_sondaggio = $survey_base_url . '/index.php/' . $survey_id . '?token=' . $result['token'] . '&lang=it';
$output .= "
|
{$survey_title}
|
";
}
}
*/
/*
* QUESTIONARIO APITERAPIA
*/
/*
try {
$db_survey = new PDO("mysql:host=" . $fnovidb_host . ";dbname=fnoadm_LSDB_20230921", $fnovidb_user, $fnovidb_psw);
$db_survey->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die("Could not connect to the database\n" . $e->getMessage());
}
$sql = "
SELECT
token,
completed
FROM
`lime_tokens_436617`
WHERE
attribute_1 = :VET_ID;";
$mySql = $db_survey->prepare($sql);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['token']!='' and $result['completed']=='N') {
$url_sondaggio = 'https://survey.fnovi.it/index.php/436617?token='.$result['token'].'&lang=it';
$output .= "
|
QUESTIONARIO SULL'APITERAPIA
|
";
}
/**/
/*
* INDAGINE: Rilevazione aggressioni al personale sanitario e socio-sanitario ottobre 2024
*/
/**/
/*
try {
$db_survey = new PDO("mysql:host=" . $fnovidb_host . ";dbname=fnoadm_LSDB_20230921", $fnovidb_user, $fnovidb_psw);
$db_survey->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die("Could not connect to the database\n" . $e->getMessage());
}
$sql = "SELECT active FROM `lime_surveys` WHERE sid = 535247";
$mySql = $db_survey->prepare($sql);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['active']=='Y') {
$sql = "
SELECT
token,
completed
FROM
`lime_tokens_535247`
WHERE
attribute_2 = :VET_ID;";
$mySql = $db_survey->prepare($sql);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['token']!='' and $result['completed']=='N') {
$url_sondaggio = 'https://survey.fnovi.it/index.php/535247?token='.$result['token'].'&lang=it';
$output .= "
|
INDAGINE PER LA RILEVAZIONE DELLE AGGRESSIONI AL PERSONALE SANITARIO E SOCIO-SANITARIO - OTTOBRE 2024
|
";
}
}
/**/
/*
* QUESTIONARIO SULLA VIOLENZA CONTRO I MEDICI VETERINARI
*/
/*
try {
$db_survey = new PDO("mysql:host=" . $fnovidb_host . ";dbname=fnoadm_lspoll", $fnovidb_user, $fnovidb_psw);
$db_survey->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die("Could not connect to the database\n" . $e->getMessage());
}
$sql = "
SELECT
token,
completed
FROM
`lime_tokens_957661`
WHERE
attribute_3 = :VET_ID;";
$mySql = $db_survey->prepare($sql);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if($result['token']!='' and $result['completed']=='N') {
$url_sondaggio = 'https://sondaggi.fnovi.it/index.php/957661?token='.$result['token'].'&lang=it';
$output .= "
|
QUESTIONARIO SULLA VIOLENZA CONTRO I MEDICI VETERINARI
|
";
}
/**/
foreach ($GLOBALS['user']->roles as $key => $value) {
//$output .= "$key - $value
";
if ($key==158 or $value=="Iscritti") {
$output .= "
|
AGGIORNA IL TUO PROFILO PROFESSIONALE
|
";
//modifica Invisiblefarm Francesca 2020/05/04 --
//inserimento button pe raggiungere il portfolio formativo personale del veterinario
if(module_exists('spc_fnovi') && user_access('gestione eventi',$GLOBALS['user']) == TRUE){
$output .="
|
ACCEDI AL TUO PORTFOLIO FORMATIVO SPC
|
";
}
//modifica Invisiblefarm Francesca 2022/11/28
//inserimento button pe raggiungere il portfolio formativo personale del veterinario
if(module_exists('ivf_dati_formazione') && user_access('gestione eventi',$GLOBALS['user']) == TRUE){
$output .="
|
ACCEDI AL TUO PORTFOLIO FORMATIVO ECM
|
";
}
//fine modifiche
// Modifica Invisiblefarm 2024/11/14 per Integrazione modulo PINFOA
// Abilita solo per utente Gaetano Penocchio
$query = '
select CODICE_FISCALE as cf
from `fn_anag_veterinari`
where ID = :VET_ID and ATTIVO = 1 limit 1;';
$mySql = $db->prepare($query);
$mySql->bindParam(':VET_ID', $vet_id, PDO::PARAM_INT);
$mySql->execute();
$result = $mySql->fetch(PDO::FETCH_ASSOC);
if ( ! empty($cf = $result['cf'])) {
function encryptPinfoa($data): string
{
$method = 'AES-256-CBC';
$key = 'tDixYGCTfehLsGquAm3bH4XcbZGf829r';
$key = substr(hash('sha256', $key, true), 0, 32); // Assicura che la chiave sia di 32 byte (256 bit)
$iv = random_bytes(16); // IV di 16 byte
$encrypted = openssl_encrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($iv . $encrypted);
}
$loginPinfoa = 'https://formazioneallevatori.fnovi.it/account/SignInByCF/?encryptedTaxCode=' . urlencode(encryptPinfoa($cf));
$output .= "
|
ACCEDI AL PORTALE FORMAZIONE ALLEVATORI (DM DEL 6 SETTEMBRE 2023)
|
";
}
// fine modifica Invisiblefarm 2024/11/14
// Modifica Invisiblefarm 2024/01/19 per Domanda Veterinario Aziendale
$secret = 'MqUVDgXqKfd6seE3';
$loginVeterinarioAziendale = 'https://www.domandavetaziendali.fnovi.it/veterinario-aziendale/login/' . $vet_id . '/' . time() . '/' . md5($vet_id . time() . $secret);
$output .= "
|
DOMANDA PER L'ISCRIZIONE NELL'ELENCO PUBBLICO NAZIONALE DEI VETERINARI AZIENDALI (DECRETO DEL MINISTERO DELLA SALUTE 7 DICEMBRE 2017)
|
";
// fine modifica Invisiblefarm 2024/01
//modifica Invisiblefarm Francesca 2022/11/28
//inserimento button pe raggiungere il portfolio formativo personale del veterinario
if(module_exists('ivf_dati_formazione') && user_access('gestione eventi',$GLOBALS['user']) == TRUE){
$campo = array();
// 5 anni = 365 x 5 = 1825 + 1 (anno bisestile) = 1826
define('CINQUE_ANNI', 1826);
$causali_iscrizione = array (1,2,50);
$causali_cancellazione = array (20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40);
$causali_sospensione = array (4,5,6,7,8,9,10,11,12,13,14,15);
$count = 0;
$storico = array();
/*
* Query estrazione storico del veterinario corrispondente al CF richiesto
*
* N.B.
* NON estraggo i movimenti di trasferimento, le sospensioni, gli avvertimenti e le censure
*/
$sql = "
SELECT
OPS.*,
VET.CODICE_FISCALE
FROM
`fn_anag_operazioni` OPS
LEFT JOIN
`fn_anag_veterinari` VET
ON OPS.VETERINARIO_ID = VET.ID
INNER JOIN (
SELECT
*
FROM (
SELECT
*
FROM
`fn_anag_operazioni` OPS
WHERE
OPS.DATA <= NOW()
AND OPS.CAUSALE_ID IN (1, 2, 50)
AND OPS.ATTIVO = 1
ORDER BY
OPS.VETERINARIO_ID
, OPS.DATA DESC
) OP_LASTIN
WHERE
OP_LASTIN.VETERINARIO_ID NOT IN (
SELECT
OPS.VETERINARIO_ID
FROM
`fn_anag_operazioni` OPS
, `fn_anag_causali_operazioni` COPS
WHERE
OPS.ATTIVO = 1
AND OPS.VETERINARIO_ID = OP_LASTIN.VETERINARIO_ID
AND OPS.ORDINE_ID = OP_LASTIN.ORDINE_ID
AND OPS.DATA > OP_LASTIN.DATA
AND OPS.DATA <= NOW()
AND COPS.ID = OPS.CAUSALE_ID
AND COPS.ID_TIPO = 10
)
GROUP BY
OP_LASTIN.VETERINARIO_ID
) OP_ULTIMA_ISCR
ON (OP_ULTIMA_ISCR.VETERINARIO_ID = VET.ID)
WHERE
OPS.ATTIVO=1
AND OPS.CAUSALE_ID NOT IN (4,5,6,7,8,9,10,11,12,13,14,15,20,50)
AND OPS.VETERINARIO_ID = $vet_id
ORDER BY
OPS.DATA ;";
$mySql = $db->prepare($sql);
$mySql->execute();
// $result = $mySql->fetch(PDO::FETCH_ASSOC);
while ($row_dat = $mySql->fetch(PDO::FETCH_ASSOC)) {
$storico[$count]['CAUSALE_ID'] = $row_dat['CAUSALE_ID'];
$storico[$count]['DATA'] = $row_dat['DATA'];
$storico[$count]['CODICE_FISCALE'] = $row_dat['CODICE_FISCALE'];
$count++;
}
if (sizeof($storico) == 0) {
$output .= '';
}else{
/*
* Calcolo giorni effettivi di attivit�
*/
$nr_movimenti = sizeof($storico);
$conta_giorni = 0;
for ($i = 0; $i <= $nr_movimenti - 1; $i++) {
$next = $i + 1;
if (
in_array($storico[$i]['CAUSALE_ID'], $causali_iscrizione)
and (in_array($storico[$next]['CAUSALE_ID'], $causali_cancellazione)
or $storico[$next]['CAUSALE_ID'] == '')
) {
$date1 = date_create($storico[$i]['DATA']);
$date2 = date_create($storico[$next]['DATA']);
$interval = date_diff($date1, $date2);
$conta_giorni += $interval->format('%R%a');
}
}
// if($conta_giorni >= CINQUE_ANNI){
//se maggiore uguale a 5 anni verifico che sia nella vista di moodle
$cf = $storico[0]['CODICE_FISCALE'];
//verifico che sia nella vista moodle dedicata per superamento/complemantemo corsi
/* db_set_active('mdl_fnovi');
$query = db_select('verifica_formatori','v');
$query->fields('v');
$query->condition('v.idnumber',$cf,'=');
$result = $query->execute()->fetchAssoc();
db_set_active();*/
$result = [];
if (module_exists('veterinario_formatore')) {
module_load_include('inc', 'veterinario_formatore', 'form/veterinario_formatore.richiesta');
$result = verifica_formatore_abilitato($cf);
$result = $result['result'];
}
if(!empty($result) && $result['found'] === true){
$output .="
|
RICHIESTA ISCRIZIONE ELENCO DEI MEDICI VETERINARI FORMATORI EX DM 6 SETTEMBRE 2023
|
";
}
// }
}
}
//fine modifiche
$output .="
{$bt_agopuntura}
{$bt_nutrizione}
";
$flag_iscritti = true;
}
}
if (!$flag_iscritti) {
$output .= "
|
";
}
$output .= "
|
uid}/edit'>
MODIFICA LA TUA PASSWORD
|
";
return $output;
}
fnovi