';
return $Risultato;
}
function AP_CreaCategorieBase(){
$Risultato=AP_CreaCategoriaBase(__('Bandi e gare','albo-online'),__('Bandi e gare','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Contratti - Personale ATA','albo-online'),__('Contratti - Personale ATA','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Contratti - Personale Docente','albo-online'),__('Contratti - Personale Docente','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Contratti e convenzioni','albo-online'),__('Contratti e convenzioni','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Convocazioni','albo-online'),__('Convocazioni','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Delibere Consiglio di Istituto','albo-online'),__('Delibere Consiglio di Istituto','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Documenti altre P.A.','albo-online'),__('Documenti altre P.A.','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Esiti esami','albo-online'),__('Esiti esami','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Graduatorie','albo-online'),__('Graduatorie','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Organi collegiali','albo-online'),__('Organi collegiali','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Organi collegiali - Elezioni','albo-online'),__('Organi collegiali - Elezioni','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Privacy','albo-online'),__('Privacy','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Programmi annuali e Consuntivi','albo-online'),__('Programmi annuali e Consuntivi','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Regolamenti','albo-online'),__('Regolamenti','albo-online'),15);
$Risultato.=AP_CreaCategoriaBase(__('Sicurezza','albo-online'),__('Sicurezza','albo-online'),15);
return $Risultato;
}
function ap_CreaTabella($Tabella){
global $wpdb;
switch ($Tabella){
case $wpdb->table_name_Atti:
$sql = "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_Atti." (
IdAtto int(11) NOT NULL auto_increment,
Numero int(4) NOT NULL DEFAULT '0',
Anno int(4) NOT NULL DEFAULT '0',
Data date NOT NULL DEFAULT '0000-00-00',
Riferimento text NOT NULL,
Oggetto text NOT NULL,
DataInizio date NOT NULL DEFAULT '0000-00-00',
DataFine date DEFAULT '0000-00-00',
Informazioni text NOT NULL,
IdCategoria int(11) NOT NULL DEFAULT '0',
RespProc int(11) NOT NULL,
DataAnnullamento date DEFAULT '0000-00-00',
MotivoAnnullamento text,
Ente int(11) NOT NULL DEFAULT '0',
DataOblio date NOT NULL DEFAULT '0000-00-00',
Soggetti varchar(100) NOT NULL,
PRIMARY KEY (IdAtto));";
break;
case $wpdb->table_name_Attimeta:
$sql = "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_Attimeta." (
IdAttoMeta int(11) NOT NULL auto_increment,
IdAtto int(11) NOT NULL,
Meta varchar(100) NOT NULL,
Value text,
PRIMARY KEY (IdAttoMeta));";
break;
case $wpdb->table_name_Allegati:
$sql = "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_Allegati." (
IdAllegato int(11) NOT NULL auto_increment,
TitoloAllegato varchar(255) NOT NULL DEFAULT '',
Allegato varchar(255) NOT NULL DEFAULT '',
IdAtto int(11) NOT NULL DEFAULT '0',
TipoFile varchar(6) DEFAULT '',
DocIntegrale tinyint(1) NOT NULL DEFAULT '1',
Impronta char(64) NOT NULL,
Natura char(1) NOT NULL DEFAULT 'A',
PRIMARY KEY (IdAllegato));";
break;
case $wpdb->table_name_Categorie:
$sql = "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_Categorie." (
IdCategoria int(11) NOT NULL auto_increment,
Nome varchar(255) NOT NULL DEFAULT '',
Descrizione varchar(255) NOT NULL DEFAULT '',
Genitore int(11) NOT NULL DEFAULT '0',
Giorni smallint(3) NOT NULL DEFAULT '0',
PRIMARY KEY (IdCategoria));";
break;
case $wpdb->table_name_Log:
$sql= "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_Log." (
Data timestamp NOT NULL default CURRENT_TIMESTAMP,
Utente varchar(60) NOT NULL DEFAULT '',
IPAddress varchar(16) NOT NULL DEFAULT '',
Oggetto int(1) NOT NULL DEFAULT '1',
IdOggetto int(11) NOT NULL DEFAULT '1',
IdAtto int(11) NOT NULL DEFAULT '0',
TipoOperazione int(1) NOT NULL DEFAULT '1',
Operazione text);";
break;
case $wpdb->table_name_RespProc:
$sql = "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_RespProc." (
IdResponsabile int(11) NOT NULL auto_increment,
Cognome varchar(20) NOT NULL DEFAULT '',
Nome varchar(20) NOT NULL DEFAULT '',
Email varchar(100) NOT NULL DEFAULT '',
Telefono varchar(30) NOT NULL DEFAULT '',
Orario varchar(60) NOT NULL DEFAULT '',
Note text,
Funzione char(8) DEFAULT 'RP',
PRIMARY KEY (IdResponsabile));";
break;
case $wpdb->table_name_Enti:
$sql = "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_Enti." (
IdEnte int(11) NOT NULL auto_increment,
Nome varchar(100) NOT NULL,
Indirizzo varchar(150) NOT NULL DEFAULT '',
Url varchar(100) NOT NULL DEFAULT '',
Email varchar(100) NOT NULL DEFAULT '',
Pec varchar(100) NOT NULL DEFAULT '',
Telefono varchar(40) NOT NULL DEFAULT '',
Fax varchar(40) NOT NULL DEFAULT '',
Note text,
PRIMARY KEY (Idente));";
break;
case $wpdb->table_name_UO:
$sql = "CREATE TABLE IF NOT EXISTS ".$wpdb->table_name_UO." (
IdUO int(11) NOT NULL auto_increment,
Nome varchar(100) NOT NULL,
Indirizzo varchar(150) NOT NULL DEFAULT '',
Url varchar(100) NOT NULL DEFAULT '',
Email varchar(100) NOT NULL DEFAULT '',
Pec varchar(100) NOT NULL DEFAULT '',
Telefono varchar(40) NOT NULL DEFAULT '',
Fax varchar(40) NOT NULL DEFAULT '',
Note text,
PRIMARY KEY (IdUO));";
break;
}
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
function ap_existFieldInTable($Tabella, $Campo){
global $wpdb;
// echo "SHOW COLUMNS FROM $Tabella LIKE '$Campo'";exit;
$ris=$wpdb->get_row("SHOW COLUMNS FROM $Tabella LIKE '$Campo'", ARRAY_A);
if(isset($ris) And count($ris)>0 )
return true;
else
return false;
}
function ap_existTable($Tabella){
global $wpdb;
$ris=$wpdb->get_row("show tables like '$Tabella' ", ARRAY_A);
if(isset($ris) And count($ris)>0 )
return true;
else
return false;
}
/*function NFieldInTable($Tabella){
global $wpdb;
return$wpdb->get_var("Select count(*) FROM $Tabella");
}
*/
function ap_AggiungiCampoTabella($Tabella, $Campo, $Parametri){
global $wpdb;
if ( false === $wpdb->query("ALTER TABLE $Tabella ADD $Campo $Parametri")){
return new WP_Error('db_insert_error', sprintf(__('Non sono riuscito a creare il campo %s Nella Tabella %s Errore %s ','albo-online'),$Campo, $Tabella, $wpdb->last_error), $wpdb->last_error);
} else{
return true;
}
}
function ap_typeFieldInTable($Tabella, $Campo){
global $wpdb;
// echo "SHOW COLUMNS FROM $Tabella LIKE '$Campo'";exit;
$ris=$wpdb->get_row("SHOW COLUMNS FROM $Tabella LIKE '$Campo'", ARRAY_A);
if(isset($ris) And count($ris)>0 )
return $ris["Type"];
else
return false;
}
function ap_EstraiParametriCampo($Tabella,$Campo){
global $wpdb;
// echo "SHOW COLUMNS FROM $Tabella LIKE $Campo ";
/*
Field ==> Nome Campo
Type ==> Tipo Campo
Null ==> Il campo contiene YES se il campo accetta valori NULL altrimenti contiene NO
Key ==> Contiene il tipo di Kiave:
Vuota se non � indice oppure � parte di indice multicolonna come campo secondario
PRI se � Kiave primaria o parte di essa
UNI se � il primo campo di una chiave Univoca
MUL se � la prima colonna di un indice non univoco
Extra ==> contiene informazioni addizionali. Il valore auto_increment
*/
$ris=$wpdb->get_row("SHOW COLUMNS FROM $Tabella LIKE '$Campo'", ARRAY_A);
if(isset($ris) And count($ris)>0 )
return($ris);
else
return FALSE;
}
function ap_ModificaTipoCampo($Tabella, $Campo, $NuovoTipo){
global $wpdb;
// echo "ALTER TABLE $Tabella MODIFY $Campo $NuovoTipo ";
if ( false === $wpdb->query("ALTER TABLE $Tabella MODIFY $Campo $NuovoTipo")){
return new WP_Error('db_insert_error', sprintf(__('Non sono riuscito a modificare il campo %s Nella Tabella %s Errore %s ','albo-online'),$Campo, $Tabella, $wpdb->last_error), $wpdb->last_error);
} else{
return true;
}
}
function ap_ModificaParametriCampo($Tabella, $Campo, $Tipo, $Parametro){
global $wpdb;
// echo "ALTER TABLE $Tabella CHANGE $Campo $Campo $Tipo $Parametro";exit;
if ( false === $wpdb->query("ALTER TABLE $Tabella CHANGE $Campo $Campo $Tipo $Parametro")){
return new WP_Error('db_insert_error', sprintf(__('Non sono riuscito a modificare il campo %s Nella Tabella %s Errore %s','albo-online'),$Campo, $Tabella, $wpdb->last_error), $wpdb->last_error);
} else{
return true;
}
}
function ap_DaPath_a_URL($File){
// $base=substr(WP_PLUGIN_URL,0,strpos(WP_PLUGIN_URL,"wp-content", 0));
// $allegato=$base.strstr($File, "wp-content");
// $Url=$base.stripslashes(get_option('opt_AP_FolderUpload')).'/'.basename($File);
$PathUploads = wp_upload_dir();
$allegato=$PathUploads['baseurl']."/".strstr($File, "AllegatiAttiAlboPretorio");
return str_replace("\\","/",$allegato);
}
function ap_UniqueFileName($filename,$inc=0){
$baseName=$filename;
while (file_exists($filename)){
$inc++;
$filename=substr($baseName,0,strrpos($baseName,"."))."_".$inc.substr($baseName,strrpos($baseName,"."),strlen($baseName)-strrpos($baseName,"."));
}
return $filename;
}
function ap_Bonifica_Url(){
foreach( $_REQUEST as $key => $value){
if ($key!="page_id")
$_SERVER['REQUEST_URI'] = remove_query_arg($key, $_SERVER['REQUEST_URI']);
}
$url='?';
foreach( $_REQUEST as $key => $value)
$url.=$key."=".$value;
return $url;
}
function ap_Estrai_PageID_Url(){
foreach( $_REQUEST as $key => $value){
if (strpos( $key,"page_id")!== false)
return $value;
}
return 0;
}
function ap_ListaElementiArray($var) {
$output ="";
foreach($var as $key => $value) {
$output .= $key . "==>".$value . "\n";
}
return $output;
}
function ap_cvdate($data){
// echo $data." - ";
$rsl = explode ('-',$data);
//print("mm=".$rsl[1]." gg=". $rsl[2]." aaaa=".$rsl[0]);
return mktime(0,0,0,$rsl[1], $rsl[2],$rsl[0]);
}
function ap_oggi(){
return date('Y-m-d');
}
function ap_DateAdd($data,$incremento){
$secondi=ap_cvdate($data)+($incremento*86400);
return date("Y-m-d",$secondi);
}
function ap_SeDate($test,$data1,$data2){
$data1=ap_cvdate($data1);
$data2=ap_cvdate($data2);
switch ($test){
case "=":
if ($data1==$data2)
return true;
break;
case "<":
if ($data1<$data2)
return true;
break;
case ">":
if ($data1>$data2)
return true;
break;
case ">=":
if ($data1>=$data2)
return true;
break;
case "<=":
if ($data1<=$data2)
return true;
break;
case "!=":
if ($data1!=$data2)
return true;
break;
}
return false;
}
function daGiorniaAnniMesiGiorni($nGiorni){
if ($nGiorni>365)
$nAnni=floor($nGiorni/365);
else
$nAnni=0;
$nGiorni=$nGiorni-($nAnni*365);
if ($nGiorni>31){
$giorniM=array(31,30,31,30,31,30,31,30,31,30,31,30);
$TgiorniM=$giorniM[0];
$nMesi=0;
for ($nMesi=0;$nGiorni>$TgiorniM;$nMesi++){
$TgiorniM+=$giorniM[$nMesi];
}
$nGiorni=$nGiorni-($TgiorniM-$giorniM[$nMesi-1]);
}else{
$nMesi=0;
}
return "Anni: ".$nAnni." Mesi: ".$nMesi." Giorni: ".$nGiorni;
}
function ap_datediff($interval, $date1, $date2) {
if(($date2==0) Or ($date2<$date1))
return -1;
$seconds = ap_cvdate($date2) - ap_cvdate($date1);
switch ($interval) {
case "y": // years
list($year1, $month1, $day1) = split('-', date('Y-m-d', $date1));
list($year2, $month2, $day2) = split('-', date('Y-m-d', $date2));
$time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
$time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
$diff = $year2 - $year1;
if($month1 > $month2) {
$diff -= 1;
} elseif($month1 == $month2) {
if($day1 > $day2) {
$diff -= 1;
} elseif($day1 == $day2) {
if($time1 > $time2) {
$diff -= 1;
}
}
}
break;
case "m": // months
list($year1, $month1, $day1) = split('-', date('Y-m-d', $date1));
list($year2, $month2, $day2) = split('-', date('Y-m-d', $date2));
$time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
$time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
$diff = ($year2 * 12 + $month2) - ($year1 * 12 + $month1);
if($day1 > $day2) {
$diff -= 1;
} elseif($day1 == $day2) {
if($time1 > $time2) {
$diff -= 1;
}
}
break;
case "w": // weeks
// Only simple seconds calculation needed from here on
$diff = floor($seconds / 604800);
break;
case "d": // days
$diff = floor($seconds / 86400);
break;
case "h": // hours
$diff = floor($seconds / 3600);
break;
case "i": // minutes
$diff = floor($seconds / 60);
break;
case "s": // seconds
$diff = $seconds;
break;
}
return $diff;
}
function ap_convertiData($dataEur){
$rsl = explode ('/',$dataEur);
$rsl = array_reverse($rsl);
return implode('-',$rsl);
}
function ap_VisualizzaData($dataDB){
$dataDB=substr($dataDB,0,10);
$rsl = explode ('-',$dataDB);
$rsl = array_reverse($rsl);
return implode('/',$rsl);
}
function ap_VisualizzaOra($dataDB){
return substr($dataDB,10);
}
################################################################################
// Funzioni Log
################################################################################
/*
Oggetto int(1)
1=> Atti
2=> Categorie
3=> Allegati
4=> Responsabili
5=> Statistiche Visualizzazioni
6=> Statistiche Download Allegati
7=> Enti
8=> Tipi di Files
9=> Unità Organizzative
TipoOperazione int(1)
1=> Inserimento
2=> Modifica
3=> Cancellazione
4=> Pubblicazione
5=> Incremento (solo per le statistiche)
6=> Annullamento
*/
function ap_manutenzioneLogVisualizzazione(){
global $wpdb;
$NumAnomalie=(int)($wpdb->get_var(
"SELECT count(*)
FROM $wpdb->table_name_Log
WHERE $wpdb->table_name_Log.Oggetto=5 AND
$wpdb->table_name_Log.TipoOperazione=5 AND
$wpdb->table_name_Log.IdAtto=0;"));
if(0!=$NumAnomalie)
$wpdb->query(
"UPDATE $wpdb->table_name_Log SET $wpdb->table_name_Log.IdAtto= $wpdb->table_name_Log.IdOggetto
WHERE $wpdb->table_name_Log.TipoOperazione=5 And
$wpdb->table_name_Log.Oggetto=5 And
$wpdb->table_name_Log.IdAtto=0 ;");
}
function ap_insert_log($Oggetto,$TipoOperazione,$IdOggetto,$Operazione,$IdAtto=0){
global $wpdb;
if(get_option('opt_AP_LogOp')=="No" And ($Oggetto!=5 And $Oggetto!=6)){
return;
}
if(get_option('opt_AP_LogAc')=="No" And ($Oggetto==5 Or $Oggetto==6)){
return;
}
$current_user = wp_get_current_user();
$wpdb->insert($wpdb->table_name_Log,array('IPAddress' => "",
'Utente' => $current_user->user_login,
'Oggetto' => $Oggetto,
'IdOggetto' => $IdOggetto,
'IdAtto' => $IdAtto,
'TipoOperazione' => $TipoOperazione,
'Operazione' => $Operazione),
array('%s',
'%s',
'%s',
'%d',
'%d',
'%d',
'%s'));
}
function ap_svuota_log($Tipo=0){
global $wpdb;
if ($Tipo==0)
$nr=$wpdb->query("DELETE FROM $wpdb->table_name_Log");
else
$nr=$wpdb->query("Delete FROM $wpdb->table_name_Log WHERE Oggetto<>5 and Oggetto<>6");
return $nr;
}
function ap_get_all_Oggetto_log($Oggetto,$IdOggetto=0,$IdAtto=0){
global $wpdb;
$condizione="WHERE Oggetto=". (int)$Oggetto;
if ($IdOggetto!=0)
$condizione.=" and IdOggetto=". (int)$IdOggetto ;
if ($IdAtto!=0 and $IdOggetto!=0)
$condizione.=" or IdAtto=".(int)$IdAtto;
if ($IdAtto!=0 and $IdOggetto==0)
$condizione.=" and IdAtto=".(int)$IdAtto;
// echo "SELECT * FROM $wpdb->table_name_Log ".$condizione." order by Data;";
return $wpdb->get_results("SELECT * FROM $wpdb->table_name_Log ".$condizione." order by Data DESC;");
}
function ap_get_Stat_Visite($IdAtto){
global $wpdb;
return $wpdb->get_results("SELECT date( `Data` ) AS Data, TitoloAllegato, Allegato, count( `Data` ) AS Accessi
FROM $wpdb->table_name_Log
INNER JOIN $wpdb->table_name_Allegati
ON $wpdb->table_name_Log.`IdOggetto` = $wpdb->table_name_Allegati.IdAllegato
WHERE `Oggetto` =5
AND $wpdb->table_name_Allegati.`IdAtto` =". (int)$IdAtto."
GROUP BY date( `Data` ) , IdOggetto
ORDER BY Data DESC");
}
function ap_get_Stat_VisiteRagg($IdAtto){
global $wpdb;
return $wpdb->get_results("SELECT date( `Data` ) AS Data, \" \", \" \", count( `Data` ) AS Accessi
FROM $wpdb->table_name_Log
WHERE `Oggetto` =5
AND $wpdb->table_name_Log.`IdAtto` =". (int)$IdAtto."
And $wpdb->table_name_Log.`IdAtto` =$wpdb->table_name_Log.`IdOggetto`
GROUP BY date( `Data` ) , IdOggetto
ORDER BY Data DESC");
}
function ap_get_Stat_Num_log($IdAtto,$Oggetto){
global $wpdb;
return (int)($wpdb->get_var( $wpdb->prepare( "SELECT COUNT(IdOggetto) FROM $wpdb->table_name_Log WHERE Oggetto = %d AND IdAtto = %d",(int) $Oggetto,(int)$IdAtto)));
}
function ap_get_Stat_Download($IdAtto){
global $wpdb;
return $wpdb->get_results("SELECT date( `Data` ) AS Data, TitoloAllegato, Allegato, count( `Data` ) AS Accessi
FROM $wpdb->table_name_Log
INNER JOIN $wpdb->table_name_Allegati
ON $wpdb->table_name_Log.`IdOggetto` = $wpdb->table_name_Allegati.IdAllegato
WHERE `Oggetto` =6
AND $wpdb->table_name_Allegati.`IdAtto` =". (int)$IdAtto."
GROUP BY date( `Data` ) , IdOggetto
ORDER BY Data DESC");
}
function ap_get_Stat_Log($TipoInformazione){
global $wpdb;
switch ($TipoInformazione){
case "Oggetto":
$Sql="SELECT
CASE Oggetto
WHEN 0 THEN 'Tutte le Tabelle'
WHEN 1 THEN 'Atti'
WHEN 2 THEN 'Categorie'
WHEN 3 THEN 'Allegati'
WHEN 4 THEN 'Responsabili'
WHEN 5 THEN 'Statistiche Visualizzazioni'
WHEN 6 THEN 'Statistiche Download Allegati'
WHEN 7 THEN 'Enti'
WHEN 8 THEN 'Tipi di files'
WHEN 8 THEN 'Unità Organizzative'
END as NomeOggetto, COUNT( * ) as Numero
FROM $wpdb->table_name_Log
GROUP BY Oggetto";
break;
case "TipoOperazione":
$Sql="SELECT
CASE TipoOperazione
WHEN 0 THEN 'Tutte le Tabelle'
WHEN 1 THEN 'Inserimento'
WHEN 2 THEN 'Modifica'
WHEN 3 THEN 'Cancellazione'
WHEN 4 THEN 'Pubblicazione'
WHEN 5 THEN 'Incremento (solo per le statistiche)'
WHEN 6 THEN 'Annullamento'
WHEN 7 THEN 'Svuotamento Tabella'
WHEN 8 THEN 'Restore Dati'
WHEN 9 THEN 'Allineamento Riga Allegato con File'
WHEN 10 THEN 'Spostamento Allegati'
END as NomeTipoOperazione, COUNT( * ) as Numero
FROM $wpdb->table_name_Log
GROUP BY TipoOperazione";
break;
}
return $wpdb->get_results($Sql);
}
################################################################################
// Funzioni Meta Dati Atti
################################################################################
function ap_get_elenco_attimeta($Output="Array",$ID="listaAttiMeta",$Name="ListaAttiMeta",$ValUnici="No",$IDAtto=0,$ValUniciXValori=False){
global $wpdb;
$Rag="";
if($ValUnici=="Si"){
$Rag="GROUP BY $wpdb->table_name_Attimeta.Meta".($ValUniciXValori?", $wpdb->table_name_Attimeta.Value":"");
}
if($IDAtto==0){
$Res=$wpdb->get_results("SELECT IdAtto, Meta, Value FROM $wpdb->table_name_Attimeta $Rag;");
}else{
$Res=$wpdb->get_results($wpdb->prepare("SELECT IdAtto, Meta, Value FROM $wpdb->table_name_Attimeta WHERE IdAtto=%d $Rag;",$IDAtto));
}
// echo $wpdb->last_query;die();
switch ($Output){
case "Array":
return $Res;
break;
case "Select":
$Lista="";
return $Lista;
break;
case "Div":
$i=0;
$Lista="";
foreach($Res as $Rec){
$Lista.="
Meta."\"/>
Value."\">
";
$i++;
}
return $Lista;
break;
}
}
function ap_get_GruppiAtti($meta,$value){
global $wpdb;
$Sql="SELECT $wpdb->table_name_Atti.IdAtto,LPAD($wpdb->table_name_Atti.Numero,7,0) as Numero,$wpdb->table_name_Atti.Anno,$wpdb->table_name_Atti.Data,$wpdb->table_name_Atti.Riferimento,$wpdb->table_name_Atti.Oggetto,$wpdb->table_name_Atti.DataInizio,$wpdb->table_name_Atti.DataFine,$wpdb->table_name_Atti.Informazioni,$wpdb->table_name_Atti.IdCategoria,$wpdb->table_name_Atti.RespProc,$wpdb->table_name_Atti.DataAnnullamento,$wpdb->table_name_Atti.MotivoAnnullamento,$wpdb->table_name_Atti.Ente,$wpdb->table_name_Atti.DataOblio,$wpdb->table_name_Atti.Soggetti FROM $wpdb->table_name_Atti INNER JOIN $wpdb->table_name_Attimeta ON"
. " $wpdb->table_name_Atti.IdAtto=$wpdb->table_name_Attimeta.IdAtto WHERE"
. " $wpdb->table_name_Attimeta.meta=%s ".($value!=""?"And $wpdb->table_name_Attimeta.Value='%s'":"")." And $wpdb->table_name_Atti.Numero>0 ORDER BY Anno, Numero";
$Sql=$wpdb->prepare($Sql,$meta,$value);
$Res=$wpdb->get_results($Sql);
return $Res;
}
function ap_get_meta_atto($IDAtto=0){
global $wpdb;
$Res=$wpdb->get_results("SELECT Meta,Value FROM $wpdb->table_name_Attimeta WHERE IdAtto=$IDAtto;");
return $Res;
}
function ap_add_attimeta($IDAtto,$MetaName,$MetaValue){
global $wpdb;
$Sql="SELECT Value FROM $wpdb->table_name_Attimeta WHERE IdAtto=%d And Meta=%s;";
$Res=$wpdb->get_results($wpdb->prepare($Sql,$IDAtto,$MetaName));
if(count($Res)==0){
if ( false === $wpdb->insert($wpdb->table_name_Attimeta,
array('IdAtto' => $IDAtto,
'Meta' => $MetaName,
'Value' => $MetaValue),
array('%d','%s','%s')))
return FALSE;
else
return TRUE;
}else{
if ( $wpdb->update($wpdb->table_name_Attimeta,
array('Value' => $MetaValue),
array( 'IdAtto' => $IDAtto,
'Meta' => $MetaName),
array( '%s'),
array( '%d','%s')))
return TRUE;
else
return FALSE;
}
}
function ap_update_attimeta($IDAtto,$MetaName,$MetaValue){
global $wpdb;
$Sql="SELECT Value FROM $wpdb->table_name_Attimeta WHERE IdAtto=%d And Meta=%s;";
$Res=$wpdb->get_results($wpdb->prepare($Sql,$IDAtto,$MetaName));
if(count($Res)==0){
if ( false === $wpdb->insert($wpdb->table_name_Attimeta,
array('IdAtto' => $IDAtto,
'Meta' => $MetaName,
'Value' => $MetaValue),
array('%d','%s','%s')))
return FALSE;
else
return TRUE;
}
if ( $wpdb->update($wpdb->table_name_Attimeta,
array('Value' => $MetaValue),
array( 'IdAtto' => $IDAtto,
'Meta' => $MetaName),
array( '%s'),
array( '%d','%s')))
return TRUE;
else
return FALSE;
}
function ap_remove_metasatto($IDAtto,$MetaDati=""){
global $wpdb;
if( is_array( $MetaDati )){
$AttiRimasti=implode("','",$MetaDati);
$AttiRimasti="'".$AttiRimasti."'";
// echo "SELECT Meta FROM $wpdb->table_name_Attimeta WHERE IdAtto=$IDAtto And Meta not in(".$AttiRimasti.");";die();
$Res=$wpdb->get_results("SELECT Meta FROM $wpdb->table_name_Attimeta WHERE IdAtto=$IDAtto And Meta not in(".$AttiRimasti.");");
if($Res){
foreach($Res as $Rs){
$StatoRes=ap_delete_metaatto($IDAtto,$Rs->Meta);
}
return $StatoRes;
}
}else{
$Sql="DELETE FROM $wpdb->table_name_Attimeta WHERE IdAtto=%d";
$Sql=$wpdb->prepare( $Sql,$IDAtto);
$Res=$wpdb->query($Sql);
if($Res!==FALSE And $Res==0){
return TRUE;
}else{
return FALSE;
}
}
}
function ap_delete_metaatto($IDAtto,$MetaName){
global $wpdb;
$Sql="DELETE FROM $wpdb->table_name_Attimeta WHERE IdAtto=%d And Meta=%s";
$Sql=$wpdb->prepare( $Sql,$IDAtto,$MetaName);
$Res=$wpdb->query($Sql);
if($Res!==FALSE And $Res==0){
return TRUE;
}else{
return FALSE;
}
}
################################################################################
// Funzioni Categorie
################################################################################
function ap_get_num_categorie(){
global $wpdb;
return (int)($wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->table_name_Categorie"));
}
function ap_insert_categoria($cat_name,$cat_parente,$cat_descrizione,$cat_durata){
global $wpdb;
if ( false === $wpdb->insert($wpdb->table_name_Categorie,array('Nome' => $cat_name,
'Genitore' => $cat_parente,
'Descrizione' => $cat_descrizione,
'Giorni' => $cat_durata),
array('%s',
'%d',
'%s',
'%d')))
return new WP_Error('db_insert_error', __('Non sono riuscito ad inserire la Nuova Categoria','albo-online').$wpdb->last_error, $wpdb->last_error);
else{
$NomeCategoria=ap_get_categoria($cat_parente);
if(is_array($NomeCategoria)and count($NomeCategoria)>0){
$NomeCategoria=$NomeCategoria[0];
$CatGenitore=$NomeCategoria->Nome;
}else{
$CatGenitore="Non Specificato";
}
ap_insert_log(2,1,$wpdb->insert_id,"{IdCategoria}==> $wpdb->insert_id
{".__("Nome","albo-online")."}==> $cat_name
{".__("Descrizione","albo-online")."}==> $cat_descrizione
{".__("Durata","albo-online")."}==> $cat_durata
{IdGenitore}==> $cat_parente
{".__("Genitore","albo-online")."}==> $CatGenitore");
}
}
function is_array_di_categorie($Categorie){
$ArrCategorie=explode(",",$Categorie);
$Esito=false;
foreach($ArrCategorie as $Cate){
if(count(ap_get_categoria($Cate))){
$Esito=True;
}else{
return FALSE;
}
}
return $Esito;
}
function ap_get_categorie(){
global $wpdb;
return $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie;");
}
function ap_memo_categorie($id,$cat_name,$cat_parente,$cat_descrizione,$cat_durata){
global $wpdb;
$id=(int)$id;
$cat_parente=(int)$cat_parente;
$Categoria=ap_get_categoria($id);
$Categoria=$Categoria[0];
$Log='{Id}==>'.$id .' ' ;
if ($Categoria->Nome!=$cat_name)
$Log.='{'.__("Nome","albo-online").'}==> '.$cat_name.' ';
if ($Categoria->Genitore!=$cat_parente){
$Log.='{IdGenitore}==> '.$cat_parente.' ';
$CategoriaPadre=ap_get_categoria($cat_parente);
$CategoriaPadre=$CategoriaPadre[0];
$Log.='{'.__("Genitore","albo-online").'}==> '.$CategoriaPadre->Nome.' ';
}
if ($Categoria->Descrizione!=$cat_descrizione)
$Log.='{'.__("Descrizione","albo-online").'}==> '.$cat_descrizione.' ';
if ($Categoria->Giorni!=$cat_durata)
$Log.='{'.__("Giorni","albo-online").'}==> '.$cat_durata.' ';
if ( false === $wpdb->update($wpdb->table_name_Categorie,
array('Nome' => $cat_name,
'Genitore' => $cat_parente,
'Descrizione' => $cat_descrizione,
'Giorni' => $cat_durata),
array( 'IdCategoria' => $id ),
array('%s',
'%d',
'%s',
'%d'),
array('%d')
))
return new WP_Error('db_update_error', __('Non sono riuscito a modifire la Categoria','albo-online').$wpdb->last_error, $wpdb->last_error);
else
ap_insert_log(2,2,$id,$Log);
}
function ap_get_dropdown_categorie($select_name,$id_name,$class,$tab_index_attribute, $default="Nessuna", $DefVisId=true, $ConAtti=false,$SceltaMultipla=FALSE ) {
global $wpdb;
if ($ConAtti)
$categorie = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie WHERE IdCategoria in (SELECT IdCategoria FROM wp_albopretorio_atti) GROUP BY `IdCategoria`ORDER BY nome;");
else
$categorie = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie ORDER BY nome;");
$output = "\n";
return $output;
}
function ap_num_atti_categoria($IdCategoria,$Stato=0){
/*
$Stato
0 tutti
1 attivi
2 storici
*/
global $wpdb;
$IdCategoria=(int)$IdCategoria;
$Sql=$Sql="SELECT COUNT(*) FROM $wpdb->table_name_Atti WHERE IdCategoria=$IdCategoria";
switch ($Stato){
case 1:
$Sql.=" And Numero >0 AND DataFine >= '".ap_oggi()."' AND DataInizio <= '".ap_oggi()."'";
break;
case 2:
$Sql.=" And Numero >0 AND DataFine <= '".ap_oggi()."' And DataOblio> '".ap_oggi()."'";
break;
}
$Sql.=";";
return $wpdb->get_var($Sql);
}
function ap_get_dropdown_ricerca_categorie($select_name,$id_name,$class,$tab_index_attribute,$default="Nessuna",$Stato ) {
/*
$Stato
0 tutti
1 attivi
2 storici
*/
global $wpdb;
$categorie = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie ORDER BY nome;");
$output = "\n";
}
return $output;
}
function ap_get_nuvola_categorie($link,$Stato ) {
/*
$Stato
0 tutti
1 attivi
2 storici
*/
global $wpdb;
$categorie = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie ORDER BY nome;");
if ( ! empty( $categorie ) ) {
$TotAtti=count(ap_get_all_atti($Stato));
foreach ($categorie as $c) {
$numAtti=ap_num_atti_categoria($c->IdCategoria,$Stato);
if ($numAtti){
$pix=(int) 1 + ($numAtti /$TotAtti);
$output .= "Nome."'>".$c->Nome." \n";
}
}
}
return $output;
}
function ap_get_categoria($id){
global $wpdb;
return $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie WHERE IdCategoria=".(int)$id.";");
}
function ap_get_categorie_figlio($id, &$elenco, $livello){
global $wpdb;
$categorie_figlio = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie WHERE genitore=".(int)$id." ORDER BY nome;");
// echo "SELECT DISTINCT * FROM $wpdb->table_name_Categorie WHERE IdCategoria=$id ORDER BY nome;";
foreach ( $categorie_figlio as $cf )
{
// echo "Id ".$cf->IdCategoria ." Nome ". $cf->Nome. " ";
if ($cf){
array_push($elenco,array($cf->IdCategoria,$cf->Nome,$livello));
if ($cf->Genitore>0){
$livello+=1;
ap_get_categorie_figlio($cf->IdCategoria,$elenco, $livello);
$livello-=1;
}
}
}
}
function ap_get_categorie_gerarchica() {
global $wpdb;
$elenco = array();
$categorie_primarie = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->table_name_Categorie WHERE genitore<1 ORDER BY Nome;");
foreach ($categorie_primarie as $cp) {
// echo "Ci passo";
// echo "Id ".$cp->IdCategoria ." Nome ". $cp->Nome. " ";
array_push($elenco,array($cp->IdCategoria,$cp->Nome,0));
ap_get_categorie_figlio($cp->IdCategoria,$elenco, 1);
}
return $elenco;
}
function ap_del_categorie($id) {
global $wpdb;
$id=(int)$id;
if ((ap_num_atti_categoria($id)>0) or (ap_num_figli_categorie($id)>0)){
return array("atti" => ap_num_atti_categoria($id),
"figli" => ap_num_figli_categorie($id));
}
else{
$wpdb->query($wpdb->prepare( "DELETE FROM $wpdb->table_name_Categorie WHERE IdCategoria=%d",$id));
ap_insert_log(2,3,$id,__("Cancellazione Categoria","albo-online"));
return True;
}
}
function ap_num_figli_categorie($id){
global $wpdb;
return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->table_name_Categorie WHERE Genitore=%d",$id));
}
function ap_num_categorie(){
global $wpdb;
return $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Categorie");
}
function ap_num_categorie_inutilizzate(){
global $wpdb;
$Sql="SELECT count(*)
FROM $wpdb->table_name_Categorie left join $wpdb->table_name_Atti on
$wpdb->table_name_Atti.IdCategoria = $wpdb->table_name_Categorie.IdCategoria
WHERE $wpdb->table_name_Atti.IdAtto is null";
return $wpdb->get_var($Sql);
}
function ap_num_categoria_atto($id){
global $wpdb;
$id=(int)$id;
$Sql="SELECT count(*)
FROM $wpdb->table_name_Atti
WHERE $wpdb->table_name_Atti.IdCategoria =%d;";
return $wpdb->get_var($wpdb->prepare($Sql,$id));
}
function ap_categorie_orfane(){
global $wpdb;
$Sql="SELECT LPAD($wpdb->table_name_Atti.Numero,7,0),$wpdb->table_name_Atti.Anno, $wpdb->table_name_Atti.IdCategoria
FROM $wpdb->table_name_Atti left join $wpdb->table_name_Categorie on
$wpdb->table_name_Atti.IdCategoria = $wpdb->table_name_Categorie.IdCategoria
WHERE $wpdb->table_name_Categorie.IdCategoria is null";
return $wpdb->get_results($Sql);
}
################################################################################
// Funzioni Atti
################################################################################
function ap_AnniAtti(){
global $wpdb;
$Sql="SELECT Anno FROM $wpdb->table_name_Atti where Numero<>0 Group by Anno;";
$Anni = $wpdb->get_results($Sql);
if (count($Anni)==0)
return FALSE;
else
return $Anni;
}
function ap_Repertorio($Anno,$Echo=TRUE){
global $wpdb;
$Docu="";
$Sql="SELECT $wpdb->table_name_Enti.Nome as NomeEnte,LPAD(Numero,7,0) as Numero,Anno,Riferimento,Oggetto,DataInizio,DataFine, DataAnnullamento, MotivoAnnullamento,Richiedente,$wpdb->table_name_UO.Nome as UnitaOrganizzativa,CONCAT($wpdb->table_name_RespProc.Nome, \" \",$wpdb->table_name_RespProc.Cognome) as ResponsabileProcedimento,$wpdb->table_name_Categorie.Nome as Categoria,Informazioni
FROM $wpdb->table_name_Atti inner join $wpdb->table_name_Categorie on ($wpdb->table_name_Atti.IdCategoria =$wpdb->table_name_Categorie.IdCategoria) inner join $wpdb->table_name_Enti on ($wpdb->table_name_Atti.Ente=$wpdb->table_name_Enti.IdEnte) left join $wpdb->table_name_UO on ($wpdb->table_name_Atti.IdUnitaOrganizzativa =$wpdb->table_name_UO.IdUO) left join $wpdb->table_name_RespProc on ($wpdb->table_name_Atti.RespProc =$wpdb->table_name_RespProc.IdResponsabile)
WHERE Anno=$Anno And Numero>0
ORDER By Numero";
$Atti = $wpdb->get_results($Sql);
if (count($Atti)!=0){
if($Echo){
foreach($Atti as $Atto){
if($Atto->DataAnnullamento!='0000-00-00')
$Annullato='style="background-color: '.get_option('opt_AP_ColoreAnnullati').';"';
else
$Annullato='';
$Docu.= "
".stripcslashes($Atto->NomeEnte)."
$Atto->Numero
".wp_strip_all_tags( $Atto->Riferimento)."
".wp_strip_all_tags($Atto->Oggetto)."
$Atto->DataInizio
$Atto->DataFine
$Atto->DataAnnullamento
".wp_strip_all_tags($Atto->MotivoAnnullamento)."
$Atto->Richiedente
$Atto->UnitaOrganizzativa
$Atto->ResponsabileProcedimento
$Atto->Categoria
".wp_strip_all_tags($Atto->Informazioni)."
";
}
}else{
return $Atti;
}
}
return $Docu;
}
function ap_SetDefaultDataScadenza(){
global $wpdb;
$Sql="SELECT IdAtto, DataOblio,DataFine FROM $wpdb->table_name_Atti;";
$Atti = $wpdb->get_results($Sql);
foreach ($Atti as $Atto){
if ($Atto->DataOblio=="0000-00-00"){
$DataOblio=ap_DateAdd($Atto->DataFine ,1825);
if ( $wpdb->update($wpdb->table_name_Atti,
array('DataOblio' => $DataOblio),
array( 'IdAtto' => $Atto->IdAtto),
array( '%s'),
array( '%d'))){
ap_insert_log(1,2,$Atto->IdAtto,"{Data Oblio}==> ".$DataOblio);
}
}
}
}
function ap_insert_atto($Ente,$Data,$Riferimento,$Oggetto,$DataInizio,$DataFine,$DataOblio,$Note,$Categoria,$Responsabile,$Soggetti,$IdUI,$Richiedente){
global $wpdb;
$Anno=date("Y");
$Numero=0;
$Data=ap_convertiData($Data);
$DataInizio=ap_convertiData($DataInizio);
$DataFine=ap_convertiData($DataFine);
$DataOblio=ap_convertiData($DataOblio);
if(!$Responsabile){
$Responsabile=0;
}
if ( false === $wpdb->insert(
$wpdb->table_name_Atti,array(
'Ente' => $Ente,
'Numero' => $Numero,
'Anno' => $Anno,
'Data' => $Data,
'Riferimento' => $Riferimento,
'Oggetto' => $Oggetto,
'DataInizio' => $DataInizio,
'DataFine' => $DataFine,
'DataOblio' => $DataOblio,
'Informazioni' => $Note,
'IdCategoria' => $Categoria,
'RespProc' => $Responsabile,
'Soggetti' => $Soggetti,
'IdUnitaOrganizzativa' => $IdUI,
'Richiedente' => $Richiedente),
array(
'%d',
'%d',
'%d',
'%s',
'%s',
'%s',
'%s',
'%s',
'%s',
'%s',
'%d',
'%d',
'%s',
'%d',
'%s'))) {
// echo "Sql==".$wpdb->last_query ." Ultimo errore==".$wpdb->last_error;exit;
return sprintf(__("Non sono riuscito ad inserire il nuovo Atto Sql==%s Ultimo errore==%s","albo-online"),$wpdb->last_query,$wpdb->last_error);
}else{
$newIDAtto=$wpdb->insert_id;
// echo "Sql==".$wpdb->last_query;exit;
$NomeCategoria=ap_get_categoria($Categoria);
$NomeCategoria=$NomeCategoria[0];
$NomeResponsabile=ap_get_responsabile($Responsabile);
$NomeResponsabile=$NomeResponsabile[0];
$NomeEnte=ap_get_ente($Ente);
$NomeEnte=$NomeEnte->Nome;
$Responsabili="";
$NomeUO=ap_get_unitaorganizzativa($IdUI);
$NomeResp=ap_get_responsabile($Responsabile);
if (count($NomeResp)>0)
$NomeResp=$NomeResp[0]->Nome." ".$NomeResp[0]->Cognome;
else
$NomeResp=__("Non Definito","albo-online");
$Sogs=unserialize($Soggetti);
foreach($Sogs as $Soggetto){
$NomeResponsabile=ap_get_responsabile($Soggetto);
$Responsabili.="(".$Soggetto.") ".$NomeResponsabile[0]->Nome." ".$NomeResponsabile[0]->Cognome." ".ap_get_Funzione_Responsabile($NomeResponsabile[0]->Funzione,"Descrizione")." ";
}
ap_insert_log(1,1,$wpdb->insert_id,"{IdAtto}==> $wpdb->insert_id
{IdEnte} $Ente
{".__("Ente","albo-online")."} $NomeEnte
{".__("Numero","albo-online")."} $Numero/$Anno
{".__("Data di registrazione","albo-online")."}==> $Data
{".__("Riferimento","albo-online")."}==> $Riferimento
{".__("Oggetto","albo-online")."}==> $Oggetto
{IdOggetto}==> $wpdb->insert_id
{".__("Data Inizio","albo-online")."}==> $DataInizio
{".__("Data Fine","albo-online")."}==> $DataFine
{".__("Data Oblio","albo-online")."}==> $DataOblio
{".__("Note","albo-online")."}=> $Note
{".__("Categoria","albo-online")."}==> $NomeCategoria->Nome
{".__("Unita Organizzativa Responsabile","albo-online")."}==> ($IdUI) $NomeUO->Nome
{".__("Responsabile del procedimento amministrativo","albo-online")."}==> $NomeResp
{IdCategoria}==> $Categoria
{".__("Soggetti","albo-online")."}==> $Responsabili
{".__("Richiedente","albo-online")."}==>$Richiedente"
);
return $newIDAtto;
}
}
function ap_del_atto($id) {
global $wpdb;
$N_allegati=ap_num_allegati_atto($id);
if ($N_allegati>0){
return array("allegati" => $N_allegati);
}
else{
$wpdb->query($wpdb->prepare( "DELETE FROM $wpdb->table_name_Atti WHERE IdAtto=%d",$id));
ap_insert_log(1,3,$id,__("Cancellazione Atto","albo-online"),(int)$id);
return True;
}
}
function ap_memo_atto($id,$Ente,$Data,$Riferimento,$Oggetto,$DataInizio,$DataFine,$DataOblio,$Note,$Categoria,$Responsabile,$Soggetti,$IdUI,$Richiedente){
global $wpdb;
$Atto=ap_get_atto($id);
$Atto=$Atto[0];
// $Soggetti=serialize($Soggetti);
$Data=ap_convertiData($Data);
$DataInizio=ap_convertiData($DataInizio);
$DataFine=ap_convertiData($DataFine);
$DataOblio=ap_convertiData($DataOblio);
$Log='' ;
if ($Atto->Ente!=$Ente){
$NEnte=ap_get_ente($Ente);
$Log.='{IdEnte}==> '.$Ente.' ';
$Log.='{'.__("Ente","albo-online").'}==> '.$NEnte->Nome.' ';
}
if ($Atto->Data!=$Data)
$Log.='{'.__("Data di registrazione","albo-online").'}==> '.$Data.' ';
if ($Atto->Riferimento!=$Riferimento)
$Log.='{'.__("Riferimento","albo-online").'}==> '.$Riferimento.' ';
if ($Atto->Oggetto!=$Oggetto)
$Log.='{'.__("Oggetto","albo-online").'}==> '.$Oggetto.' ';
if ($Atto->DataInizio!=$DataInizio)
$Log.='{'.__("Data Inizio","albo-online").'}==> '.$DataInizio.' ';
if ($Atto->DataFine!=$DataFine)
$Log.='{'.__("Data Fine","albo-online").'}==> '.$DataFine.' ';
if ($Atto->DataOblio!=$DataOblio)
$Log.='{'.__("Data Oblio","albo-online").'}==> '.$DataOblio.' ';
if ($Atto->Informazioni!=$Note)
$Log.='{'.__("Informazioni","albo-online").'}==> '.$Note.' ';
if ($Atto->IdCategoria!=$Categoria){
$NomeCategoria=ap_get_categoria($Categoria);
$NomeCategoria=$NomeCategoria[0];
$Log.='{IdCategoria}==> '.$Categoria.' ';
$Log.='{'.__("Categoria","albo-online").'}==> '.$NomeCategoria->Nome.' ';
}
if($Atto->Soggetti!=$Soggetti){
$Responsabili="";
$Sogs=unserialize($Soggetti);
foreach($Sogs as $Soggetto){
$NomeResponsabile=ap_get_responsabile($Soggetto);
$Responsabili.="(".$Soggetto.") ".$NomeResponsabile[0]->Nome." ".$NomeResponsabile[0]->Cognome." ".ap_get_Funzione_Responsabile($NomeResponsabile[0]->Funzione,"Descrizione")." ";
}
$Log.='{'.__("Soggetti","albo-online").'}==> '.$Responsabili.' ';
}
if ($Atto->IdUnitaOrganizzativa!=$IdUI){
$NomeUO=ap_get_unitaorganizzativa($IdUI);
$Log.='{'.__("Unita Organizzativa Responsabile","albo-online").'}==> ('.$IdUI.') '.$NomeUO->Nome;
}
if ($Atto->RespProc!=$Responsabile){
$NomeResp=ap_get_responsabile($Responsabile);
$NomeResp=$NomeResp[0];
$Log.='{'.__("Responsabile del procedimento amministrativo","albo-online").'}==> '.$NomeResp->Nome." ".$NomeResp->Cognome;
}
if ($Atto->Richiedente!=$Richiedente)
$Log.='{Richiedente}==> '.$Richiedente.' ';
if ( false === $wpdb->update($wpdb->table_name_Atti,
array('Ente' => $Ente,
'Data' => $Data,
'Riferimento' => $Riferimento,
'Oggetto' => $Oggetto,
'DataInizio' => $DataInizio,
'DataFine' => $DataFine,
'DataOblio' => $DataOblio,
'Informazioni' => $Note,
'IdCategoria' => $Categoria,
'RespProc' => $Responsabile,
'Soggetti' => $Soggetti,
'IdUnitaOrganizzativa'=> $IdUI,
'Richiedente' => $Richiedente),
array( 'IdAtto' => $id ),
array('%d',
'%s',
'%s',
'%s',
'%s',
'%s',
'%s',
'%s',
'%d',
'%d',
'%s',
'%d',
'%s'),
array('%d')))
return new WP_Error('db_update_error', __("Non sono riuscito a modificare l'Atto","albo-online").$wpdb->last_error, $wpdb->last_error);
else
ap_insert_log(1,2,$id,$Log);
}
function ap_update_selettivo_atto($id,$ArrayCampiValori,$ArrayTipi,$TestaMsg){
global $wpdb;
if ( false === $wpdb->update($wpdb->table_name_Atti,$ArrayCampiValori,array( 'IdAtto' => $id ),$ArrayTipi))
return new WP_Error('db_update_error', __("Non sono riuscito a modificare l'Atto","albo-online") .$wpdb->last_error, $wpdb->last_error);
else{
ap_insert_log(1,2,(int)$id,$TestaMsg.ap_ListaElementiArray($ArrayCampiValori));
return __('Atto Aggiornato','albo-online').': %%br%%'.ap_ListaElementiArray($ArrayCampiValori);
}
}
function ap_approva_atto($IdAtto){
global $wpdb;
$IdAtto=(int)$IdAtto;
$NumeroDaDb=ap_get_last_num_anno(date("Y"));
$risultato=ap_get_atto($IdAtto);
$risultato=$risultato[0];
$NumeroOpzione=get_option('opt_AP_NumeroProgressivo');
if($risultato->Numero!=0)
return __("Atto gia' PUBBLICATO con Numero Progressivo ","albo-online").$risultato->Numero;
if (($NumeroDaDb!=$NumeroOpzione) And ap_get_all_atti(9,0,0,0,"",0,0,"",0,0,TRUE)>0){
return __("Atto non PUBBLICATO","albo-online").":%%br%%".__("Progressivo da ultima pubblicazione","albo-online")."=$NumeroDaDb%%br%% ".__("Progressivo da parametri","albo-online")."=$NumeroOpzione";
}else{
$x=$wpdb->update($wpdb->table_name_Atti,
array('Numero' => $NumeroOpzione),
array( 'IdAtto' => $IdAtto ),
array('%d'),
array('%d'));
// visualizza Sql Updateecho $wpdb->print_error();exit;
if ($x==0){
return __("Atto non PUBBLICATO","albo-online").':%%br%%'.__("Errore","albo-online").': '.$wpdb->last_error;
}
else{
ap_insert_log( 1,4,$IdAtto,"{".__("Stato Atto","albo-online")."}==> ".__("Pubblicato","albo-online")."
{".__("Numero Assegnato","albo-online")."}==> $NumeroOpzione ");
$NumeroOpzione+=1;
update_option('opt_AP_NumeroProgressivo',$NumeroOpzione );
return __("Atto PUBBLICATO","albo-online");
}
}
}
function ap_annulla_atto($IdAtto,$Motivo,$Allegati=array()){
global $wpdb;
$IdAtto=(int)$IdAtto;
// $risultato=ap_get_atto($IdAtto);
// $risultato=$risultato[0];
$Sql = "UPDATE `$wpdb->table_name_Atti` SET DataAnnullamento='".date('Y-m-d')."', MotivoAnnullamento=%s WHERE IdAtto=%d";
$Sql=$wpdb->prepare($Sql,array($Motivo,$IdAtto));
$Result=$wpdb->query($Sql);
// echo "Sql==".$wpdb->last_query ." Ultimo errore==".$wpdb->last_error;exit;
if($Result){
ap_insert_log(1,6,$IdAtto,"{".__("Stato Atto","albo-online")."}==> ".__("Annullato","albo-online"));
if (!empty($Allegati))
foreach($Allegati as $Allegato)
ap_del_allegato_atto($Allegato,$IdAtto,"","S");
return 9;
}else{
return 8;
}
}
function ap_get_dropdown_anni_atti($select_name,$id_name,$class,$tab_index_attribute, $default="xxxx",$Stato=0) {
/*
$Stato
0 tutti
1 attivi
2 storici
*/
global $wpdb;
if($default=="xxxx") $default=__("Nessuno","albo-online");
switch ($Stato){
case 1:
$Sql="SELECT Anno FROM $wpdb->table_name_Atti WHERE Numero >0 AND DataFine >= '".ap_oggi()."' AND DataInizio <= '".ap_oggi()."' GROUP BY Anno;";
break;
case 2:
$Sql="SELECT Anno FROM $wpdb->table_name_Atti WHERE Numero >0 AND DataFine < '".ap_oggi()."' GROUP BY Anno;";
break;
default:
$Sql="SELECT Anno FROM $wpdb->table_name_Atti GROUP BY Anno;";
break;
}
$anni = $wpdb->get_results($Sql);
$output = "\n";
return $output;
}
function ap_get_last_num_anno($Anno){
global $wpdb;
return (int)($wpdb->get_var( $wpdb->prepare( "SELECT MAX(Numero) FROM $wpdb->table_name_Atti WHERE Anno=%d",(int)$Anno)))+1;
}
function ap_get_num_anno($IdAtto){
global $wpdb;
return ($wpdb->get_var( $wpdb->prepare( "SELECT LPAD(Numero,7,0) as Numero FROM $wpdb->table_name_Atti WHERE IdAtto=%d",$IdAtto)));
}
function ap_get_all_atti($Stato=0,$Numero=0,$Anno=0,$Categoria=0,$Oggetto='',$Dadata=0,$Adata=0,$OrderBy="",$DaRiga=0,$ARiga=20,$Conteggio=false,$Annullati=false,$Riferimento='',$Ente=-1,$SenzaAnnullati=FALSE){
/* Stato:
0 - tutti
1 - in corso di validit�
2 - scaduti
3 - da pubblicare
4 - da cancellare
5 - cerca
9 - tutti tranne quelli da pubblicare
$Conteggio:
false - Estrazione Dati
true - Conteggio
*/
global $wpdb;
$Selezione="";
if ($OrderBy!=""){
$OrderBy=" Order By ".$OrderBy;
}
if ($DaRiga==0 AND $ARiga==0)
$Limite="";
else
$Limite=" Limit ".$DaRiga.",".$ARiga;
switch ($Stato){
case 0:
$Selezione=' WHERE 1';
break;
case 9:
$Selezione=' WHERE Numero<>0';
break;
case 1:
if ($Dadata!=0 and ap_SeDate("<",ap_convertiData($Dadata),ap_oggi()))
$Selezione.=' WHERE DataInizio>="'.ap_convertiData($Dadata).'" ';
else
$Selezione.=' WHERE DataInizio<="'.ap_oggi().'" ';
if ($Adata!=0 and ap_SeDate(">",ap_convertiData($Adata),ap_oggi()))
$Selezione.=' AND DataFine<="'.ap_convertiData($Adata).'" And DataFine>="'.ap_oggi();
else
$Selezione.=' AND DataFine>="'.ap_oggi();
$Selezione.='" AND Numero>0';
break;
case 2:
if ($Dadata!=0 and ap_SeDate("<",ap_convertiData($Dadata),ap_oggi()))
$Selezione.=' WHERE DataInizio>="'.ap_convertiData($Dadata).'" ';
else
$Selezione.=' WHERE DataInizio<="'.ap_oggi().'" ';
if ($Adata!=0 and ap_SeDate("<",ap_convertiData($Adata),ap_oggi()))
$Selezione.=' AND DataFine<"'.ap_convertiData($Adata);
else
$Selezione.=' AND DataFine<"'.ap_oggi();
$Selezione.='" AND Numero>0 And DataOblio>"'.ap_oggi().'" ';
break;
case 3:
$Selezione=' WHERE Numero=0';
break;
case 4:
$Selezione.=' WHERE DataOblio<="'.ap_oggi().'" ';
$Selezione.=' AND Numero>0';
break;
case 5:
$Selezione.=' WHERE Oggetto like "%'.(isset($_REQUEST['s'])?$_REQUEST['s']:"").'%"';
break;
}
if ($Annullati)
$Selezione.=' And DataAnnullamento<>"0000-00-00"';
elseif($SenzaAnnullati)
$Selezione.=' And DataAnnullamento="0000-00-00"';
if ($Anno!=0){
if ($Numero!=0){
$Selezione.=' And (Anno="'.$Anno.'" And Numero="'.$Numero.'")';
}else{
$Selezione.=' And Anno="'.$Anno.'"';
}
}else{
if ($Numero!=0){
$Selezione.=' And Numero="'.$Numero.'"';
}
}
if (is_array($Categoria) Or $Categoria!=0){
$Categs="(";
if (is_array($Categoria)){
foreach($Categoria as $Cate){
$Categs.=$Cate.",";
}
$Categs=substr($Categs,0, strlen($Categs)-1).")";
$Selezione.=' And IdCategoria in '.$Categs;
}else{
$Selezione.=' And IdCategoria="'.$Categoria.'"';
}
}
if ($Oggetto!='')
$Selezione.=' And Oggetto like "%'.$Oggetto.'%"';
if ($Ente!=-1)
$Selezione.=' And Ente ="'.$Ente.'"';
if ($Riferimento!='')
$Selezione.=' And Riferimento like "%'.$Riferimento.'%"';
//echo "
SELECT COUNT(*) FROM $wpdb->table_name_Atti $Selezione;";
//echo $Stato." ->SELECT * FROM $wpdb->table_name_Atti $Selezione $OrderBy $Limite; ";
if ($Conteggio){
return $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Atti $Selezione;");
}else{
return $wpdb->get_results("SELECT IdAtto,LPAD(Numero,7,0) as Numero,Anno,Data,Riferimento,Oggetto,DataInizio,DataFine,Informazioni,IdCategoria,RespProc,DataAnnullamento,MotivoAnnullamento,Ente,DataOblio,Soggetti,IdUnitaOrganizzativa,Richiedente FROM $wpdb->table_name_Atti $Selezione $OrderBy $Limite;");
}
}
function ap_get_atto($id){
global $wpdb;
$id=(int)$id;
return $wpdb->get_results("SELECT IdAtto,LPAD(Numero,7,0) as Numero,Anno,Data,Riferimento,Oggetto,DataInizio,DataFine,Informazioni,IdCategoria,RespProc,DataAnnullamento,MotivoAnnullamento,Ente,DataOblio,Soggetti,IdUnitaOrganizzativa, Richiedente FROM $wpdb->table_name_Atti Where IdAtto=$id;");
}
function ap_is_atto_corrente($id){
$atto=ap_get_atto($id);
$atto=$atto[0];
if(ap_sedate(">",$atto->DataFine,ap_oggi())){
return FALSE;
}else{
return TRUE;
}
}
function ap_get_lista_atti($select_name,$id_name,$class,$tab_index_attribute,$default="xxxx",$Stato=0,$Style="") {
global $wpdb;
if($default=="xxxx") $default=__("Nessuno","albo-online");
$atti =ap_get_all_atti( $Stato,0,0,0,'',0,0,"Numero Desc");
$output = "\n";
return $output;
}
function ap_get_dropdown_atti($select_name,$id_name,$class,$tab_index_attribute,$default="xxxx") {
global $wpdb;
if($default=="xxxx") $default=__("Nessuno","albo-online");
$atti =ap_get_all_atti( 0,0,0,0,'',0,0,"Numero Desc");
$output = "\n";
return $output;
}
function ap_ripubblica_atti_correnti(){
global $wpdb;
$SqlAttiDaR='SELECT IdAtto, Numero, Anno, Data, DataInizio, DataFine
FROM '.$wpdb->table_name_Atti.'
WHERE DataInizio <= curdate() AND DataFine >= curdate() AND DataAnnullamento="0000-00-00" AND Numero>0
order by Anno, Numero';
$SqlDuplicaAtto='INSERT INTO '.$wpdb->table_name_Atti.' ( Data, Riferimento, Oggetto, DataInizio, DataFine, Informazioni, IdCategoria, RespProc, Ente,DataOblio,Soggetti,IdUnitaOrganizzativa,Richiedente)
SELECT Data, Riferimento, Oggetto, curdate(), adddate(curdate(),datediff(DataFine,DataInizio)), Informazioni, IdCategoria, RespProc, Ente, \''.(date("Y")+6)."-01-01".'\', Soggetti, IdUnitaOrganizzativa,Richiedente FROM '.$wpdb->table_name_Atti.'
WHERE IdAtto=';
$AttiDaR = $wpdb->get_results($SqlAttiDaR);
if(get_option('opt_AP_AnnoProgressivo')!=date("Y")){
update_option('opt_AP_AnnoProgressivo',date("Y") );
update_option('opt_AP_NumeroProgressivo',1 );
$Anno=get_option('opt_AP_AnnoProgressivo');
}else{
$Anno=get_option('opt_AP_AnnoProgressivo');
}
$StatoOperazioni='';
foreach($AttiDaR as $AttoDaR){
$wpdb->query($SqlDuplicaAtto.$AttoDaR->IdAtto.';');
$StatoOperazioni.=sprintf(__('Atto Originale Id %s Numero %s/%s del %s Pubblicazione dal %s al %s','albo-online'),$AttoDaR->IdAtto,$AttoDaR->Numero,$AttoDaR->Anno,$AttoDaR->Data,$AttoDaR->DataInizio,$AttoDaR->DataFine).'%%br%%';
$IdNewAtto=$wpdb->insert_id;
ap_insert_log(1,1,$IdNewAtto,"{IdAtto}==> $IdNewAtto
{".__("Atto Originale","albo-online")."}==>$AttoDaR->IdAtto
{".__("Motivo","albo-online")."}==>Ripubblicazione Atto");
ap_update_selettivo_atto($IdNewAtto,array('Anno' => $Anno),array('%s'),"Modifica in Ripubblicazione Atto\n");
$RisApprovazione=ap_approva_atto($IdNewAtto);
$Atto=ap_get_atto($IdNewAtto);
$Atto=$Atto[0];
$StatoOperazioni.=sprintf(__('Atto Duplicato Id %s Numero %s/%s del %s Pubblicazione dal %s al %s','albo-online'),$IdNewAtto,$Atto->Numero,$Atto->Anno,$Atto->Data,$Atto->DataInizio,$Atto->DataFine).'%%br%%';
$StatoOperazioni.=$RisApprovazione.' %%br%%';
if ($RisApprovazione!=__("Atto PUBBLICATO","albo-online")){
ap_del_atto($IdNewAtto);
}else{
$SqlDuplicaAllegato='INSERT INTO '.$wpdb->table_name_Allegati.' ( TitoloAllegato,Allegato,IdAtto,TipoFile,DocIntegrale,Impronta,Natura)
SELECT TitoloAllegato,Allegato,'.$IdNewAtto.' as IdNuovoAtto,TipoFile,DocIntegrale,Impronta,Natura FROM '.$wpdb->table_name_Allegati.'
WHERE IdAllegato=';
$AllegatiAtto=ap_get_all_allegati_atto($AttoDaR->IdAtto);
foreach ($AllegatiAtto as $AllegatoAtto) {
$wpdb->query($SqlDuplicaAllegato.$AllegatoAtto->IdAllegato.';');
$IdNewAllegato=$wpdb->insert_id;
ap_insert_log(3,1,$wpdb->insert_id,"{IdAllegato}==> $IdNewAllegato
{".__("Vecchio Atto","albo-online")."}==> $AllegatoAtto->IdAtto
{".__("Allegato","albo-online")."}==> $AllegatoAtto->Allegato
{IdAtto}==> $IdNewAtto
{".__("Motivo","albo-online")."}==>Ripubblicazione Atto", $IdNewAtto);
$StatoOperazioni.=' '.sprintf(__('Allegato Originale Id %s Duplicato Id %s Allegato %s','albo-online'),$AllegatoAtto->IdAllegato,$IdNewAllegato,$AllegatoAtto->Allegato).' %%br%%';
}
$StatoOperazioni.=sprintf(__('Atto Id %s Numero %s/%s del %s %s','albo-online'),$AttoDaR->IdAtto,$AttoDaR->Numero,$AttoDaR->Anno,$AttoDaR->Data,ap_annulla_atto($AttoDaR->IdAtto,__("Annullamento per interruzione del sevizio di pubblicazione","albo-online"))).'%%br%%';
}
}
if ($wpdb->last_error==''){
return $StatoOperazioni.__("Ripubblicazione effettuata con successo","albo-online");
}else{
return $StatoOperazioni.__("Ripubblicazione non effettuata a causa del seguente errore","albo-online").":".$wpdb->last_error;
}
}
################################################################################
// Funzioni Allegati
################################################################################
function ap_get_allegati_file_scollegati($TipoRet="Array",$select_name="AllegatiSpuri",$id_name="AllegatiSpuri",$class=""){
global $wpdb;
$Sql="SELECT $wpdb->table_name_Allegati.Allegato
FROM $wpdb->table_name_Allegati";
$Records=$wpdb->get_results($Sql);
$Dir=str_replace("\\","/",AP_BASE_DIR.get_option('opt_AP_FolderUpload'));
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($Dir));
// Ciclo tutti gli elementi dell'iteratore, i files estratti dall'iteratore
$AllegatiF=array();
$TipiAmmessi=ap_tipiFileAmmessi();
foreach ($iterator as $key=>$value) {
$File = pathinfo($key);
$name = $File['filename'];
$ext = $File['extension'];
if(substr($name,0,1)!="." And (is_array($TipiAmmessi) And in_array($ext,$TipiAmmessi)))
$AllegatiF[]=$key;
}
$AllegatiDB=array();
foreach($Records as $Record){
if(is_file($Record->Allegato)) $AllegatiDB[]=basename($Record->Allegato);
}
$NonAssegnati=array_diff($AllegatiF,$AllegatiDB);
if($TipoRet=="Array"){
return $NonAssegnati;
}
$output = "\n";
return $output;
}
function ap_CalcImpronta($IDAllegato=0,$FileName=""){
if ($IDAllegato!=""){
$Allegato=ap_get_allegato_atto($IDAllegato);
$FileName=$Allegato[0]->Allegato;
}
if (is_file($FileName)) {
return hash_file("sha256", $FileName);
}
return FALSE;
}
function ap_get_num_allegati($id){
global $wpdb;
return (int)($wpdb->get_var( $wpdb->prepare( "SELECT COUNT(IdAllegato) FROM $wpdb->table_name_Allegati WHERE IdAtto=%d",(int)$id)));
}
function ap_allegati_orfani(){
global $wpdb;
$Sql="SELECT $wpdb->table_name_Allegati.IdAllegato, $wpdb->table_name_Allegati.TitoloAllegato, $wpdb->table_name_Allegati.IdAtto
FROM $wpdb->table_name_Allegati
LEFT JOIN $wpdb->table_name_Atti ON $wpdb->table_name_Atti.IdAtto = $wpdb->table_name_Allegati.IdAtto
WHERE $wpdb->table_name_Atti.IdAtto IS NULL
ORDER BY $wpdb->table_name_Allegati.IdAtto";
return $wpdb->get_results($Sql);
}
function ap_num_allegati(){
global $wpdb;
return $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Allegati");
}
function ap_num_allegati_atto($id){
global $wpdb;
return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->table_name_Allegati WHERE IdAtto=%d",$id));
}
function ap_get_all_allegati_atto($idAtto,$OrderBy=array(),$OrderOrd=array()){
global $wpdb;
$Sort="";
if(count($OrderBy)>0) {
for($i=0;$iget_results("SELECT * FROM $wpdb->table_name_Allegati WHERE IdAtto=". (int)$idAtto.$Sort.";");
}
function ap_get_allegati_atto($idAtto){
global $wpdb;
return $wpdb->get_results("SELECT * FROM $wpdb->table_name_Allegati WHERE IdAtto=". (int)$idAtto." And Natura='A' Order By TitoloAllegato;");
}
function ap_get_documenti_atto($idAtto){
global $wpdb;
return $wpdb->get_results("SELECT * FROM $wpdb->table_name_Allegati WHERE IdAtto=". (int)$idAtto." And Natura='D' Order By TitoloAllegato;");
}
function ap_get_SQL_Oggetto($table,$CampoFiltro,$CondizioneFiltro,$CodiceFiltro) {
global $wpdb;
$table_data = $wpdb->get_results("SELECT * FROM $table WHERE $CampoFiltro $CondizioneFiltro $CodiceFiltro", ARRAY_A);
$entries = 'INSERT INTO ' . ap_backquote($table) . ' VALUES (';
// \x08\\x09, not required
$search = array("\x00", "\x0a", "\x0d", "\x1a");
$replace = array('\0', '\n', '\r', '\Z');
$Codice="";
if($table_data) {
foreach ($table_data as $row) {
$values = array();
foreach ($row as $key => $value) {
//echo $key." ";
if (isset($ints[$key])) {
// make sure there are no blank spots in the insert syntax,
// yet try to avoid quotation marks around integers
$value = ( null === $value || '' === $value) ? $defs[strtolower($key)] : $value;
$values[] = ( '' === $value ) ? "''" : $value;
} else {
$values[] = "'" . str_replace($search, $replace, ap_sql_addslashes($value)) . "'";
}
}
$Codice.= $entries.implode(', ', $values).");\r\n";
}
}
return $Codice;
} // end export data of Allegati Atto into a string
function ap_get_allegato_atto($idAllegato){
global $wpdb;
return $wpdb->get_results("SELECT * FROM $wpdb->table_name_Allegati WHERE IdAllegato=". (int)$idAllegato.";");
}
function ap_memo_allegato($idAllegato,$Titolo,$idAtto,$Integrale=1,$Natura="A"){
global $wpdb;
// echo "Sql==".$wpdb->last_query ." Ultimo errore==".$wpdb->last_error;wp_die();
if ($num=$wpdb->update($wpdb->table_name_Allegati,
array('TitoloAllegato' => $Titolo,
'DocIntegrale' => $Integrale,
'Natura' => $Natura),
array( 'IdAllegato' => $idAllegato),
array('%s','%d','%s'),
array('%d'))){
ap_insert_log(3,2,(isset($idAllegato)?$idAllegato:0),"
{".__("Titolo Allegato","albo-online")."}==> $Titolo
{".__("Integrale","albo-online")."}==> ".($Integrale==1?'Si':'No')."
{".__("Natura","albo-online")."}==> ".($Natura='A'?'Allegato':'Documento'),(int)$idAtto);
return true;
}else{
return new WP_Error('db_update_error', __("Allegato non modificato","albo-online")." ".$wpdb->last_error, $wpdb->last_error);
}
}
function ap_insert_allegato($TitoloAllegato,$Allegato,$IdAtto,$Integrale=1,$Natura="A"){
global $wpdb;
$IdAtto=(int)$IdAtto;
$Impronta=ap_CalcImpronta(0,$Allegato);
if ( false === $wpdb->insert(
$wpdb->table_name_Allegati,array(
'TitoloAllegato'=> $TitoloAllegato,
'Allegato' => $Allegato,
'IdAtto' => $IdAtto,
'DocIntegrale' => $Integrale,
'Impronta' => $Impronta,
'Natura' => $Natura,
),array('%s','%s','%d','%d','%s','%s')))
return new WP_Error('db_insert_error', __('Non sono riuscito ad inserire il nuovo allegato','albo-online')." ".$wpdb->last_error, $wpdb->last_error);
else
ap_insert_log(3,1,$wpdb->insert_id,"{IdAllegato}==> $wpdb->insert_id
{".__("Titolo","albo-online")."}==> $TitoloAllegato
{".__("Allegato","albo-online")."}==> $Allegato
{IdAtto}==> $IdAtto
{".__("Integrale","albo-online")."}==> ".($Integrale==1?'Si':'No')."
{".__("Impronta","albo-online")."}==> $Impronta
{".__("Natura","albo-online")."}==> ".($Natura='A'?'Allegato':'Documento'), $IdAtto);
return $Impronta;
}
function ap_del_allegato_atto($idAllegato,$idAtto=0,$nomeAllegato='',$SoloFile="N"){
global $wpdb;
$idAllegato=(int)$idAllegato;
$idAtto=(int)$idAtto;
$allegato=ap_get_allegato_atto($idAllegato);
if (file_exists($allegato[0]->Allegato) && is_file($allegato[0]->Allegato))
if (unlink($allegato[0]->Allegato)){
if($SoloFile=="N"){
$wpdb->query($wpdb->prepare( "DELETE FROM $wpdb->table_name_Allegati WHERE IdAllegato=%d",$idAllegato));
ap_insert_log(3,3,$allegato[0]->IdAllegato,"{".__("Nome Allegato","albo-online")."}==> ".$allegato[0]->TitoloAllegato." ",$idAtto);
}else{
ap_insert_log(3,3,$allegato[0]->IdAllegato,"{".__("Nome Allegato","albo-online")."}==> ".$allegato[0]->TitoloAllegato." ancellato solo il file per VIOLAZIONE di LEGGE",$idAtto);
}
return True;
}else{
return FALSE;
}
}
function ap_del_allegati_atto($idAtto){
global $wpdb;
$Del=FALSE;
$idAtto=(int)$idAtto;
$Allegati=ap_get_all_allegati_atto($idAtto);
$Del=FALSE;
foreach($Allegati as $allegato){
if (file_exists($allegato->Allegato) && is_file($allegato->Allegato))
if (unlink($allegato->Allegato)){
$Del=TRUE;
}
if (FALSE!==$wpdb->query($wpdb->prepare( "DELETE FROM $wpdb->table_name_Allegati WHERE IdAllegato=%d",$allegato->IdAllegato))){
ap_insert_log(3,3,$allegato->IdAllegato,"{".__("Nome Allegato","albo-online")."}==> ".$allegato->Allegato,$idAtto);
$Del=TRUE;
}
}
return $Del;
}
function ap_get_all_allegati(){
global $wpdb;
return $wpdb->get_results("SELECT * FROM $wpdb->table_name_Allegati;");
}
function ap_sposta_allegati($OldPathAllegati,$eliminareOrigine=FALSE){
global $wpdb;
// echo $OldPathAllegati;exit;
//Backup Automatico dati e allegati
$msg="";
ap_BackupDatiFiles("Sposta_Allegati","Automatico");
// $DirLog=str_replace("\\","/",Albo_DIR.'/BackupDatiAlbo/log');
$DirLog=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine/BackupDatiAlbo/log');
$nomefileLog=$DirLog."/Backup_Automatico_AlboPretorio_Sposta_Allegati.log";
$fplog = @fopen($nomefileLog, "ab");
fwrite($fplog,"____________________________________________________________________________\n");
fwrite($fplog,"Inizio spostamento file\n");
$allegati=$wpdb->get_results("SELECT * FROM $wpdb->table_name_Allegati ;",ARRAY_A );
// Nuova directory Allegati Albo Pretorio
$BaseCurDir=str_replace("\\","/",AP_BASE_DIR.get_option('opt_AP_FolderUpload'));
// Inizo Blocco che sposta gli allegati e sincronizza la tabella degli Allegati
foreach( $allegati as $allegato){
$NewAllegato=$BaseCurDir."/".basename($allegato['Allegato']);
if (is_file($allegato['Allegato'])){
if (!copy($allegato['Allegato'], $NewAllegato)) {
ap_insert_log(3,10,$allegato['IdAllegato'] ,"{".__("Errore nello spostamento Allegato","albo-online")."}==> ".$allegato['Allegato']." => $NewAllegato",0);
$msg.=''.__("Errore","albo-online").' '.__("nello spostamento dell'Allegato","albo-online").' '.$allegato['Allegato'].' in '. $NewAllegato."%%br%%";
fwrite($fplog,_("Non sono riuscito a copiare il file","albo-online")." ".$allegato['Allegato']." ".__("in","albo-online")." ". $NewAllegato."\n");
}
else{
if (!unlink($allegato['Allegato'])){
ap_insert_log(3,10,$allegato['IdAllegato'] ,"{".__("Errore nella cancellazione Allegato","albo-online")."}==> ".$allegato['Allegato'],0);
$msg.=''.__("Errore","albo-online").' '.__("errata cancellazione dell'Allegato","albo-online").' '.$allegato['Allegato']."%%br%%";
fwrite($fplog,_("Non sono riuscito a cancellare il file","albo-online")." ".$allegato['Allegato']."\n");
}
$msg.='File '.$allegato['Allegato'].' '.__("spostato in","albo-online").' '.$NewAllegato.'%%br%%';
fwrite($fplog,"File ".$allegato['Allegato']." ".__("spostato in","albo-online")." ".$NewAllegato."\n");
if ($wpdb->update($wpdb->table_name_Allegati,
array('Allegato' => $NewAllegato),
array('IdAllegato' => $allegato['IdAllegato'] ),
array('%s'),
array('%d'))>0){
ap_insert_log(3,9,$allegato['IdAllegato'] ,"{".__("Allegato","albo-online")."}==> ".$allegato['Allegato']." ".__("spostato in","albo-online")." $NewAllegato",0);
$msg.=''.__("Aggiornamento Link Allegato","albo-online").' '.$allegato['Allegato']."%%br%%";
fwrite($fplog,__("Aggiornato il link nel Data Base per","albo-online")." ".$allegato['Allegato']." in ".$NewAllegato."\n");
}
}
}
}
// Fine Blocco che sposta gli allegati e sincronizza la tabella degli Allegati
$msg.="%%br%%";
$tmpdir=str_replace("\\","/",$OldPathAllegati);
$PathAllegati=AP_BASE_DIR;
fwrite($fplog,"__________________________________________________________________\n");
fwrite($fplog,"Svuotamento e cancellazione Vecchia Directory ".$OldPathAllegati." \n");
if ($tmpdir!=$PathAllegati and $eliminareOrigine){
$fName=str_replace("\\","/",$OldPathAllegati)."/index.php";
if (is_file($fName))
if (unlink($fName))
fwrite($fplog,"File ".$fName." Cancellato\n");
else
fwrite($fplog,__("Errore nella Cancellazione del file","albo-online")." ".$fName."\n");
else
fwrite($fplog,"File ".$fName." inesistente\n");
$fName=str_replace("\\","/",$OldPathAllegati)."/".ap_decodenamefile();
if (is_file($fName))
if (unlink($fName))
fwrite($fplog,"File ".$fName." ".__("Cancellato","albo-online")."\n");
else
fwrite($fplog,__("Errore nella Cancellazione del file","albo-online")." ".$fName."\n");
else
fwrite($fplog,"File ".$fName." inesistente\n");
if($tmpdir==AP_BASE_DIR){
$msg.="Directory ".$tmpdir." non cancellata%%br%%";
fwrite($fplog,"Directory ".$tmpdir." ".__("non cancellata","albo-online")."\n");
}else{
if (is_dir($tmpdir)){
if (!ap_is_dir_empty($tmpdir)){
$msg.="La directory ".$tmpdir." ".__("non vuota","albo-online")."%%br%%";
fwrite($fplog,"La directory ".$tmpdir." ".__("non vuota","albo-online")." \n");
}else{
if (rmdir($tmpdir)){
$msg.="Directory ".$tmpdir." cancellata%%br%%";
fwrite($fplog,"Directory ".$tmpdir." ".__("cancellata","albo-online")." \n");
}else{
$msg.=__("La directory","albo-online")." ".$tmpdir." ".__("non e' stata cancellata","albo-online")."%%br%%";
fwrite($fplog,__("La directory","albo-online")." ".$tmpdir." ".__("non e' stata cancellata","albo-online")." \n");
}
}
}else{
$msg.=__("La directory","albo-online")." ".$tmpdir." non esiste%%br%%";
fwrite($fplog,"La directory ".$tmpdir." ".__("non esiste","albo-online")." \n");
}
}
}
if (!$eliminareOrigine){
$msg.=__("La directory","albo-online")." ".$tmpdir." ".__("non essendo una sottocartella della cartella Uploads di sistema, non deve essere cancellata","albo-online")."%%br%%";
fwrite($fplog,__("La directory","albo-online")." ".$tmpdir." ".__("non essendo una sottocartella della cartella Uploads di sistema, non deve essere cancellata","albo-online")." \n");
}
fclose($fplog);
if (stripslashes(get_option('opt_AP_FolderUpload'))!="wp-content/uploads"){
ap_NoIndexNoDirectLink(AP_BASE_DIR.get_option('opt_AP_FolderUpload'));
}
$FileMsg=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine/BackupDatiAlbo/tmp/msg.txt');
$fpmsg = @fopen($FileMsg, "wb");
fwrite($fpmsg,$msg);
fclose($fpmsg);
}
function ap_allinea_allegati(){
global $wpdb;
$msg="";
$allegati=$wpdb->get_results("SELECT * FROM $wpdb->table_name_Allegati ;",ARRAY_A );
// Nuova directory Allegati Albo Pretorio
$BaseCurDir=str_replace("\\","/",AP_BASE_DIR.get_option('opt_AP_FolderUpload'));
foreach ( $allegati as $allegato) {
if (get_option('opt_AP_FolderUploadMeseAnno')=="Si") {
$NewPath=ap_get_PathAllegati($allegato["IdAtto"]);
$NewAllegato=$NewPath."/".basename($allegato["Allegato"]);
}else{
$NewAllegato=$BaseCurDir."/".basename($allegato['Allegato']);
}
if ($wpdb->update($wpdb->table_name_Allegati,
array('Allegato' => $NewAllegato),
array('IdAllegato' => $allegato['IdAllegato'] ),
array('%s'),
array('%d'))){
ap_insert_log(3,9,$allegato['IdAllegato'] ,"{".__("Allegato","albo-online")."}==> ".$allegato['Allegato']." spostato in $NewAllegato",0);
$msg.=''.__('Aggiornamento Link Allegato','albo-online').' '.$allegato['Allegato']."%%br%%";
}
// echo "
";
}
$ControlloDir.=sprintf(__('Non sono riuscito a creare la directory %s \n Fine Operazione','albo-online'),$Destinazione);
}
}
if (is_dir($Destinazione)){
if (!is_dir ( $Dir)){
if (!mkdir($Dir, 0744)) {
if ($Echo){
echo "
".sprintf(__('Non sono riuscito a creare la directory %s Fine Operazione','albo-online'),$Dir)."
";
}
$ControlloDir.=sprintf(__('Non sono riuscito a creare la directory %s \n Fine Operazione','albo-online'),$Dir);
}
}
}
if (!is_dir ( $DirTmp)){
if (!mkdir($DirTmp, 0744)){
if ($Echo){
echo "
".sprintf(__('Non sono riuscito a creare la directory %s Fine Operazione','albo-online'),$DirTmp)."
";
}
$ControlloDir.=sprintf(__('Non sono riuscito a creare la directory %s \n Fine Operazione','albo-online'),$DirTmp);
}
}
if (!is_dir ( $DirLog)){
if (!mkdir($DirLog, 0744)){
if ($Echo){
echo "
".sprintf(__('Non sono riuscito a creare la directory %s Fine Operazione','albo-online'),$DirLog)."
'
. '';
fwrite($fplog,"Sql ".__('Tabella','albo-online')." ".ap_backquote($wpdb->options)." ".__('Aggiunta','albo-online')."\n");
/* $UpdateProgressivo="UPDATE `".$wpdb->options."` SET `option_value` = '".get_option('opt_AP_AnnoProgressivo')."' WHERE `option_name` ='opt_AP_AnnoProgressivo';\n";
$UpdateProgressivo.="UPDATE `".$wpdb->options."` SET `option_value` = '".get_option('opt_AP_NumeroProgressivo')."' WHERE `option_name` ='opt_AP_NumeroProgressivo';";
fwrite($fplog,"Sql Aggiornamento Tabella ".$wpdb->options." per Progressivo ed Anno Progressivo Aggiunti\n");*/
fwrite($fp,$UpdateProgressivo);
fclose($fp);
/* if ($Echo) echo '
Sql Aggiornamento Tabella '.$wpdb->options.' per Progressivo ed Anno Progressivo Aggiunti
'
. '';*/
if (is_dir($Dir) And is_dir($DirTmp)){
// Crea l'archivio
$zip = new PclZip($nomefileZip);
// Inizializzazione dell'iterator a cui viene passato
// l'iteratore ricorsivo delle directory a cui viene passata la directory da zippare
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($DirTmp));
// Ciclo tutti gli elementi dell'iteratore, i files estratti dall'iteratore
foreach ($iterator as $key=>$value) {
if (substr($key,-1)!="."){
$zip->add(realpath($key),PCLZIP_OPT_REMOVE_PATH,dirname($key));
$Risultato.=''.__("Aggiunto all'archivio","albo-online").': '.$key.' ';
fwrite($fplog,"File ".$key." ".__("Aggiunto all'archivio","albo-online")."\n");
}
}
$allegati=ap_get_all_allegati();
if ($Echo) echo "
".__("Avvio Backup Allegati","albo-online")."
"
. "";
$BaseUploadAllegati=AP_BASE_DIR.get_option('opt_AP_FolderUpload');
foreach ($allegati as $allegato) {
//echo $allegato->Allegato;
if(is_file($allegato->Allegato)){
if (ap_isAllowedExtension( $allegato->Allegato)) {
$zip->add(realpath($allegato->Allegato),PCLZIP_OPT_REMOVE_PATH,$BaseUploadAllegati);//dirname($allegato->Allegato));
$tmp_risultato=''.__("Aggiunto all'allegato","albo-online").': '.$allegato->Allegato;
fwrite($fplog,"File ".$allegato->Allegato." ".__("Aggiunto","albo-online")."\n");
}else{
$tmp_risultato=''.__("Allegato NON Aggiunto, estensione non permessa","albo-online").': '.$allegato->Allegato;
fwrite($fplog,"File ".$allegato->Allegato." ".__("NON Aggiunto, estensione non permessa","albo-online")."\n");
}
}else{
$tmp_risultato=''.__("File Allegato non trovato","albo-online").': '.$allegato->Allegato;
fwrite($fplog,"File ".$allegato->Allegato." ".__("NON Aggiunto, file inesistente","albo-online")."\n");
}
$Risultato.=$tmp_risultato.' ';
if ($Echo)
echo '
'. $tmp_risultato .'
';
}
// Chiusura e momorizzazione del del file
$Risultato.= __("Archivio creato con successo","albo-online").": ".$Dir."/".$NomeFile.".zip";
fwrite($fplog,__("Archivio creato con successo","albo-online").": ".$Dir."/".$NomeFile.".zip\n");
if ($Echo) echo ""
. "
Backup Completato
";
}
}else{
$DirLog=str_replace("\\","/",$Destinazione);
$nomefileLog=$DirLog."/msg.txt";
$fplog = @fopen($nomefileLog, "wb");
$Risultato.=__("Non risulta Installata la libreria per Zippare i files indispensabile per la procedura","albo-online")." ";
fwrite($fplog,__("Non risulta Installata la libreria per Zippare i files indispensabile per la procedura","albo-online")."\n");
if ($Echo) echo "
".__("Non risulta Installata la libreria per Zippare i files indispensabile per la procedura","albo-online")."
";
return;
}
//Svuoto cartella tmp che contiene i files dati
ap_SvuotaDirectory($DirTmp,$fplog);
fclose($fplog);
$fpmsg = @fopen($Destinazione."/BackupDatiAlbo/tmp/msg.txt", "wb");
fwrite($fpmsg,$Risultato);
fclose($fpmsg);
return $nomefileZip;
}
function ap_backquote($a_name) {
if (!empty($a_name) && $a_name != '*') {
if (is_array($a_name)) {
$result = array();
reset($a_name);
while(list($key, $val) = each($a_name))
$result[$key] = '`' . $val . '`';
return $result;
} else {
return '`' . $a_name . '`';
}
} else {
return $a_name;
}
}
function ap_MakeZipOblio(){
$Dir=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine/OblioDatiAlbo');
$DirTmp=$Dir."/tmp";
$DirTmpBox=$DirTmp."/BoxSingAtto";
if(!is_dir($DirTmp))
if (!mkdir($DirTmp, 0744))
return FALSE;
$nomefileZip=$Dir."/oblio".date("Ymdgis").".zip";
if (class_exists('PclZip')) {
$zip = new PclZip($nomefileZip);
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($DirTmpBox));
// Ciclo tutti gli elementi dell'iteratore, i files estratti dall'iteratore
foreach ($iterator as $key=>$value) {
if (substr($key,-1)!="."){
$zip->add(realpath($key),PCLZIP_OPT_REMOVE_PATH,dirname($key));
}
}
}else
return FALSE;
ap_SvuotaDirectory($DirTmpBox,NULL);
return TRUE;
}
function ap_BackupFilesAllegatiOblio($idAtto){
global $wpdb;
$Sql=ap_get_SQL_Oggetto($wpdb->table_name_Allegati,"IdAtto","=",$idAtto);
$Sql.=ap_get_SQL_Oggetto($wpdb->table_name_Atti,"IdAtto","=",$idAtto);
$Dir=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine/OblioDatiAlbo');
$DirTmp=$Dir."/tmp";
$DirTmpBox=$DirTmp."/BoxSingAtto";
$DirAllegati=str_replace("\\","/",AP_BASE_DIR.get_option('opt_AP_FolderUpload'));
$FileSql=$DirTmpBox."/Atto_".$idAtto."_Oblio.sql";
$ControlloDir=TRUE;
require_once('inc/pclzip.php');
$nomefileZip=$DirTmpBox."/oblio_atto_".$idAtto.".zip";
if (class_exists('PclZip')) {
// echo $Dir." ".$DirTmp." ".$DirAllegati." ".$DirLog."";exit;
if (!is_dir ( $Dir)){
if (!mkdir($Dir, 0744))
$ControlloDir=FALSE;
else{
if(!is_dir($DirTmp))
if (!mkdir($DirTmp, 0744))
$ControlloDir=FALSE;
if(!is_dir($DirTmpBox))
if (!mkdir($DirTmpBox, 0744))
$ControlloDir=FALSE;
}
}else{
if(!is_dir($DirTmp))
if (!mkdir($DirTmp, 0744))
$ControlloDir=FALSE;
if(!is_dir($DirTmpBox))
if (!mkdir($DirTmpBox, 0744))
$ControlloDir=FALSE;
}
if (!$ControlloDir){
return $ControlloDir;
}
$fp = @fopen($FileSql, "wb");
fwrite($fp,$Sql);
fclose($fp);
if (is_dir($Dir) And is_dir($DirTmp) And is_dir($DirTmpBox)){
// Crea l'archivio
$zip = new PclZip($nomefileZip);
$zip->add(realpath($FileSql),PCLZIP_OPT_REMOVE_PATH,dirname($FileSql));
$allegati=ap_get_all_allegati_atto($idAtto);
foreach ($allegati as $allegato) {
//echo $allegato->Allegato;
if (substr(basename( $allegato->Allegato ),-4)==".pdf" or
substr(basename( $allegato->Allegato ),-4)==".p7m")
$zip->add(realpath($allegato->Allegato),PCLZIP_OPT_REMOVE_PATH,dirname($allegato->Allegato));
}
}
if (file_exists($FileSql))
@unlink($FileSql);
}else{
return FALSE;
}
//Svuoto cartella tmp che contiene i files dati
// ap_SvuotaDirectory($DirTmp,NULL);
return $nomefileZip;
}
function ap_oblio_atti($Atti){
global $wpdb;
$Dir=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine/OblioDatiAlbo');
$DirTmp=$Dir."/tmp";
$MessaggiRitorno=array("Message"=>"","Message2"=>"");
$ControlloDir=TRUE;
if (!is_dir ( $Dir)){
if (!mkdir($Dir, 0744))
$ControlloDir=FALSE;
else{
if(!is_dir($DirTmp))
if (!mkdir($DirTmp, 0744))
$ControlloDir=FALSE;
}
}else{
if(!is_dir($DirTmp))
if (!mkdir($DirTmp, 0744))
$ControlloDir=FALSE;
}
if(!$ControlloDir){
$Msg=" ".__("Non riesco a creare le cartelle necessarie all'operazione","albo-online");
return $Msg;
}
ap_SvuotaDirectory($DirTmp,NULL);
$Msg="";
if(!is_array($Atti)){
$Atti=array($Atti);
$Bulk=FALSE;
}
else{
$Bulk=TRUE;
}
foreach($Atti as $Atto){
// echo $Atto." ";
$riga=ap_get_atto($Atto);
$riga=$riga[0];
$Msg.="Atto ".$riga->IdAtto;
$MsgAlle=" ".__("Allegati","albo-online");
ap_BackupFilesAllegatiOblio($riga->IdAtto);
if (ap_cvdate($riga->DataOblio) <= ap_cvdate(date("Y-m-d"))){
if(ap_del_allegati_atto((int)$Atto)){
$MessaggiRitorno["Message2"]=10;// Allegati all'Atto Cancellati
$MsgAlle.=" ".__("all'Atto Cancellati","albo-online");
}else{
$MessaggiRitorno["Message2"]=11;//Allegati all'Atto NON Cancellati
$MsgAlle.=" ".__("all'Atto NON Cancellati","albo-online");
}
$res=ap_del_atto((int)$Atto);
if (!is_array($res)){
$MessaggiRitorno["Message"]= 2;//Atto Cancellato
$Msg.=" ".__("Cancellato","albo-online");
}else{
if ($res['allegati']>0) {
$MessaggiRitorno["Message"]= 7;
$Msg.=" ".__("Impossibile cancellare un Atto che contiene Allegati %%br%%Cancellare prima gli Allegati e poi riprovare","albo-online");
}else{
$MessaggiRitorno["Message"]= 6;//Atto non Cancellato
$Msg.=" ".__("NON Cancellato","albo-online");
}
}
}else{
$MessaggiRitorno["Message2"]=99;//OPERAZIONE NON AMMESSA! l'atto non � ancora da eliminare
$Msg.=" ".__("OPERAZIONE NON AMMESSA! %%br%%l'atto non è ancora da eliminare","albo-online");
}
$Msg.=$MsgAlle." %%br%%";
}
ap_MakeZipOblio();
if ($Bulk)
return $Msg;
else
return $MessaggiRitorno;
}
/**
* Funzioni tipi di Files
*/
function ap_get_tipidifiles(){
if(get_option('opt_AP_TipidiFiles') != '' || !get_option('opt_AP_TipidiFiles')){
return get_option('opt_AP_TipidiFiles');
}
}
function ap_isAllowedExtension($fileName) {
$TipidiFiles=ap_get_tipidifiles();
$Estensione=explode(".", $fileName);
$Estensione=end($Estensione);
if(isset($TipidiFiles[strtolower($Estensione)])){
return TRUE;
}else{
return FALSE;
}
}
function ap_isExtensioType($Estensione){
$TipidiFiles=ap_get_tipidifiles();
if($TipidiFiles){
foreach ( $TipidiFiles as $key => $value ) {
if($key==$Estensione){
return TRUE;
}
}
}
return FALSE;
}
function ap_ExtensionType($fileName) {
$NomeFile=explode(".", $fileName);
$ext=strtolower($NomeFile[count($NomeFile)-1]);
if (!ap_isExtensioType($ext)){
return "ndf";
}
return $ext;
}
function ap_tipiFileAmmessi($Mime=False){
$TipidiFiles=ap_get_tipidifiles();
$Tipi=array();
foreach ( $TipidiFiles as $key => $value ) {
if($Mime){
if($key!="ndf")
$Tipi[]=array("."=>$key,"Icon"=>$value['Icona']);
}else{
$Tipi[]=$key;
}
}
return $Tipi;
}
function ap_num_tipidifiles_atti(){
global $wpdb;
$Allegati=$wpdb->get_results("SELECT Allegato FROM $wpdb->table_name_Allegati");
$TipidiFiles=ap_get_tipidifiles();
foreach ( $TipidiFiles as $key => $value ) {
$Tipi[$key]=0;
}
foreach($Allegati as $Alleagato){
$Estensione=explode(".", $Alleagato->Allegato);
$Estensione=end($Estensione);
if(isset($Tipi[strtolower($Estensione)])){
$Tipi[strtolower($Estensione)]++;
}
}
return $Tipi;
}
function ap_delete_tipofiles($ID){
$TipidiFiles=ap_get_tipidifiles();
$NewTipidiFiles=array();
$Trovato=FALSE;
$TipoTrovato="";
foreach ( $TipidiFiles as $key => $value ) {
if($key!=$ID){
$NewTipidiFiles[$key]=$value;
$Trovato=TRUE;
}else{
$TipoTrovato=$NewTipidiFiles[$key];
}
}
if($Trovato){
ap_insert_log(8,2,$ID,__("Cancellazione Tipo File","albo-online"));
update_option('opt_AP_TipidiFiles', $NewTipidiFiles);
}
return $Trovato;
}
function ap_add_tipofiles($ID,$Descrizione,$Icona,$Verifica){
$ID=trim($ID);
$TipidiFiles=ap_get_tipidifiles();
$Trovato=FALSE;
foreach ( $TipidiFiles as $key => $value ) {
if(strtolower($key)==strtolower($ID)){
$Trovato=TRUE;
}
}
if(!$Trovato){
$TipidiFiles[strtolower($ID)]=array("Descrizione"=>$Descrizione,"Icona"=>$Icona,"Verifica"=>htmlspecialchars($Verifica));
update_option('opt_AP_TipidiFiles', $TipidiFiles);
ap_insert_log(8,1,$ID,"{".__("Descrizione","albo-online")."}==> $Descrizione
{".__("Icona","albo-online")."}==> $Icona
{".__("Verifica","albo-online")."}==> $Verifica");
}
return !$Trovato;
}
function ap_memo_tipofiles($ID,$Descrizione,$Icona,$Verifica){
$ID=trim($ID);
$TipidiFiles=ap_get_tipidifiles();
$TipidiFiles[strtolower($ID)]=array("Descrizione"=>$Descrizione,"Icona"=>$Icona,"Verifica"=>htmlspecialchars($Verifica));
ap_insert_log(8,2,$ID,"{".__("Descrizione","albo-online")."}==> $Descrizione
{".__("Icona","albo-online")."}==> $Icona
{".__("Verifica","albo-online")."}==> $Verifica");
return update_option('opt_AP_TipidiFiles', $TipidiFiles);
}
/*
* Funzioni per la gestione delle Funzioni dei Responsabili
*/
function ap_get_Funzioni_Responsabili($Output="Array",$ID="",$Name="",$Selezionato=""){
$TabResponsabili=get_option('opt_AP_TabResp');
if($TabResponsabili){
$TRs=json_decode($TabResponsabili);
}else{
$TRs=json_decode('[{"ID":"","Funzione":"","Display":"No","StaCert":"No"}]');
}
$TabFunzResp=array();
foreach ($TRs as$TR ){
$TabFunzResp[$TR->ID]=array("Descrizione" =>$TR->Funzione,"Display" =>$TR->Display,"StaCert" =>$TR->StaCert);
}
switch ($Output){
case "Array":
return $TabFunzResp;
break;
case "Select":
$Lista="";
return $Lista;
break;
default:
return $TabFunzResp;
break;
}
}
function ap_get_Funzione_StampaCertificatoSX(){
$Funzioni=ap_get_Funzioni_Responsabili();
foreach($Funzioni as $Key=>$Dati){
if($Dati["StaCert"]=="Si"){
return(array($Key,$Dati["Descrizione"]));
}
}
return array("","");
}
function ap_get_Funzione_Responsabile($Funzione="",$Campo="Indice"){
$Funzioni=ap_get_Funzioni_Responsabili();
foreach($Funzioni as $Key=>$Dati){
if($Key==$Funzione){
switch($Campo){
case "Descrizione":
return $Dati["Descrizione"];
break;
case "Indice":
return $Key;
break;
case "Display":
return $Dati["Display"];
break;
}
}
}
return "";
}
/**
* Funzioni per chiamate Ajax
*/
function ap_MemoFunzioni(){
// print_r($_POST);wp_die();
check_ajax_referer('adminsecretAlboOnLine','security');
$ValoriPost= explode("&", str_replace("%20"," ",filter_input(INPUT_POST, 'valori')));
$Valori=array();
$NumeroRighe=0;
$Indici=array();
foreach($ValoriPost as $Valore){
$Riga=explode("=",$Valore);
$Valori[$Riga[0]]= $Riga[1];
if(substr($Riga[0],0,16)=="GridFunzioni_ID_"){
$Indici[]=(int)substr($Riga[0],16,3);
$NumeroRighe++;
}
}
$funzioni=array();
for($i=1;$i<=$NumeroRighe;$i++){
$Indice=$Indici[$i-1];
$funzioni[]=array("ID" => $Valori["GridFunzioni_ID_$Indice"],
"Funzione" => str_replace("+"," ",$Valori["GridFunzioni_funzione_$Indice"]),
"Display" => (isset($Valori["GridFunzioni_visualizza_$Indice"])?"Si":"No"),
"StaCert" => (isset($Valori["GridFunzioni_staincert_$Indice"])?"Si":"No"));
}
update_option('opt_AP_TabResp', json_encode($funzioni));
echo "Memorizzazione avvenuta con successo";
wp_die();
}
function ap_dismiss_alboonline_notice(){
check_ajax_referer('adminsecretAlboOnLine','security');
update_option("alboonline-notice-dismissed",TRUE);
wp_die();
}
function ap_LoadDefaultFunzioni(){
check_ajax_referer('adminsecretAlboOnLine','security');
$Default='[{"ID":"RP","Funzione":"'.__('Responsabile Procedimento','albo-online').'","Display":"Si"},{"ID":"OP","Funzione":"'.__('Gestore procedura','albo-online').'","Display":"Si"},{"ID":"SC","Funzione":"'.__('Segretario Comunale','albo-online').'","Display":"No"},{"ID":"RB","Funzione":"'.__('Responsabile Pubblicazione','albo-online').'","Display":"No"},{"ID":"DR","Funzione":"'.__('Direttore dei Servizi e Amministrativi','albo-online').'","Display":"No"}]';
update_option('opt_AP_TabResp',$Default );
echo __('Caricamento valori di default avvenuto con successo','albo-online');
wp_die();
}
/*****************************************************
* Funzioni per adeguamento GDPR
*****************************************************
*/
function ap_del_ip_log(){
global $wpdb;
$Sql = 'UPDATE '.$wpdb->table_name_Log.' SET IPAddress="" WHERE IPAddress <>""';
$Result=$wpdb->query($Sql);
// echo "Sql==".$wpdb->last_query ." Ultimo errore==".$wpdb->last_error;exit;
if($Result!==FALSE)
return $Result;
else
return $wpdb->last_error;
}
function ap_Rmdir($src) {
$dir = opendir($src);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
$full = $src . '/' . $file;
if ( is_dir($full) ) {
ap_Rmdir($full);
}
else {
unlink($full);
}
}
}
closedir($dir);
rmdir($src);
}
?>