stato_atti){
case "Correnti":$Ret=1;break;
case "Scaduti":$Ret=2;break;
case "DaPubblicare":$Ret=3;break;
case "Eliminare":$Ret=4;break;
case "Cerca":$Ret=5;break; /* mr */
default: $Ret=0;break;
}
return $Ret;
}
function __construct() {
$this->Atti_DaPubblicare=ap_get_all_atti(3,0,0,0,'', 0,0,"",0,0,true);
$this->Atti_Correnti=ap_get_all_atti(1,0,0,0,'', 0,0,"",0,0,true);
$this->Atti_Scaduti=ap_get_all_atti(2,0,0,0,'', 0,0,"",0,0,true);
$this->Atti_Eliminare=ap_get_all_atti(4,0,0,0,'', 0,0,"",0,0,true);
$this->Atti_Tutti=ap_get_all_atti(0,0,0,0,'', 0,0,"",0,0,true);
$this->Atti_Cerca=ap_get_all_atti(5,0,0,0,(isset($_REQUEST['s'])?$_REQUEST['s']:""), 0,0,"",0,0,true);
parent::__construct(array('singular'=>'Atto','plural'=>'Atti'));
}
function get_views() {
$status_links = array(
"Tutti" => "Tutti (".$this->Atti_Tutti.")",
"nuovi" => "da Pubblicare(".$this->Atti_DaPubblicare.")",
"correnti" => "Correnti(".$this->Atti_Correnti.")",
"storico" => "Scaduti(".$this->Atti_Scaduti.")",
"oblio" => "da Eliminare(".$this->Atti_Eliminare.")",
);
return $status_links;
}
// Funzione per la preparazione dei campi da visualizzare
// e la query SQL principale che deve essere eseguita
function prepare_items()
{
global $wpdb;
// Calcolo elenco de dei campi per le differenti
// sezioni e memorizzo tutto in array separati
$columns = $this->get_columns();
$hidden = $this->get_columns_hidden();
$sortable = $this->get_columns_sortable();
// Bisogna memorizzare tre array che devono contenere i campi da
// visualizzare, quelli nascosti e quelli per eseguire l'ordinamento
$this->_column_headers = array($columns,$hidden,$sortable);
// Preparazione delle variabili che devono essere utilizzate
// nella preparazione della query con gli ordinamenti e la posizione
$user = get_current_user_id();
$screen = get_current_screen();
$screen_option = $screen->get_option('per_page', 'option');
$per_page = get_user_meta($user, $screen_option, true);
if ( empty ( $per_page) || $per_page < 1 ) {
$per_page = $screen->get_option( 'per_page', 'default' );
}
if (!is_numeric($per_page))
$per_page = 10;
if (!isset($_REQUEST['paged']))
$paged = 0;
else $paged = max(0,(intval($_REQUEST['paged'])-1)*$per_page);
if (isset($_REQUEST['orderby'])and in_array($_REQUEST['orderby'],array_keys($sortable)))
$orderby = $_REQUEST['orderby'];
else
$orderby ="Anno DESC, Numero DESC , Data DESC";
if (isset($_REQUEST['order']) and in_array($_REQUEST['order'],array('asc','desc')))
$order = $_REQUEST['order'];
else $order = '';
// Calcolo le variabili che contengono il numero dei record totali
// e l'elenco dei record da visualizzare per una singola pagina
$total_items = ap_get_all_atti($this->Codstato_atti(),0,0,0,'', 0,0,"",0,0,true);
$this->items = ap_get_all_atti($this->Codstato_atti(),0,0,0,'', 0,0,$orderby." ".$order ,$paged,$per_page);
$this->set_pagination_args(array(
'total_items' => $total_items,
'per_page' => $per_page,
'total_pages' => ceil($total_items/$per_page)
));
}
// Funzione per la definizione dei campi che devono
// essere visualizzati nella lista da visualizzare
function get_columns()
{
switch ($this->stato_atti){
case "Tutti":
case "Correnti":
case "Scaduti":
$columns = array(
'Stato' => 'Stato',
'Numero' => 'Numero',
'Riferimento' => 'Riferimento',
'Oggetto' => 'Oggetto',
'Ente' => 'Ente',
'MetaDati' => 'Meta Dati',
'Data' => 'Del',
'validita' => 'Validità Dal/Al',
'dataoblio' => 'Oblio',
'Idcategoria' => 'Categoria');
break;
case "DaPubblicare":
$columns = array(
'Stato' => 'Stato',
'Riferimento' => 'Riferimento',
'Oggetto' => 'Oggetto',
'Ente' => 'Ente',
'MetaDati' => 'Meta Dati',
'Data' => 'Del',
'Idcategoria' => 'Categoria');
break;
case "Eliminare":
$columns = array(
'cb' => '',
'Stato' => 'Stato',
'Numero' => 'Numero',
'Riferimento' => 'Riferimento',
'Oggetto' => 'Oggetto',
'Ente' => 'Ente',
'MetaDati' => 'Meta Dati',
'Data' => 'Del',
'validita' => 'Validità Dal/Al',
'dataoblio' => 'Oblio',
'Idcategoria' => 'Categoria');
break;
case "Cerca":
$columns = array(
'Stato' => 'Stato',
'Numero' => 'Numero',
'Riferimento' => 'Riferimento',
'Oggetto' => 'Oggetto',
'Ente' => 'Ente',
'Data' => 'Del',
'validita' => 'Validità Dal/Al',
'dataoblio' => 'Oblio',
'Idcategoria' => 'Categoria');
break;
}
return $columns;
}
// Funzione per la definizione dei campi che possono
// essere utilizzati per eseguire la funzione di ordinamento
function get_columns_sortable()
{
if (isset($_REQUEST['s'])){ /* mr */
$sortable_columns = array(
'Data' => array('Data',true),
'Numero' => array('Numero',true),
'DataInizio' => array('DataInizio',true),
'DataFine' => array('DataFine',false));
}else{
$sortable_columns = array(
'Data' => array('Data',true),
'DataInizio' => array('DataInizio',true),
'DataFine' => array('DataFine',false));
}
return $sortable_columns;
}
// Funzione per la definizione dei campi che devono
// essere calcolati dalla query ma non visualizzati
function get_columns_hidden() {
return array();
}
// Funzione per reperire il valore di un campo in
// maniera standard senza una personalizzazione di output
function column_default($item,$column_name) {
return $item->$column_name;
}
// Dato che alcuni campi hanno bisogno di output
// personalizzato bisogna creare una funzione per campo
function column_Stato($item) {
$Msg="";
if ( $item->DataAnnullamento != '0000-00-00' ) {
$Annullato = true;
} else {
$Annullato = false;
}
if ((ap_cvdate($item->DataInizio) <= ap_cvdate(date("Y-m-d"))) and (ap_cvdate($item->DataFine) >= ap_cvdate(date("Y-m-d"))))
$Scaduto=False;
else
$Scaduto=True;
$actions = array(
'visualizza' => '
');
$this->AzioneDefault='';
switch($this->stato_atti){
case "Tutti":
$Msg="";
$Msg.=($Scaduto?'Scaduto':'Corrente');
$Msg.=($Annullato?' Annullato':"");
break;
case "DaPubblicare":
$actions['cancella'] ='
';
$this->AzioneDefault='';
$actions['modifica'] ='
';
$actions['allegati'] ='
';
if (current_user_can('editore_atti_albo')){
$actions['pubblica'] ='
';
}
$Msg='Da Pubblicare';
break;
case "Correnti":
$Msg=($Annullato?'Annullato':'Pubblicato');
$actions['meta'] ='
';
if (current_user_can('editore_atti_albo')){
$actions['avviso'] ='
';
}
break;
case "Scaduti":
$Msg=($Annullato?'Annullato':'Scaduto');
$actions['meta'] ='
';
$actions['certificato'] ='
';
break;
case "Eliminare":
if (current_user_can('editore_atti_albo')){
$actions['delete'] ='
';
}
$Msg='Oblio';
break;
case "Cerca": /* mr */
if( $item->Numero == 0 ){
$Msg=('Da Pubblicare');
$actions['cancella'] ='
';
$this->AzioneDefault='';
$actions['modifica'] ='
';
$actions['allegati'] ='
';
if (current_user_can('editore_atti_albo')){
$actions['pubblica'] ='
';
}
}else{
$Msg=($Annullato?'Annullato':'Pubblicato');
}
break;
}
if( !$Scaduto and $Annullato=='' and ($this->stato_atti=="Correnti" || $this->stato_atti=="Cerca") and current_user_can('editore_atti_albo')){
$actions['annulla'] ='
';
}
return sprintf('%1$s %2$s',$Msg,$this->row_actions($actions));
}
function column_Ente($item) {
$Ente=ap_get_ente($item->Ente);
if($Ente===FALSE){
return "
";
}
$Meta=substr($Meta,0,-6);
}
return stripslashes($Meta);
}
function column_Numero($item) {
return $this->AzioneDefault.$item->Numero."/".$item->Anno."";
}
function column_Data($item) {
return ap_VisualizzaData($item->Data);
}
function column_Riferimento($item) {
return $this->AzioneDefault.stripslashes($item->Riferimento)."";
}
function column_Oggetto($item) {
$Oggetto=stripslashes($item->Oggetto);
if ( strlen( $Oggetto ) > 120 ) {
$Oggetto = substr( $Oggetto, 0, 120 ) . " ...";
}
return $this->AzioneDefault.$Oggetto."";
}
function column_validita($item) {
return ap_VisualizzaData($item->DataInizio)."
".ap_VisualizzaData($item->DataFine);
}
function column_Idcategoria($item) {
if ($item->IdCategoria>0){
$Cate=ap_get_categoria($item->IdCategoria);
return $Cate[0]->Nome;
}else{
return "Non Definita";
}
}
function column_dataoblio($item) {
return ap_VisualizzaData($item->DataOblio);
}
// Definire la nuova funzione per indicare le
// azioni che devo essere presenti sul menu a tendina
function get_bulk_actions() {
if (isset($_GET['stato_atti']) And $_GET['stato_atti']=="Eliminare" And current_user_can('editore_atti_albo'))
return array('delete_bulk_atti' => 'Elimina');
}
// Funzione per la prima colonna che non sarà più il
// numero di tessera ma un campo di checkbox per la selezione
function column_cb($item) {
if (current_user_can('editore_atti_albo')){
return sprintf('',$item->IdAtto);
}
}
}
if(isset($_REQUEST['action'])){
switch ($_REQUEST['action']){
case "metadati-atto":
Gestione_Metadati((int)$_REQUEST['id']);
break;
case "logatto" :
echo json_encode(CreaLog(1,$IdAtto,0));
die();
break;
case "view-atto" :
View_atto((int)$_REQUEST['id']);
break;
case "annullamento-atto" :
Annulla_Atto((int)$_REQUEST['id']);
break;
case "new-atto" :
Nuovo_atto();
break;
case "edit-atto" :
if (!isset($_REQUEST['modificaatto'])) {
Go_Atti();
break;
}
if (!wp_verify_nonce($_REQUEST['modificaatto'],'editatto')){
Go_Atti();
break;
}
Edit_atto((int)$_REQUEST['id']);
break;
case "pubblica-atto":
Lista_Atti(ap_approva_atto((int)$_REQUEST['id']));
break;
case "setta-anno":
update_option('opt_AP_AnnoProgressivo',date("Y") );
update_option('opt_AP_NumeroProgressivo',1 );
PreApprovazione((int)$_REQUEST['id'],"Anno Albo settato a ".date("Y")." Numero prograssivo settato a 0");
break;
case "approva-atto" :
$ret="";
if (isset($_REQUEST['apa'])){
$ret=ap_update_selettivo_atto((int)$_REQUEST['id'],array('Anno' => $_REQUEST['apa']),array('%s'),"Modifica in Approvazione\n");
}
if (isset($_REQUEST['pnp'])){
update_option( 'opt_AP_NumeroProgressivo', (int)$_REQUEST['pnp']);
}
if (isset($_REQUEST['udi'])){
$ret=ap_update_selettivo_atto((int)$_REQUEST['id'],array('DataInizio' => $_REQUEST['udi']),array('%s'),"Modifica in Approvazione\n");
}
if (isset($_REQUEST['udf'])){
$ret=ap_update_selettivo_atto((int)$_REQUEST['id'],array('DataFine' => $_REQUEST['udf']),array('%s'),"Modifica in Approvazione\n");
}
if (isset($_REQUEST['udo'])){
$ret=ap_update_selettivo_atto((int)$_REQUEST['id'],array('DataOblio' => $_REQUEST['udo']),array('%s'),"Modifica in Approvazione\n");
}
if(isset($_REQUEST['id']))
$id=(int)$_REQUEST['id'];
else
$id=0;
PreApprovazione($id,$ret);
break;
case "allegati-atto" :
if (!isset($_REQUEST['allegatoatto'])) {
Lista_Atti("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata");
break;
}
if (!wp_verify_nonce($_REQUEST['allegatoatto'],'gestallegatiatto')){
Lista_Atti("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata");
break;
}
Allegati_atto((int)$_REQUEST['id'],(isset($_REQUEST['messaggio'])?$_REQUEST['messaggio']:""));
break;
case "edit-allegato-atto" :
if (!isset($_REQUEST['modificaallegatoatto'])) {
Lista_Atti("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata");
break;
}
if (!wp_verify_nonce($_REQUEST['modificaallegatoatto'],'editallegatoatto')){
Lista_Atti("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata");
break;
}
Allegati_atto((int)$_REQUEST['id'],(isset($_REQUEST['messaggio'])?$_REQUEST['messaggio']:""),(int)$_REQUEST['idAlle']);
break;
case "UpAllegati":
include_once ( dirname (__FILE__) . '/allegati_multi.php' );
break;
case "AssAllegati":
include_once ( dirname (__FILE__) . '/allegati.php' );
break;
default:
if(isset($_REQUEST['message'])){
if (is_numeric($_REQUEST['message']))
$message=$_REQUEST['message'];
elseif(strlen($_REQUEST['message'])>0)
$message=$_REQUEST['message'];
else $message="";
}else
$message="";
Lista_Atti($message);
break;
}
}else{
if(isset($_REQUEST['message'])){
if (is_numeric($_REQUEST['message']))
$message=$_REQUEST['message'];
elseif(strlen($_REQUEST['message'])>0)
$message=urldecode($_REQUEST['message']);
}else{
$message="";
}
Lista_Atti($message);
}
unset($_REQUEST['action']);
function Gestione_Metadati($IdAtto){
global $AP_OnLine;
$risultato=ap_get_atto($IdAtto);
$risultato=$risultato[0];
$risultatocategoria=ap_get_categoria($risultato->IdCategoria);
$risultatocategoria=$risultatocategoria[0];
$NomeEnte=ap_get_ente($risultato->Ente);
$NomeEnte=stripslashes($NomeEnte->Nome);
?>
| Ente emittente | |
|---|---|
| Data Annullamento | '.ap_VisualizzaData($risultato->DataAnnullamento).' |
| Motivo Annullamento | '.stripslashes($risultato->MotivoAnnullamento).' |
| Numero Albo | '.$risultato->Numero."/".$risultato->Anno.' |
| Data | '.ap_VisualizzaData($risultato->Data).' |
| Codice di Riferimento | '.stripslashes($risultato->Riferimento).' |
| Oggetto | '.stripslashes($risultato->Oggetto).' |
| Data inizio Pubblicazione | '.ap_VisualizzaData($risultato->DataInizio).' |
| Data fine Pubblicazione | '.ap_VisualizzaData($risultato->DataFine).' |
| Data Oblio | '.ap_VisualizzaData($risultato->DataOblio).' |
| Note | '.stripslashes($risultato->Informazioni).' |
| Categoria | '.stripslashes($risultatocategoria->Nome).' |
| Soggetti |
|
'.strip_tags($allegato->TitoloAllegato).'
';
if (is_file($allegato->Allegato))
echo ' '. basename( $allegato->Allegato).' ('.ap_Formato_Dimensione_File(filesize($allegato->Allegato)).')
'.htmlspecialchars_decode($TipidiFiles[strtolower($Estensione)]['Verifica']);
else
echo basename( $allegato->Allegato)." File non trovato, il file è stato cancellato o spostato!";
echo'
Questa Operazione non ti è consentita, operazione di pertinenza dell\'amministratore dell\' Albo o del redattore
| Informazioni | Stato | Operazioni | |||||
|---|---|---|---|---|---|---|---|
| Anno Atto | '.$atto->Anno.' | '; if ($atto->Anno==date("Y")){ $Passato=true; echo 'Ok | '; }else{ $Passato=false; echo 'Verificata incongruenza, bisogna rimediare prima di proseguire | Imposta Anno Pubblicazione a '.date("Y").' | '; } echo '|||
| Numero Atto | da Parametri '.get_option('opt_AP_NumeroProgressivo').' Progressivo da ultima pubblicazione '.$NumeroDaDb.$AppPostMigrazione.' | '; if (($NumeroDaDb==$NumeroOpzione) Or $NumAttiPubblicati==0){ $Passato=true; echo 'Ok | '; }else{ $Passato=false; echo 'Verificata incongruenza, bisogna rimediare prima di proseguire | Imposta Parametro a '.$NumeroDaDb.' | '; } echo '|||
| Data Inizio Pubblicazione | '.$atto->DataInizio.' | '; if($atto->DataInizio==ap_oggi()){ $Passato=true; echo 'Ok | '; }else{ $Passato=false; echo 'Aggiornare la data di Inizio Pubblicazione | Aggiorna a '.ap_oggi().' | '; } echo "|||
| Data Fine Pubblicazione | '.$atto->DataFine.' Giorni Pubblicazione Atto '.$differenza .' Giorni Pubblicazione standard Categoria '.$categoria[0]->Giorni.' | '; // echo $atto->DataFine.' '.$atto->DataInizio. ' '.SeDate("<=",$atto->DataFine,$atto->DataInizio); if(ap_SeDate(">=",$atto->DataFine,$atto->DataInizio)){ $Passato=true; if (ap_datediff("d", $atto->DataInizio, $atto->DataFine)== $categoria[0]->Giorni){ echo 'Ok | '; }else{ echo 'Ok | '; echo 'Aggiorna a '.$newDataFine.' | '; } }else{ $Passato=false; echo 'Aggiornare la data di Fine Pubblicazione | Aggiorna a '.$newDataFine.' | '; } echo '|
| Data Oblio | Data Oblio impostata '.$atto->DataOblio.' - Data Oblio da Decreto n. 33/2013 art. 8 '.$DataOblioStandard.' | '; // echo $atto->DataFine.' '.$atto->DataInizio. ' '.SeDate("<=",$atto->DataFine,$atto->DataInizio); if(ap_SeDate("=",$atto->DataOblio,$DataOblioStandard)){ $Passato=true; echo 'Ok | '; }else{ echo 'Ok | '; echo 'Aggiorna a '.$DataOblioStandard.' | '; } echo '|||
| Allegati | N. '.$numAllegati.' | '; if($numAllegati>0){ $Passato=true; echo 'Ok | '; }else{ $Passato=false; echo 'Da revisionare | Inserisci Allegato | '; } echo '|||
| Dati atto | |
|---|---|
| Numero Albo | '.$atto->Numero."/".$atto->Anno.' |
| Data | '.$atto->Data.' |
| Codice di Riferimento | '.stripslashes($atto->Riferimento).' |
| Oggetto | '.stripslashes($atto->Oggetto).' |
| Data inizio Pubblicazione | '.$atto->DataInizio.' |
| Data fine Pubblicazione | '.$atto->DataFine.' |
| Note | '.stripslashes($atto->Informazioni).' |
| Categoria | '.stripslashes($categoria[0]->Nome).' |
'.$messaggio.'
| Operazioni | Allegato | File |
|---|---|---|
| '.$riga->TitoloAllegato.' | '. basename( $riga->Allegato).' |
| Dati atto | |
|---|---|
| Numero Albo | '.$risultato->Numero."/".$risultato->Anno.' |
| Data | '.ap_VisualizzaData($risultato->Data).' |
| Codice di Riferimento | '.stripslashes($risultato->Riferimento).' |
| Oggetto | '.stripslashes($risultato->Oggetto).' |
| Data inizio Pubblicazione | '.ap_VisualizzaData($risultato->DataInizio).' |
| Data fine Pubblicazione | '.ap_VisualizzaData($risultato->DataFine).' |
| Data oblio | '.ap_VisualizzaData($risultato->DataOblio).' |
| Note | '.stripslashes($risultato->Informazioni).' |
| Categoria | '.stripslashes($risultatocategoria->Nome).' |
| Soggetti |
|
| Ente emittente | '.$NomeEnte.' |
|---|---|
| Data Annullamento | '.ap_VisualizzaData($risultato->DataAnnullamento).' |
| Motivo Annullamento | '.stripslashes($risultato->MotivoAnnullamento).' |
| Numero Albo | '.$risultato->Numero."/".$risultato->Anno.' |
| Data | '.ap_VisualizzaData($risultato->Data).' |
| Codice di Riferimento | '.stripslashes($risultato->Riferimento).' |
| Oggetto | '.stripslashes($risultato->Oggetto).' |
| Data inizio Pubblicazione | '.ap_VisualizzaData($risultato->DataInizio).' |
| Data fine Pubblicazione | '.ap_VisualizzaData($risultato->DataFine).' |
| Data Oblio | '.ap_VisualizzaData($risultato->DataOblio).' |
| Note | '.stripslashes($risultato->Informazioni).' |
| Categoria | '.stripslashes($risultatocategoria->Nome).' |
| Meta Dati | '.$Meta.' |
| Soggetti |
|
'.strip_tags($allegato->TitoloAllegato).'
';
if (is_file($allegato->Allegato))
echo ' '. basename( $allegato->Allegato).' ('.ap_Formato_Dimensione_File(filesize($allegato->Allegato)).')
'.htmlspecialchars_decode($TipidiFiles[strtolower($Estensione)]['Verifica']);
else
echo basename( $allegato->Allegato)." File non trovato, il file è stato cancellato o spostato!";
echo'
Non risultano categorie codificate, se vuoi posso impostare le categorie di default Crea Categorie di Default
Non risultano Responsabili codificati, devi crearne almeno uno prima di iniziare a codificare gli Atti Crea Responsabile
'.(isset($msg)?$messages[$msg]:"").(isset($msg2)?"
".$messages[$msg2]:"").'
'.(isset($Errore)?$Errore:"").'