Questo documento contiene tutto il necessario per creare gli oggetti del database PyPaPi Postgres per mezzo di script inclusi nel testo reST (vedi indice degli script in ordine alfabetico) e di un opportuno Makefile.
Nel testo è inclusa una documentazione di massima sulle relazioni e sui vincoli implementati negli oggetti del database.
Indice dei contenuti
Distinguiamo le seguenti figure che necessiteranno di accedere alle informazioni contenute nel database:
Per definire uniformemente le caratteristiche dei campi che accolgono i dati nel database vengono utilizzati i seguenti domini.
Elenco dei domini utilizzati nel database:
| nome | tipo | uso |
|---|---|---|
| boolean_t | boolean default 'f' | Usato per i valori Vero/Falso. |
| cap_t | char(5) | Codice CAP. |
| codicefiscale_t | char(16) | Codice fiscale. |
| date_t | date | Per le date. |
| flag_t | char(1) | Per le flag di un carattere (tipo il sesso). |
| integer_t | integer | Numero intero. |
| largeid_t | integer | Rappresenta un ID univoco di un record. |
| longstring_t | varchar(100) | Descrizione lunga. UNICODE |
| partitaiva_t | char(11) | Partita IVA. |
| pathname_t | varchar(128) | Path di un file. |
| provincia_t | char(2) | Sigla provincia. |
| remark_t | text | Usato per le note in genere. È un testo di lunghezza arbitraria. UNICODE |
| shortstring_t | varchar(50) | Stringa di medie dimensioni. UNICODE |
| smallid_t | smallint | Rappresenta un ID univoco di un record, per tabelle di piccole dimensioni. |
| smallint_t | smallint | Intero di piccole dimensioni. |
| stringid_t | varchar(15) | Usato per i codici alfanumerici. |
| timestamp_t | timestamp with time zone | Per gli istanti (data + ora). |
| tinystring_t | varchar(25) | Stringa di piccole dimensioni. UNICODE |
| url_t | varchar(128) | URLs/Emails |
| username_t | varchar(25) | Per i nomi degli utenti del database. |
| hash_t | varchar(40) | Impronta SHA. |
| real_t | real | Numero floating-point. |
| catastale_t | varchar(4) | Codice catastale dei Comuni |
Queste istruzioni devono essere eseguite subito dopo la creazione del database (vedi script Abilita plpgsql).
Creazione dei dominii usati dalle tabelle
Script Dominii
create domain boolean_t as boolean default 'f' ;; create domain cap_t as char(5) ;; create domain codicefiscale_t as char(16) ;; create domain date_t as date ;; create domain flag_t as char(1) ;; create domain integer_t as integer ;; create domain largeid_t as integer ;; create domain longstring_t as varchar(100) ;; create domain partitaiva_t as char(11) ;; create domain pathname_t as varchar(128) ;; create domain provincia_t as char(2) ;; create domain remark_t as text ;; create domain shortstring_t as varchar(50) ;; create domain smallid_t as smallint ;; create domain smallint_t as smallint ;; create domain stringid_t as varchar(15) ;; create domain timestamp_t as timestamp with time zone ;; create domain tinystring_t as varchar(25) ;; create domain username_t as varchar(25) ;; create domain url_t as varchar(128) ;; create domain hash_t as varchar(40) ;; create domain real_t as real ;; create domain catastale_t as varchar(4)
Questo file contiene alcune utili funzioni.
Verifica utente in gruppo
create function check_utenteingruppo(name, varchar)
returns boolean_t as '
declare
username alias FOR $1;
group alias FOR $2;
begin
if exists (select * from pg_roles where rolname = username and
group = ANY(ARRAY(select groname from pg_group where oid = ANY(grolist)))) then
return TRUE;
else
return FALSE;
end if;
end;
' language plpgsql;
Verifica utente in ufficio
create function check_utenteinufficio(name, smallid_t)
returns boolean_t as '
declare
username alias FOR $1;
idufficio alias FOR $2;
begin
if exists (select * from anagrafiche.utentiufficio uu
join anagrafiche.utenti as ut on ut.idutente = uu.idutente
where ut.login = username
and uu.idufficio = idufficio limit 1) then
return TRUE;
else
return FALSE;
end if;
end;
' language plpgsql;
Verifica utente in ufficio con flag
create function check_utenteflaginufficio(name, varchar, smallid_t)
returns boolean_t as '
declare
username alias FOR $1;
flag alias FOR $2;
idufficio alias FOR $3;
r record;
begin
for r in execute ''select count(*) as ok from anagrafiche.utentiufficio uu''
|| '' join anagrafiche.utenti as ut on ut.idutente = uu.idutente''
|| '' where ut.login = '''''' || username || ''''''''
|| '' and uu.'' || flag || '' = TRUE''
|| '' and uu.idufficio = '' || idufficio loop
if r.ok > 0 then
return TRUE;
else
return FALSE;
end if;
end loop;
return FALSE;
end;
' language plpgsql;
Verifica utente in ufficio referente
create function check_utenteinreferente(name, stringid_t)
returns boolean_t as '
declare
username alias FOR $1;
iddocumento alias FOR $2;
r record;
begin
for r in execute ''select count(*) as ok from protocollo.referentiprotocollo rp''
|| '' join anagrafiche.utentiufficio as uu on rp.idufficio = uu.idufficio''
|| '' join anagrafiche.utenti as ut on ut.idutente = uu.idutente''
|| '' where rp.iddocumento = '''''' || iddocumento || ''''''''
|| '' and ut.login = '''''' || username || '''''''' loop
if r.ok > 0 then
return TRUE;
else
return FALSE;
end if;
end loop;
return FALSE;
end;
' language plpgsql;
Verifica utente in ufficio referente con flag
create function check_utenteflaginreferente(name, varchar, stringid_t, boolean)
returns boolean_t as '
declare
sqlstring varchar;
username alias FOR $1;
flag alias FOR $2;
iddocumento alias FOR $3;
principale alias FOR $4;
r record;
begin
sqlstring := ''select count(*) as ok from protocollo.referentiprotocollo rp''
|| '' join anagrafiche.utentiufficio as uu on rp.idufficio = uu.idufficio''
|| '' join anagrafiche.utenti as ut on ut.idutente = uu.idutente''
|| '' where rp.iddocumento = '''''' || iddocumento || '''''''';
if principale = TRUE then
sqlstring := sqlstring || '' and rp.progressivo = 1'';
end if;
sqlstring := sqlstring || '' and uu.'' || flag || '' = TRUE''
|| '' and ut.login = '''''' || username || '''''''';
for r in execute sqlstring loop
if r.ok > 0 then
return TRUE;
else
return FALSE;
end if;
end loop;
return FALSE;
end;
' language plpgsql;
Verifica protocollo convalidato
create function check_protocolloconvalidato(stringid_t)
returns boolean_t as '
declare
iddocumento alias FOR $1;
begin
if exists (select * from protocollo.protocolliutente p
where p.iddocumento = iddocumento
and p.convalida = TRUE) then
return TRUE;
else
return FALSE;
end if;
end;
' language plpgsql;
Verifica protocollo annullato
create function check_protocolloannullato(stringid_t)
returns boolean_t as '
declare
iddocumento alias FOR $1;
begin
if exists (select * from protocollo.protocolliutente p
where p.iddocumento = iddocumento
and p.annullato = TRUE) then
return TRUE;
else
return FALSE;
end if;
end;
' language plpgsql;
Tabelle del database
Le tabelle sono raggruppate nello schema anagrafiche:
Tabelle anagrafiche
Anagrafiche
create schema anagrafiche ;; grant all privileges on schema anagrafiche to group amministratore ;; grant usage on schema anagrafiche to public
Anagrafica delle condizioni (o domande) di apertura di sottoprocedimenti o di attivazione/inserimento di attività, modelli, allegati (dalla tabella lista_controllo). Tali domande vengono proposte all'utente al momento dell'apertura della pratica. L'utente può decidere di rispondere subito a tutto oppure di rinviare la risposta di una o più domande.
Informazioni sui singoli campi
Generatore Anagrafiche.Condizioni
create sequence Anagrafiche.Gen_IDCondizione
Anagrafiche.Condizioni
create table Anagrafiche.Condizioni ( IDCondizione smallid_t not null, Descrizione remark_t, Tipo flag_t, TipoIstanza smallint_t, ParoleChiave longstring_t, IDContesto stringid_t, Spiegazione remark_t, constraint PK_Condizioni primary key (IDCondizione) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.Condizioni->Anagrafiche.Contesti
alter table Anagrafiche.Condizioni
add constraint fk_C_IDContesto foreign key (IDContesto)
references Anagrafiche.Contesti (IDContesto)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Condizioni
create function Anagrafiche.inizializza_condizioni()
returns trigger as '
begin
if new.IDCondizione is NULL or new.IDCondizione = 0 then
new.IDCondizione = nextval(''Anagrafiche.Gen_IDCondizione'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_condizioni
before insert on Anagrafiche.Condizioni
for each row execute procedure Anagrafiche.inizializza_condizioni();
create trigger trg_ins_ts_p_condizioni
before insert on Anagrafiche.Condizioni
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Condizioni
create trigger trg_upd_ts_p_condizioni
before update on Anagrafiche.Condizioni
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Condizioni
grant all privileges on Anagrafiche.Condizioni to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Condizioni to group modellatore ;; grant select,insert on Anagrafiche.Condizioni to group istruttore ;; grant select on Anagrafiche.Condizioni to public ;; grant all privileges on Anagrafiche.Gen_IDCondizione to group amministratore ;; grant all privileges on Anagrafiche.Gen_IDCondizione to group modellatore ;; grant all privileges on Anagrafiche.Gen_IDCondizione to group istruttore
Anagrafica dei contesti, utilizzati in fase di definizione dell'iter procedurale come filtro per la ricerca delle condizioni da associare.
Informazioni sui singoli campi
Anagrafiche.Contesti
create table Anagrafiche.Contesti ( IDContesto stringid_t not null, Descrizione longstring_t, constraint PK_Contesti primary key (IDContesto) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Contesti
create trigger trg_ins_ts_p_contesti
before insert on Anagrafiche.Contesti
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Contesti
create trigger trg_upd_ts_p_contesti
before update on Anagrafiche.Contesti
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Contesti
grant all privileges on Anagrafiche.Contesti to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Contesti to group modellatore ;; grant select on Anagrafiche.Contesti to public
Le azioni sono una sorta di "micro programmi", composti da una serie ordinata di operazioni.
Alcune azioni sono di setup: non sono pensate per andare a costituire la checklist, ma per compiere le operazioni di inizializzazione dell'iter della pratica, come ad esempio inserire nelle fasi corrette le azioni "standard".
Informazioni sui singoli campi
Generatore Anagrafiche.IDAzione
create sequence Anagrafiche.Gen_IDAzione
Anagrafiche.Azioni
create table Anagrafiche.Azioni ( IDAzione smallid_t not null, Descrizione longstring_t, Note remark_t, Setup boolean_t, constraint PK_Azione primary key (IDAzione) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Azioni
create function Anagrafiche.inizializza_azioni()
returns trigger as '
begin
if new.IDAzione is NULL or new.IDAzione = 0 then
new.IDAzione = nextval(''Anagrafiche.Gen_IDAzione'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_ts_init_azioni
before insert on Anagrafiche.Azioni
for each row execute procedure Anagrafiche.inizializza_azioni();
create trigger trg_ins_ts_p_azioni
before insert on Anagrafiche.Azioni
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Azioni
create trigger trg_upd_ts_p_azioni
before update on Anagrafiche.Azioni
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Azioni
grant all privileges on Anagrafiche.Azioni to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Azioni to group modellatore ;; grant select,insert on Anagrafiche.Azioni to group istruttore ;; grant select on Anagrafiche.Azioni to public ;; grant all privileges on Anagrafiche.Gen_IDAzione to group amministratore ;; grant all privileges on Anagrafiche.Gen_IDAzione to group modellatore ;; grant all privileges on Anagrafiche.Gen_IDAzione to group istruttore
Per esecuzione di una certa azione si intende mettere in pratica ciascuna delle operazioni associate ad una determinata azione, nel contesto di un certo iter procedurale e possibilmente di una determinata pratica.
Viene svolta da una stored procedure, che sostanzialmente esegue una istruzione di questo tipo:
execute procedure
Procedimenti.Operazione_CODICE (IDAzione, // azione di riferimento
Esito, // esito/risposta
PI, // eventuale parametro intero
PS, // eventuale parametro stringa
IDIter, // iter procedurale
IDPratica); // eventuale pratica
per ciascuna operazione associata all'azione, dove CODICE è il codice univoco associato all'operazione.
Procedura per l'esecuzione delle azioni
create or replace function Procedimenti.EseguiOperazioniAzione(smallid_t,
smallid_t,
stringid_t,
flag_t)
returns void as '
declare
execopz text;
p1 text;
p2 text;
idp text;
opz record;
begin
for opz in select o.codice, oa.parametro1, oa.parametro2
from Anagrafiche.OperazioniAzione oa
join Anagrafiche.Operazioni o on o.idoperazione = oa.idoperazione
where oa.idazione = $1
order by oa.progressivo, oa.idoperazione
loop
if opz.parametro1 is NULL then
p1 := ''NULL'';
else
p1 := cast(opz.parametro1 as text);
end if;
if opz.parametro2 is NULL then
p2 := ''NULL'';
else
p2 := cast(opz.parametro2 as text);
end if;
if $3 is NULL then
idp := ''NULL'';
else
idp := $3;
end if;
execopz := ''select procedimenti.operazione_'' || opz.codice ||
''('' ||
''cast('' || $1 || '' as smallid_t)'' || '','' ||
''cast('' || quote_literal($4) || '' as flag_t)'' || '','' ||
''cast('' || p1 || '' as integer_t)'' || '','' ||
''cast('' || p2 || '' as integer_t)'' || '','' ||
''cast('' || $2 || '' as smallid_t)'' || '','' ||
''cast('' || idp || '' as stringid_t)'' ||
'')'';
execute execopz;
end loop;
return;
end
' language plpgsql;
Permessi di accesso a Procedimenti.EseguiOperazioniAzione
grant all privileges on function Procedimenti.EseguiOperazioniAzione(smallid_t, smallid_t, stringid_t, flag_t) to group amministratore ;; grant execute on function Procedimenti.EseguiOperazioniAzione(smallid_t, smallid_t, stringid_t, flag_t) to group modellatore ;; grant execute on function Procedimenti.EseguiOperazioniAzione(smallid_t, smallid_t, stringid_t, flag_t) to group istruttore
Anagrafica delle fasi (o stati) che può assumere una generica pratica dall'apertura alla sua archiviazione. L'elenco delle fasi che assume una determinata categoria di pratiche è definito all'interno dell'iter procedurale (vedi fasi dell'iter procedurale).
Informazioni sui singoli campi
Anagrafiche.Fasi
create table Anagrafiche.Fasi ( IDFase smallid_t not null, Descrizione longstring_t, Esclusiva boolean_t, IDUfficio smallid_t, Istruttoria boolean_t, constraint PK_Fasi primary key (IDFase) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.Fasi->Anagrafiche.Uffici
alter table Anagrafiche.Fasi
add constraint fk_AF_IDUfficio foreign key (IDUfficio)
references Anagrafiche.Uffici (IDUfficio)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Fasi
create function Anagrafiche.inizializza_fasi()
returns trigger as '
begin
if new.IDFase is NULL or new.IDFase = 0 then
new.IDFase = nextval(''Anagrafiche.Gen_IDFase'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_fasi
before insert on Anagrafiche.Fasi
for each row execute procedure Anagrafiche.inizializza_fasi();
create trigger trg_ins_ts_a_fasi
before insert on Anagrafiche.Fasi
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Fasi
create trigger trg_upd_ts_a_fasi
before update on Anagrafiche.Fasi
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Fasi
grant all privileges on Anagrafiche.Fasi to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Fasi to group modellatore ;; grant select,insert on Anagrafiche.Fasi to group istruttore ;; grant select on Anagrafiche.Fasi to public ;; grant all privileges on Anagrafiche.Gen_IDFase to group amministratore ;; grant all privileges on Anagrafiche.Gen_IDFase to group modellatore ;; grant all privileges on Anagrafiche.Gen_IDFase to group istruttore
Dati di base
Anagrafiche.Fasi di base
insert into Anagrafiche.Fasi (idfase, descrizione)
values (nextval('Anagrafiche.Gen_IDFase'), 'Verifica completezza documentazione')
;;
insert into Anagrafiche.Fasi (idfase, descrizione)
values (nextval('Anagrafiche.Gen_IDFase'), 'Istruttoria')
;;
insert into Anagrafiche.Fasi (idfase, descrizione)
values (nextval('Anagrafiche.Gen_IDFase'), 'Approvata')
;;
insert into Anagrafiche.Fasi (idfase, descrizione)
values (nextval('Anagrafiche.Gen_IDFase'), 'Rilasciata')
;;
insert into Anagrafiche.Fasi (idfase, descrizione)
values (nextval('Anagrafiche.Gen_IDFase'), 'Conclusa')
;;
Anagrafica normative attinenti gli iter procedurali (inserimento ed aggiornamento a cura degli utenti).
Informazioni sui singoli campi
Generatore Anagrafiche.IDNorma
create sequence Anagrafiche.Gen_IDNorma
Anagrafiche.Norme
create table Anagrafiche.Norme ( IDNorma smallid_t not null, Descrizione longstring_t, Path pathname_t, IDTipologiaNorma flag_t, constraint PK_Norme primary key (IDNorma) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.Norme->Anagrafiche.TipologieNorma
alter table Anagrafiche.Norme
add constraint fk_N_IDTipologiaNorma foreign key (IDTipologiaNorma)
references Anagrafiche.TipologieNorma (IDTipologiaNorma)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Norme
create trigger trg_ins_ts_p_norme
before insert on Anagrafiche.Norme
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Norme
create trigger trg_upd_ts_p_norme
before update on Anagrafiche.Norme
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Norme
grant all privileges on Anagrafiche.Norme to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Norme to group modellatore ;; grant select,insert on Anagrafiche.Norme to group istruttore ;; grant select on Anagrafiche.Norme to public ;; grant all privileges on Anagrafiche.Gen_IDNorma to group amministratore ;; grant all privileges on Anagrafiche.Gen_IDNorma to group modellatore ;; grant all privileges on Anagrafiche.Gen_IDNorma to group istruttore
Le operazioni rappresentano genericamente una certa modifica a un procedimento, come l'attivazione di certe fasi, l'inserimento di un sottoprocedimento...
Informazioni sui singoli campi
Parametri
Ogni operazione può accettare dei parametri, di tipo integer, che interpreterà a suo piacimento. Per agevolare la loro composizione l'operazione può dichiarare l'interfaccia che in qualche modo caratterizza i valori.
Nel caso dell'operazione INS_AZ_PRATICA ad esempio, che accetta due parametri, uno a indicare quale azione inserire, l'altro per la fase, si avrà che InterfacciaParametro1="IAzione" e InterfacciaParametro2="IFase"
Generatore Anagrafiche.IDOperazione
create sequence Anagrafiche.Gen_IDOperazione
Anagrafiche.Operazioni
create table Anagrafiche.Operazioni ( IDOperazione smallid_t not null, Descrizione remark_t, IDTipologiaOperazione smallid_t, Codice stringid_t not null, IDInterfacciaParametro1 smallid_t, IDInterfacciaParametro2 smallid_t, constraint PK_Operazioni primary key (IDOperazione), constraint UK_Operazioni unique (Codice) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.Operazioni->Anagrafiche.TipologieOperazione
alter table Anagrafiche.Operazioni
add constraint fk_OPZ_IDTipologiaOperazione foreign key (IDTipologiaOperazione)
references Anagrafiche.TipologieOperazione (IDTipologiaOperazione)
on update cascade
FK Anagrafiche.Operazioni->PyPaPi.InterfacciaTabelle
alter table Anagrafiche.Operazioni
add constraint fk_OPZ_IDInterfacciaParametro1 foreign key (IDInterfacciaParametro1)
references PyPaPi.InterfacciaTabelle (IDInterfacciaTabella)
on update cascade
;;
alter table Anagrafiche.Operazioni
add constraint fk_OPZ_IDInterfacciaParametro2 foreign key (IDInterfacciaParametro2)
references PyPaPi.InterfacciaTabelle (IDInterfacciaTabella)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Operazioni
create function Anagrafiche.inizializza_operazioni()
returns trigger as '
begin
if new.IDOperazione is NULL or new.IDOperazione = 0 then
new.IDOperazione = nextval(''Anagrafiche.Gen_IDOperazione'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_operazioni
before insert on Anagrafiche.Operazioni
for each row execute procedure Anagrafiche.inizializza_operazioni();
create trigger trg_ins_ts_p_operazioni
before insert on Anagrafiche.Operazioni
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Operazioni
create trigger trg_upd_ts_p_operazioni
before update on Anagrafiche.Operazioni
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Operazioni
grant all privileges on Anagrafiche.Operazioni to group amministratore ;; grant select on Anagrafiche.Operazioni to public
Dati di base
Anagrafiche.Operazioni di base
insert into Anagrafiche.Operazioni (codice, descrizione, idtipologiaoperazione)
values ('NOOP', 'Operazione che non fa un bel nulla, di test', 1)
;;
insert into Anagrafiche.Operazioni (codice, descrizione, idtipologiaoperazione,
idinterfacciaparametro1, idinterfacciaparametro2)
values ('INS_AZ_PRATICA', 'Inserimento nuova azione in Iter Pratica', 2,
(select idinterfacciatabella
from PyPaPi.InterfacciaTabelle
where Interfaccia = 'pypapi.db.interfaces.anagrafiche.IAzione'),
(select idinterfacciatabella
from PyPaPi.InterfacciaTabelle
where Tabella = 'anagrafiche.fasi'))
L'esecuzione di una qualsiasi operazione è delegata a una stored procedure. La regola è semplice: il campo Codice dell'operazione viene usato per formare il nome della procedura che verrà eseguita. Questo dettaglio è codificato nella procedura usata per l'esecuzione delle azioni.
È una operazione che non fa nulla, usata per i test, e utile come sinossi. I parametri sono:
Esecuzione operazione NOOP
create or replace function Procedimenti.Operazione_NOOP(smallid_t,
flag_t,
integer_t,
integer_t,
smallid_t,
largeid_t)
returns void as '
begin
raise notice ''NOOP(idazione=%,esito=%,parametro1=%,parametro2=%,iterprocedurale=%,idpratica=%)'',
$1, $2, $3, $4, $5, $6;
end
' language plpgsql;
Se esito è S, inserisce l'azione indicata da parametro1 nell'iter della pratica, nella fase indicata da parametro2
Esecuzione operazione INS_AZ_PRATICA
create or replace function Procedimenti.Operazione_INS_AZ_PRATICA(smallid_t,
flag_t,
integer_t,
integer_t,
smallid_t,
stringid_t)
returns void as '
declare
v_idfip largeid_t;
v_idfase smallid_t;
begin
if $2 = ''S'' then
v_idfase = cast($4 as smallid_t);
v_idfip = null;
select fip.IDFaseIterProcedurale
into v_idfip
from Procedimenti.FasiIterProcedurale fip
where fip.IDIterProcedurale = $5
and fip.IDPratica = $6
and fip.IDFase = v_idfase;
if v_idfip is null then
v_idfip = nextval(''Procedimenti.Gen_IDFaseIterProcedurale'');
insert into Procedimenti.FasiIterProcedurale (IDFaseIterProcedurale, IDIterProcedurale, IDPratica, IDFase)
values (v_idfip, $5, $6, v_idfase);
end if;
insert into Procedimenti.AzioniIterProcedurale (IDFaseIterProcedurale, IDAzione)
values (v_idfip, $3);
end if;
return;
end
' language plpgsql;
Ad ogni azione sono associate una o più operazioni da eseguire quando quella azione viene superata.
Informazione sui singoli campi
Generatore Anagrafiche.OperazioniAzione
create sequence Anagrafiche.Gen_IDOperazioneAzione
Anagrafiche.OperazioniAzione
create table Anagrafiche.OperazioniAzione ( IDOperazioneAzione smallid_t not null, IDAzione smallid_t not null, Progressivo smallint_t not null default 0, IDOperazione smallid_t not null, Parametro1 integer_t, Parametro2 integer_t, constraint PK_OperazioniAzione primary key (IDOperazioneAzione) ) inherits(TimeStamped)
Chiavi esterne
FK Anagrafiche.OperazioniAzione->Anagrafiche.Azioni
alter table Anagrafiche.OperazioniAzione
add constraint fk_OA_IDAzione foreign key (IDAzione)
references Anagrafiche.Azioni (IDAzione)
on update cascade
FK Anagrafiche.OperazioniAzione->Anagrafiche.Operazioni
alter table Anagrafiche.OperazioniAzione
add constraint fk_OA_IDCondizione foreign key (IDOperazione)
references Anagrafiche.Operazioni (IDOperazione)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.OperazioniAzione
create function Anagrafiche.inizializza_operazioniazione()
returns trigger as '
begin
if new.IDOperazioneAzione is NULL or new.IDOperazioneAzione = 0 then
new.IDOperazioneAzione = nextval(''Anagrafiche.Gen_IDOperazioneAzione'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_operazioniazione
before insert on Anagrafiche.OperazioniAzione
for each row execute procedure Anagrafiche.inizializza_operazioniazione();
create trigger trg_ins_ts_p_operazioniazione
before insert on Anagrafiche.OperazioniAzione
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.OperazioniAzione
create trigger trg_upd_ts_p_operazioniiazione
before update on Anagrafiche.OperazioniAzione
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.OperazioniAzione
grant all privileges on Anagrafiche.OperazioniAzione to group amministratore ;; grant select,insert,update,delete on Anagrafiche.OperazioniAzione to group modellatore ;; grant select on Anagrafiche.OperazioniAzione to group istruttore ;; grant select on Anagrafiche.OperazioniAzione to public ;; grant update on Anagrafiche.Gen_IDOperazioneAzione to group amministratore ;; grant update on Anagrafiche.Gen_IDOperazioneAzione to group modellatore ;; grant update on Anagrafiche.Gen_IDOperazioneAzione to group istruttore
Contiene elementi anagrafici relativi a persone, enti e aziende.
Informazioni sui singoli campi
Generatore Anagrafiche.IDSoggetto
create sequence Anagrafiche.Gen_IDSoggetto
Anagrafiche.Soggetti
create table Anagrafiche.Soggetti ( IDSoggetto largeid_t not null, Tipo flag_t not null, ChiaveMnemonica shortstring_t, CodiceFiscale codicefiscale_t, PartitaIVA partitaiva_t, Denominazione1 longstring_t, Denominazione2 longstring_t, Denominazione3 longstring_t, Cognome shortstring_t, Nome shortstring_t, RagioneSociale longstring_t, Referente longstring_t, IDSesso flag_t, ComuneNascita longstring_t, DataNascita date_t, DataCessazione date_t, DescrizioneCessazione remark_t, Titolo tinystring_t, Nick tinystring_t, IDAlboProfessionale smallid_t, ProvinciaAlbo provincia_t, NumeroIscrizioneAlbo shortstring_t, IndicePAO tinystring_t, IndicePAAOO tinystring_t, Residente boolean_t, CodiceAnagrafe largeid_t, constraint PK_Soggetti primary key (IDSoggetto) --, constraint UK_Sogg_CF unique (CodiceFiscale, Tipo) --, constraint UK_Sogg_PIVA unique (PartitaIVA, Tipo) ) inherits (TimeStamped)
FK Anagrafiche.Soggetti->Anagrafiche.Sessi
alter table Anagrafiche.Soggetti
add constraint fk_AS_IDSesso foreign key (IDSesso)
references Anagrafiche.Sessi (IDSesso)
on update cascade
FK Anagrafiche.Soggetti->Anagrafiche.AlbiProfessionali
alter table Anagrafiche.Soggetti
add constraint fk_AS_IDAlboProfessionale foreign key (IDAlboProfessionale)
references Anagrafiche.AlbiProfessionali (IDAlboProfessionale)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Soggetti
create function Anagrafiche.inizializza_soggetti()
returns trigger as '
begin
if new.IDSoggetto is NULL or new.IDSoggetto = 0 then
new.IDSoggetto = nextval(''Anagrafiche.Gen_IDSoggetto'');
end if;
return new;
end;
' language plpgsql;
create function Anagrafiche.inizializza_websoggetto()
returns trigger as '
begin
if not exists (select * from anagrafiche.websoggetto where idsoggetto=new.idsoggetto) then
insert into anagrafiche.websoggetto (idsoggetto) values (new.idsoggetto);
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_soggetti
before insert on Anagrafiche.Soggetti
for each row execute procedure Anagrafiche.inizializza_soggetti();
create trigger trg_ins_init_websoggetto
after insert on Anagrafiche.Soggetti
for each row execute procedure Anagrafiche.inizializza_websoggetto();
create trigger trg_ins_ts_a_soggetti
before insert on Anagrafiche.Soggetti
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Soggetti
create trigger trg_upd_ts_a_soggetti
before update on Anagrafiche.Soggetti
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Soggetti
grant all privileges on Anagrafiche.Soggetti to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Soggetti to group anagrafiche ;; grant select on Anagrafiche.Soggetti to public ;; grant update on Anagrafiche.Gen_IDSoggetto to group amministratore ;; grant update on Anagrafiche.Gen_IDSoggetto to group anagrafiche
I soggetti sono logicamente divisi in tre categorie: privati, aziende, enti. L'utente è chiamato ad operare principalmente su una sola categoria alla volta, per tramite di tre view predisposte per garantire l'accesso alla tabella dei soggetti.
Anagrafiche.Persone
create view Anagrafiche.Persone as
select s.IDSoggetto
, s.Tipo
, s.CodiceFiscale
, s.Cognome
, s.Nome
, s.IDSesso
, s.Titolo
, s.Nick
, s.IDAlboProfessionale
, s.ProvinciaAlbo
, s.NumeroIscrizioneAlbo
, s.DataNascita
, s.DataCessazione
, s.DescrizioneCessazione
, s.rec_creato
, s.rec_creato_da
, s.rec_modificato
, s.rec_modificato_da
from anagrafiche.soggetti as s
where s.Tipo = 'P'
;;
create rule Persone_insert as on insert to Anagrafiche.Persone
do instead
insert into Anagrafiche.Soggetti (IDSoggetto
, Tipo
, CodiceFiscale
, Cognome
, Nome
, IDSesso
, Titolo
, Nick
, IDAlboProfessionale
, ProvinciaAlbo
, NumeroIscrizioneAlbo
, DataNascita
, DataCessazione
, DescrizioneCessazione
)
values (new.IDSoggetto
, 'P'
, new.CodiceFiscale
, new.Cognome
, new.Nome
, new.IDSesso
, new.Titolo
, new.Nick
, new.IDAlboProfessionale
, new.ProvinciaAlbo
, new.NumeroIscrizioneAlbo
, new.DataNascita
, new.DataCessazione
, new.DescrizioneCessazione
)
;;
create rule Persone_update as on update to Anagrafiche.Persone
do instead
update Anagrafiche.Soggetti
set IDSoggetto = new.IDSoggetto
, CodiceFiscale = new.CodiceFiscale
, Cognome = new.Cognome
, Nome = new.Nome
, IDSesso = new.IDSesso
, Titolo = new.Titolo
, Nick = new.Nick
, IDAlboProfessionale = new.IDAlboProfessionale
, ProvinciaAlbo = new.ProvinciaAlbo
, NumeroIscrizioneAlbo = new.NumeroIscrizioneAlbo
, DataNascita = new.DataNascita
, DataCessazione = new.DataCessazione
, DescrizioneCessazione = new.DescrizioneCessazione
where
IDSoggetto = old.IDSoggetto;
;;
create rule Persone_delete as on delete to Anagrafiche.Persone
do instead
delete from Anagrafiche.Soggetti where IDSoggetto =
old.IDSoggetto;
Permessi di accesso a Anagrafiche.Persone
grant all privileges on Anagrafiche.Persone to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Persone to group anagrafiche ;; grant select on Anagrafiche.Persone to public
Anagrafiche.Enti
create view Anagrafiche.Enti as
select s.IDSoggetto
, s.Tipo
, s.PartitaIVA
, s.Denominazione1
, s.Denominazione2
, s.Denominazione3
, s.Referente
, s.IndicePAO
, s.IndicePAAOO
, s.DataNascita
, s.DataCessazione
, s.DescrizioneCessazione
, s.rec_creato
, s.rec_creato_da
, s.rec_modificato
, s.rec_modificato_da
from anagrafiche.soggetti as s
where s.Tipo = 'E'
;;
create rule Enti_insert as on insert to Anagrafiche.Enti
do instead
insert into Anagrafiche.Soggetti (IDSoggetto
, Tipo
, PartitaIVA
, Denominazione1
, Denominazione2
, Denominazione3
, Referente
, IndicePAO
, IndicePAAOO
, DataNascita
, DataCessazione
, DescrizioneCessazione
)
values (new.IDSoggetto
, 'E'
, new.PartitaIVA
, new.Denominazione1
, new.Denominazione2
, new.Denominazione3
, new.Referente
, new.IndicePAO
, new.IndicePAAOO
, new.DataNascita
, new.DataCessazione
, new.DescrizioneCessazione
)
;;
create rule Enti_update as on update to Anagrafiche.Enti
do instead
update Anagrafiche.Soggetti
set IDSoggetto = new.IDSoggetto
, PartitaIVA = new.PartitaIVA
, Denominazione1 = new.Denominazione1
, Denominazione2 = new.Denominazione2
, Denominazione3 = new.Denominazione3
, Referente = new.Referente
, IndicePAO = new.IndicePAO
, IndicePAAOO = new.IndicePAAOO
, DataNascita = new.DataNascita
, DataCessazione = new.DataCessazione
, DescrizioneCessazione = new.DescrizioneCessazione
where
IDSoggetto = old.IDSoggetto;
;;
create rule Enti_delete as on delete to Anagrafiche.Enti
do instead
delete from Anagrafiche.Soggetti where IDSoggetto =
old.IDSoggetto;
Permessi di accesso a Anagrafiche.Enti
grant all privileges on Anagrafiche.Enti to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Enti to group anagrafiche ;; grant select on Anagrafiche.Enti to public
Anagrafiche.Aziende
create view Anagrafiche.Aziende as
select s.IDSoggetto
, s.Tipo
, s.PartitaIVA
, s.CodiceFiscale
, s.RagioneSociale
, s.Referente
, s.DataNascita
, s.DataCessazione
, s.DescrizioneCessazione
, s.rec_creato
, s.rec_creato_da
, s.rec_modificato
, s.rec_modificato_da
from anagrafiche.soggetti as s
where s.Tipo = 'A'
;;
create rule Aziende_insert as on insert to Anagrafiche.Aziende
do instead
insert into Anagrafiche.Soggetti (IDSoggetto
, Tipo
, PartitaIVA
, CodiceFiscale
, RagioneSociale
, Referente
, DataNascita
, DataCessazione
, DescrizioneCessazione
)
values (new.IDSoggetto
, 'A'
, new.PartitaIVA
, new.CodiceFiscale
, new.RagioneSociale
, new.Referente
, new.DataNascita
, new.DataCessazione
, new.DescrizioneCessazione
)
;;
create rule Aziende_update as on update to Anagrafiche.Aziende
do instead
update Anagrafiche.Soggetti
set IDSoggetto = new.IDSoggetto
, PartitaIVA = new.PartitaIVA
, RagioneSociale = new.RagioneSociale
, Referente = new.Referente
, DataNascita = new.DataNascita
, DataCessazione = new.DataCessazione
, DescrizioneCessazione = new.DescrizioneCessazione
where
IDSoggetto = old.IDSoggetto;
;;
create rule Aziende_delete as on delete to Anagrafiche.Aziende
do instead
delete from Anagrafiche.Soggetti where IDSoggetto =
old.IDSoggetto;
Permessi di accesso a Anagrafiche.Aziende
grant all privileges on Anagrafiche.Aziende to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Aziende to group anagrafiche ;; grant select on Anagrafiche.Aziende to public
Indici Anagrafiche.Soggetti
create index idx_idsoggetto on anagrafiche.soggetti using btree (idsoggetto, tipo) ;; create index idx_tipo on anagrafiche.soggetti using btree (tipo) ;;
Anagrafica degli uffici (a volte denominati attribuzioni).
Informazioni sui singoli campi
Generatore Anagrafiche.IDUfficio
create sequence Anagrafiche.Gen_IDUfficio
Anagrafiche.Uffici
create table Anagrafiche.Uffici ( IDUfficio smallid_t not null, Descrizione longstring_t, Denominazione longstring_t, Sportello boolean_t, Referente boolean_t, Destinatario boolean_t, Custodia boolean_t, --Ric_mail boolean_t, PostaInterna boolean_t, VistaBilancio boolean_t, ApprovaDetermine boolean_t, UfficioAssessorato boolean_t, UfficioProtocollo boolean_t, ModificaSpeseContratto boolean_t, Archiviazione boolean_t, --ResponsabileUO boolean_t, Mittente boolean_t, IDSoggetto largeid_t, Email url_t, constraint PK_Uffici primary key (IDUfficio) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.Uffici->Anagrafiche.Soggetti
alter table Anagrafiche.Uffici
add constraint fk_UF_Soggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Uffici
create function Anagrafiche.inizializza_uffici()
returns trigger as '
begin
if new.IDUfficio is NULL or new.IDUfficio = 0 then
new.IDUfficio = nextval(''Anagrafiche.Gen_IDUfficio'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_uffici
before insert on Anagrafiche.Uffici
for each row execute procedure Anagrafiche.inizializza_uffici();
create trigger trg_ins_ts_a_uffici
before insert on Anagrafiche.Uffici
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Uffici
create trigger trg_upd_ts_a_uffici
before update on Anagrafiche.Uffici
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Uffici
grant all privileges on Anagrafiche.Uffici to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Uffici to group modellatore ;; grant select,insert on Anagrafiche.Uffici to group istruttore ;; grant select on Anagrafiche.Uffici to public ;; grant update on Anagrafiche.Gen_IDUfficio to group amministratore ;; grant update on Anagrafiche.Gen_IDUfficio to group modellatore ;; grant update on Anagrafiche.Gen_IDUfficio to group istruttore
Dati di base
Anagrafiche.Uffici di base
insert into Anagrafiche.Uffici (idufficio, descrizione, ufficioprotocollo)
values (nextval('Anagrafiche.Gen_IDUfficio'), 'Ufficio Protocollo', TRUE)
;;
Indici Anagrafiche.Uffici
create index idx_uffici_idufficio on anagrafiche.uffici using btree (idufficio) ;;
Anagrafica degli utenti di PyPaPi. Ad ogni utente PyPaPi corrisponde un utente di Postgres, la cui creazione, elminiazione, e modifica di password è gestita da appositi trigger sulla tabella.
Anche l'associazione di un utente ad un gruppo Postgres è gestita in modo analogo sulle tabelle Anagrafiche.GruppiPg e Anagrafiche.GruppiPgUtente.
Informazioni sui singoli campi
Nominativo completo (cognome e nome) dell'utente
Note
Il campo IDUtente (era cod_utente) è chiave primaria, e funge foreign key per le tabelle che relazionano con la tabella Utente.
Il campo Login (era id_utente) è il nick alfanumerico utilizzato in fase di login.
Non ancora implementati:
Generatore Anagrafiche.IDUtente
create sequence Anagrafiche.Gen_IDUtente
Anagrafiche.Utenti
create table Anagrafiche.Utenti ( IDUtente smallid_t not null, Nominativo longstring_t, Login username_t not null, Password tinystring_t, constraint PK_Utenti primary key (IDUtente), constraint UK_Utenti_Login unique (Login) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Utenti
create function Anagrafiche.inizializza_utenti()
returns trigger as '
begin
if new.IDUtente is NULL or new.IDUtente = 0 then
new.IDUtente = nextval(''Anagrafiche.Gen_IDUtente'');
end if;
if not exists(SELECT * FROM pg_catalog.pg_user WHERE usename=new.Login) then
execute ''CREATE USER '' || quote_ident(new.Login);
end if;
if new.Password is not NULL then
execute ''ALTER USER '' || quote_ident(new.Login) ||
'' WITH PASSWORD \'\''' || new.Password || ''\'\''';
end if;
new.Password = ''******'';
return new;
end;
' language plpgsql;
create trigger trg_ins_ts_init_utenti
before insert on Anagrafiche.Utenti
for each row execute procedure Anagrafiche.inizializza_utenti();
create trigger trg_ins_ts_p_utenti
before insert on Anagrafiche.Utenti
for each row execute procedure inizializza_timestamp();
Aggiornamento record Anagrafiche.Utenti
create function Anagrafiche.aggiorna_utenti()
returns trigger as '
begin
if new.Password is not NULL then
execute ''ALTER USER '' || new.Login ||
'' WITH PASSWORD \'\''' || quote_ident(new.Password) || ''\\'''';
end if;
return new;
end;
' language plpgsql;
create trigger trg_upd_a_utenti
before update on Anagrafiche.Utenti
for each row execute procedure Anagrafiche.aggiorna_utenti();
Cancellazione record Anagrafiche.Utenti
create function Anagrafiche.cancella_utenti()
returns trigger as '
begin
execute ''DROP ROLE '' || old.login;
return old;
end;
' language plpgsql;
create trigger trg_del_utenti
before delete on Anagrafiche.Utenti
for each row execute procedure Anagrafiche.cancella_utenti();
Aggiornamento timestamp Anagrafiche.Utenti
create trigger trg_upd_ts_p_utenti
before update on Anagrafiche.Utenti
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Utenti
grant all privileges on Anagrafiche.Utenti to group amministratore ;; grant all privileges on Anagrafiche.Gen_IDUtente to group amministratore ;; grant select on Anagrafiche.Utenti to public
Dati di base
Anagrafiche.Utenti di base
insert into Anagrafiche.Utenti (nominativo, login, password)
values ('Utente amministratore', 'admin', 'pypapi')
;;
Ogni utente autenticato deve avere la possibilità di modificare i dati relativi al proprio utente. Ciò viene garantito dalla vista ''UtenteAutenticato'', che conterrà ovviamente sempre un solo record.
Vista utente autenticato
create view Anagrafiche.UtenteAutenticato as
select u.IDUtente
, u.Nominativo
, u.Login
, u.Password
, u.rec_creato
, u.rec_creato_da
, u.rec_modificato
, u.rec_modificato_da
from Anagrafiche.Utenti as u
where Login = current_user
;;
create rule UtenteAutenticato_update as on update to Anagrafiche.UtenteAutenticato
do instead
update Anagrafiche.Utenti
set IDUtente = new.IDUtente
, Nominativo = new.Nominativo
, Login = new.Login
, Password = new.Password
, rec_creato = new.rec_creato
, rec_creato_da = new.rec_creato_da
, rec_modificato = new.rec_modificato
, rec_modificato_da = new.rec_modificato_da
where
IDUtente = old.IDUtente;
Permessi di accesso a Anagrafiche.UtenteAutenticato
grant all privileges on Anagrafiche.UtenteAutenticato to group amministratore ;; grant select,update on Anagrafiche.UtenteAutenticato to public
Indici Anagrafiche.Utenti
create index idx_utenti_idutente on anagrafiche.utenti using btree (idutente) ;; create index idx_utenti_login on anagrafiche.utenti using btree (login) ;;
Tabella che contiene i permessi che l'utente ha per ogni ufficio in cui è stato inserito. I permessi sono di tipo SELECT, INSERT, UPDATE e DELETE su specifiche tabelle più altre abilitazioni gestite a livello applicativo.
Informazione sui singoli campi
Generatore Anagrafiche.UtentiUfficio
create sequence Anagrafiche.Gen_IDUtenteUfficio
Anagrafiche.UtentiUfficio
create table Anagrafiche.UtentiUfficio ( IDUtenteUfficio largeid_t not null, IDUtente smallid_t not null, IDUfficio smallid_t not null, Ospite boolean_t, Lista boolean_t, Visualizza boolean_t, Modifica boolean_t, Inserisce boolean_t, DaiPerLetto boolean_t, Riservato boolean_t, Consolida boolean_t, IncaricatoProcedimenti boolean_t, constraint PK_UtentiUfficio primary key (IDUtenteUfficio), constraint UK_UtentiUfficio unique (IDUtente, IDUfficio) ) inherits(TimeStamped)
Chiavi esterne
FK Anagrafiche.UtentiUfficio->Anagrafiche.Utenti
alter table Anagrafiche.UtentiUfficio
add constraint fk_UU_IDUtente foreign key (IDUtente)
references Anagrafiche.Utenti (IDUtente)
on update cascade
FK Anagrafiche.UtentiUfficio->Anagrafiche.Uffici
alter table Anagrafiche.UtentiUfficio
add constraint fk_UU_IDUfficio foreign key (IDUfficio)
references Anagrafiche.Uffici (IDUfficio)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.UtentiUfficio
create function Anagrafiche.inizializza_utentiufficio()
returns trigger as '
begin
if new.IDUtenteUfficio is NULL or new.IDUtenteUfficio = 0 then
new.IDUtenteUfficio = nextval(''Anagrafiche.Gen_IDUtenteUfficio'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_ts_init_utentiufficio
before insert on Anagrafiche.UtentiUfficio
for each row execute procedure Anagrafiche.inizializza_utentiufficio();
create trigger trg_ins_ts_p_utentiufficio
before insert on Anagrafiche.UtentiUfficio
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.UtentiUfficio
create trigger trg_upd_ts_p_utentiufficio
before update on Anagrafiche.UtentiUfficio
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.UtentiUfficio
grant all privileges on Anagrafiche.UtentiUfficio to group amministratore ;; grant all privileges on Anagrafiche.Gen_IDUtenteUfficio to group amministratore ;; grant select on Anagrafiche.UtentiUfficio to public
Indici Anagrafiche.UtentiUfficio
create index idx_utentiufficio_idutente on anagrafiche.utentiufficio using btree (idutente) ;; create index idx_utentiufficio_idufficio on anagrafiche.utentiufficio using btree (idufficio) ;;
Anagrafica delle tipologie di operazione.
Informazioni sui singoli campi
Generatore Anagrafiche.IDTipologiaOperazione
create sequence Anagrafiche.Gen_IDTipologiaOperazione
Anagrafiche.TipologieOperazione
create table Anagrafiche.TipologieOperazione ( IDTipologiaOperazione smallid_t not null, Descrizione longstring_t, constraint PK_TipologieOperazione primary key (IDTipologiaOperazione) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.TipologieOperazione
create function Anagrafiche.inizializza_tipologieoperazione()
returns trigger as '
begin
if new.IDTipologiaOperazione is NULL or new.IDTipologiaOperazione = 0 then
new.IDTipologiaOperazione = nextval(''Anagrafiche.Gen_IDTipologiaOperazione'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_tipologieoperazione
before insert on Anagrafiche.TipologieOperazione
for each row execute procedure Anagrafiche.inizializza_tipologieoperazione();
create trigger trg_ins_ts_a_tipologieoperazione
before insert on Anagrafiche.TipologieOperazione
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.TipologieOperazione
create trigger trg_upd_ts_a_tipologieoperazione
before update on Anagrafiche.TipologieOperazione
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.TipologieOperazione
grant all privileges on Anagrafiche.TipologieOperazione to group amministratore ;; grant select on Anagrafiche.TipologieOperazione to public
Dati di base
Anagrafiche.TipologieOperazione di base
insert into Anagrafiche.TipologieOperazione (descrizione) values ('Operazioni test/debug')
;;
insert into Anagrafiche.TipologieOperazione (descrizione) values ('Operazioni setup pratica')
Anagrafica delle tipologie di norma: comunale, provinciale, regionale, nazionale, europea.
Informazioni sui singoli campi
Anagrafiche.TipologieNorma
create table Anagrafiche.TipologieNorma ( IDTipologiaNorma flag_t not null, Descrizione longstring_t, constraint PK_TipologieNorma primary key (IDTipologiaNorma) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.TipologieNorma
create trigger trg_ins_ts_p_tipologienorma
before insert on Anagrafiche.TipologieNorma
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.TipologieNorma
create trigger trg_upd_ts_p_tipologienorma
before update on Anagrafiche.TipologieNorma
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.TipologieNorma
grant all privileges on Anagrafiche.TipologieNorma to group amministratore ;; grant select,insert,update,delete on Anagrafiche.TipologieNorma to group modellatore ;; grant select,insert on Anagrafiche.TipologieNorma to group istruttore ;; grant select on Anagrafiche.TipologieNorma to public
Dati di base
Anagrafiche.TipologieNorma di base
insert into Anagrafiche.TipologieNorma (IDTipologiaNorma, Descrizione) values ('C', 'Comunale')
;;
insert into Anagrafiche.TipologieNorma (IDTipologiaNorma, Descrizione) values ('P', 'Provinciale')
;;
insert into Anagrafiche.TipologieNorma (IDTipologiaNorma, Descrizione) values ('R', 'Regionale')
;;
insert into Anagrafiche.TipologieNorma (IDTipologiaNorma, Descrizione) values ('N', 'Nazionale')
Titoli a cui un soggetto è allegato ad un entità, ad esempio un protocollo.
Informazioni sui singoli campi
Definisce il ruolo che il soggetto collegato al protocollo avrà nella pratica in cui il protocollo è inserito.
P = persona interessata T = tecnico I = incaricato all'istruttoria R = responsabile della pratica
Generatore Anagrafiche.IDTitolo
create sequence Anagrafiche.Gen_IDTitolo
Anagrafiche.Titoli
create table Anagrafiche.Titoli ( IDTitolo smallid_t not null, Descrizione longstring_t, IDTipologiatitolo flag_t, constraint PK_Titoli primary key (IDTitolo) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.Titoli->Anagrafiche.TipologieTitolo
alter table Anagrafiche.Titoli
add constraint fk_AT_IDTipologiaTitolo foreign key (IDTipologiaTitolo)
references Anagrafiche.TipologieTitolo (IDTipologiaTitolo)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Titoli
create function Anagrafiche.inizializza_titoli()
returns trigger as '
begin
if new.IDTitolo is NULL or new.IDTitolo = 0 then
new.IDTitolo = nextval(''Anagrafiche.Gen_IDTitolo'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_ts_init_titoli
before insert on Anagrafiche.Titoli
for each row execute procedure Anagrafiche.inizializza_titoli();
create trigger trg_ins_ts_p_titoli
before insert on Anagrafiche.Titoli
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Titoli
create trigger trg_upd_ts_p_titoli
before update on Anagrafiche.Titoli
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Titoli
grant all privileges on Anagrafiche.Titoli to group amministratore ;; grant select on Anagrafiche.Titoli to public ;; grant all privileges on Anagrafiche.Gen_IDTitolo to group amministratore
Le tipologie di titolo definiscono i ruoli che ha un soggetto collegato ad un entità. Nel caso dei protocolli, ad esempio, definisce il ruolo che il soggetto avrà nella pratica in cui il protocollo è inserito
Informazioni sui singoli campo
Anagrafiche.TipologieTitolo
create table Anagrafiche.TipologieTitolo ( IDTipologiaTitolo flag_t not null, Descrizione longstring_t, constraint PKTipologieTitolo primary key (IDTIpologiaTitolo) )
Permessi di accesso
Permessi di accesso a Anagrafiche.TipologieTitolo
grant all privileges on Anagrafiche.TipologieTitolo to group amministratore ;; grant select on Anagrafiche.TipologieTitolo to public
Dati di base
Anagrafiche.TipologieTitolo di base
insert into Anagrafiche.TipologieTitolo (IDTipologiaTitolo, Descrizione) values ('', '-')
;;
insert into Anagrafiche.TipologieTitolo (IDTipologiaTitolo, Descrizione) values ('P', 'Persona interessata')
;;
insert into Anagrafiche.TipologieTitolo (IDTipologiaTitolo, Descrizione) values ('T', 'Tecnico')
;;
insert into Anagrafiche.TipologieTitolo (IDTipologiaTitolo, Descrizione) values ('I', 'Incaricato istruttoria')
;;
insert into Anagrafiche.TipologieTitolo (IDTipologiaTitolo, Descrizione) values ('R', 'Responsabile della pratica')
;;
Contiene i diversi indirizzi dei soggetti anagrafici.
Informazioni sui singoli campi
Generatore Anagrafiche.IDIndirizzoSoggetto
create sequence Anagrafiche.Gen_IDIndirizzoSoggetto
Anagrafiche.IndirizziSoggetto
create table Anagrafiche.IndirizziSoggetto ( IDIndirizzoSoggetto largeid_t not null, IDSoggetto largeid_t not null, IDTipologiaIndirizzo flag_t, Indirizzo longstring_t, CAP cap_t, Localita shortstring_t, Provincia provincia_t, Stato tinystring_t, Progressivo smallint_t not null default 0, DataInizio date_t, DataCessazione date_t, Descrizione longstring_t, constraint PK_IndirizziSoggetto primary key (IDIndirizzoSoggetto) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.IndirizziSoggetto->Anagrafiche.Soggetti
alter table Anagrafiche.IndirizziSoggetto
add constraint fk_IS_IDSoggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
FK Anagrafiche.IndirizziSoggetto->Anagrafiche.TipologieIndirizzo
alter table Anagrafiche.IndirizziSoggetto
add constraint fk_IS_IDTipologiaIndirizzo foreign key (IDTipologiaIndirizzo)
references Anagrafiche.TipologieIndirizzo (IDTipologiaIndirizzo)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.IndirizziSoggetto
create function Anagrafiche.inizializza_indirizzisoggetto()
returns trigger as '
begin
if new.IDIndirizzoSoggetto is NULL or new.IDIndirizzoSoggetto = 0 then
new.IDIndirizzoSoggetto = nextval(''Anagrafiche.Gen_IDIndirizzoSoggetto'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_indirizzisoggetto
before insert on Anagrafiche.IndirizziSoggetto
for each row execute procedure Anagrafiche.inizializza_indirizzisoggetto();
create trigger trg_ins_ts_a_indirizzisoggetto
before insert on Anagrafiche.IndirizziSoggetto
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.IndirizziSoggetto
create trigger trg_upd_ts_a_indirizzisoggetto
before update on Anagrafiche.IndirizziSoggetto
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.IndirizziSoggetto
grant all privileges on Anagrafiche.IndirizziSoggetto to group amministratore ;; grant select,insert,update,delete on Anagrafiche.IndirizziSoggetto to group protocollatore ;; grant select on Anagrafiche.IndirizziSoggetto to public ;; grant update on Anagrafiche.Gen_IDIndirizzoSoggetto to group amministratore ;; grant update on Anagrafiche.Gen_IDIndirizzoSoggetto to group protocollatore
Le tipologie di indirizzo postale del soggetto: residenza, domicilio, etc
Informazioni sui singoli campi
Anagrafiche.TipologieIndirizzo
create table Anagrafiche.TipologieIndirizzo ( IDTipologiaIndirizzo flag_t not null, Descrizione longstring_t, constraint PK_TipologieIndirizzo primary key (IDTipologiaIndirizzo) )
Permessi di accesso
Permessi di accesso a Anagrafiche.TipologieIndirizzo
grant all privileges on Anagrafiche.TipologieIndirizzo to group amministratore ;; grant select on Anagrafiche.TipologieIndirizzo to public
Dati di base
Anagrafiche.TipologieIndirizzo di base
insert into Anagrafiche.TipologieIndirizzo (IDTipologiaIndirizzo, Descrizione) values ('R', 'Residenza')
;;
insert into Anagrafiche.TipologieIndirizzo (IDTipologiaIndirizzo, Descrizione) values ('D', 'Domicilio')
;;
insert into Anagrafiche.TipologieIndirizzo (IDTipologiaIndirizzo, Descrizione) values ('L', 'Lavoro')
;;
insert into Anagrafiche.TipologieIndirizzo (IDTipologiaIndirizzo, Descrizione) values ('V', 'Villeggiatura')
;;
insert into Anagrafiche.TipologieIndirizzo (IDTipologiaIndirizzo, Descrizione) values ('A', 'Altro')
;;
Contiene i riferimenti, non indirizzi postali, dei soggetti anagrafici.
Informazioni sui singoli campi
Generatore Anagrafiche.IDRiferimentoSoggetto
create sequence Anagrafiche.Gen_IDRiferimentoSoggetto
Anagrafiche.RiferimentiSoggetto
create table Anagrafiche.RiferimentiSoggetto ( IDRiferimentoSoggetto largeid_t not null, IDSoggetto largeid_t not null, IDTipologiaRiferimento flag_t, Riferimento longstring_t, Descrizione remark_t, constraint PK_RiferimentiSoggetto primary key (IDRiferimentoSoggetto) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.RiferimentiSoggetto->Anagrafiche.Soggetti
alter table Anagrafiche.RiferimentiSoggetto
add constraint fk_RS_IDSoggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
FK Anagrafiche.RiferimentiSoggetto->Anagrafiche.TipologieRiferimento
alter table Anagrafiche.RiferimentiSoggetto
add constraint fk_RS_IDTipologiaRiferimentoo foreign key (IDTipologiaRiferimento)
references Anagrafiche.TipologieRiferimento (IDTipologiaRiferimento)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.RiferimentiSoggetto
create function Anagrafiche.inizializza_riferimentisoggetto()
returns trigger as '
begin
if new.IDRiferimentoSoggetto is NULL or new.IDRiferimentoSoggetto = 0 then
new.IDRiferimentoSoggetto = nextval(''Anagrafiche.Gen_IDRiferimentoSoggetto'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_riferimentosoggetto
before insert on Anagrafiche.RiferimentiSoggetto
for each row execute procedure Anagrafiche.inizializza_riferimentisoggetto();
create trigger trg_ins_ts_a_riferimentisoggetto
before insert on Anagrafiche.RiferimentiSoggetto
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.RiferimentiSoggetto
create trigger trg_upd_ts_a_riferimentisoggetto
before update on Anagrafiche.RiferimentiSoggetto
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.RiferimentiSoggetto
grant all privileges on Anagrafiche.RiferimentiSoggetto to group amministratore ;; grant select,insert,update,delete on Anagrafiche.RiferimentiSoggetto to group protocollatore ;; grant select on Anagrafiche.RiferimentiSoggetto to public ;; grant update on Anagrafiche.Gen_IDRiferimentoSoggetto to group amministratore ;; grant update on Anagrafiche.Gen_IDRiferimentoSoggetto to group protocollatore
I riferimenti possono essere telefono, fax, email, url, etc
Informazioni sui singoli campo
Anagrafiche.TipologieRiferimento
create table Anagrafiche.TipologieRiferimento ( IDTipologiaRiferimento flag_t not null, Descrizione tinystring_t, constraint PKTipologieRiferimento primary key (IDTIpologiaRiferimento) )
Permessi di accesso
Permessi di accesso a Anagrafiche.TipologieRiferimento
grant all privileges on Anagrafiche.TipologieRiferimento to group amministratore ;; grant select on Anagrafiche.TipologieRiferimento to public
Dati di base
Anagrafiche.TipologieRiferimento di base
insert into Anagrafiche.TipologieRiferimento (IDTipologiaRiferimento, Descrizione) values ('T', 'telefono')
;;
insert into Anagrafiche.TipologieRiferimento (IDTipologiaRiferimento, Descrizione) values ('C', 'cellulare')
;;
insert into Anagrafiche.TipologieRiferimento (IDTipologiaRiferimento, Descrizione) values ('F', 'fax')
;;
insert into Anagrafiche.TipologieRiferimento (IDTipologiaRiferimento, Descrizione) values ('E', 'email')
;;
insert into Anagrafiche.TipologieRiferimento (IDTipologiaRiferimento, Descrizione) values ('U', 'url')
;;
Contiene le tipologie di sesso previste per i soggetti
Informazioni sui singoli campi
Anagrafiche.Sessi
create table Anagrafiche.Sessi ( IDSesso flag_t not null, Descrizione tinystring_t, constraint PKSessi primary key (IDSesso) )
Permessi di accesso
Permessi di accesso a Anagrafiche.Sessi
grant all privileges on Anagrafiche.Sessi to group amministratore ;; grant select on Anagrafiche.Sessi to public
Dati di base
Anagrafiche.Sessi di base
insert into Anagrafiche.Sessi (IDSesso, Descrizione) values ('-', '-')
;;
insert into Anagrafiche.Sessi (IDSesso, Descrizione) values ('M', 'M')
;;
insert into Anagrafiche.Sessi (IDSesso, Descrizione) values ('F', 'F')
;;
Anagrafica degli albi professionali a cui i soggetti (persone) possono essere iscritti.
Informazioni sui singoli campi
Generatore Anagrafiche.IDAlboProfessionale
create sequence Anagrafiche.Gen_IDAlboProfessionale
Anagrafiche.AlbiProfessionali
create table Anagrafiche.AlbiProfessionali ( IDAlboProfessionale smallid_t not null, Descrizione longstring_t, constraint PK_AlbiProfessionali primary key (IDAlboProfessionale) )
Permessi di accesso
Permessi di accesso a Anagrafiche.AlbiProfessionali
grant all privileges on Anagrafiche.AlbiProfessionali to group amministratore ;; grant select on Anagrafiche.AlbiProfessionali to public ;; grant all privileges on Anagrafiche.Gen_IDAlboProfessionale to group amministratore
Dati di base
Anagrafiche.AlbiProfessionali di base
insert into Anagrafiche.AlbiProfessionali (IDAlboprofessionale, Descrizione) values (1, 'AGRONOMO') ;; insert into Anagrafiche.AlbiProfessionali (IDAlboprofessionale, Descrizione) values (2, 'ARCHITETTO') ;; insert into Anagrafiche.AlbiProfessionali (IDAlboprofessionale, Descrizione) values (3, 'GEOMETRA') ;; insert into Anagrafiche.AlbiProfessionali (IDAlboprofessionale, Descrizione) values (4, 'INGEGNERE') ;; insert into Anagrafiche.AlbiProfessionali (IDAlboprofessionale, Descrizione) values (5, 'PERITO') ;; insert into Anagrafiche.AlbiProfessionali (IDAlboprofessionale, Descrizione) values (6, 'GEOLOGO') ;;
La tabella degli allegati contiene i riferimenti a tutti i file che sono allegati ad oggetti diversi all'interno di PyPaPi, come ad esempio protocolli o pratiche.
Questa tabella non è accessibile direttamente dagli utenti generici.
Per ogni tipologia di oggetto a cui gli allegati sono collegati esiste una tabella secondaria di collegamento, come ad esempio la Protocollo.AllegatiProtocollo.
Informazioni sui singoli campi
Generatore Anagrafiche.Gen_IDAllegato
create sequence Anagrafiche.Gen_IDAllegato
Anagrafiche.Allegati
create table Anagrafiche.Allegati ( IDAllegato largeid_t not null, Percorso pathname_t, Impronta hash_t, Protetto boolean_t, Descrizione longstring_t, constraint PK_Allegati primary key (IDAllegato) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Allegati
create function Anagrafiche.inizializza_allegati()
returns trigger as '
begin
if new.IDAllegato is NULL or new.IDAllegato = 0 then
new.IDAllegato = nextval(''Anagrafiche.Gen_IDAllegato'');
end if;
new.Protetto = FALSE;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_allegati
before insert on Anagrafiche.Allegati
for each row execute procedure Anagrafiche.inizializza_allegati();
create trigger trg_ins_ts_a_allegati
before insert on Anagrafiche.Allegati
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Allegati
create trigger trg_upd_ts_a_allegati
before update on Anagrafiche.Allegati
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Allegati
grant all privileges on Anagrafiche.Allegati to group amministratore ;; grant update on Anagrafiche.Gen_IDAllegato to group amministratore ;; grant update on Anagrafiche.Gen_IDAllegato to group protocollatore
La conoscenza del percorso sul server documentale di un allegato, unito alla sua impronta SHA, permette ad un utente PyPaPi di ottenere dal server http documentale il file allegato.
Per questo motivo l'utente protocollatore non ha accesso diretto alla AllegatiProtocollo, ma solo per tramite della vista AllegatiProtocolloUtente.
Le politiche applicate a questa vista sono le medesime della tabella Protocolli.
Allegati protocollo visibili agli utenti
create view Anagrafiche.AllegatiUtente as
select a.IDAllegato
, a.Percorso
, a.Impronta
, a.Protetto
, a.Descrizione
from anagrafiche.allegati as a
where a.Protetto is FALSE
or
(exists (select *
from protocollo.protocolliutente pu
join protocollo.allegatiprotocollo as ap
on pu.iddocumento = ap.iddocumento
where ap.idallegato = a.idallegato)
and
( exists (select *
from anagrafiche.utenti ut
join anagrafiche.utentiufficio uu
on uu.idutente = ut.idutente
join anagrafiche.uffici as uf
on uf.idufficio = uu.idufficio
join protocollo.referentiprotocollo as rp
on rp.idufficio = uf.idufficio
join protocollo.protocolli as p
on p.iddocumento = rp.iddocumento
join protocollo.allegatiprotocollo ap
on ap.iddocumento = p.iddocumento
where ut.login = current_user
and uu.riservato = TRUE)
or exists (select *
from protocollo.protocolliutente pu
join protocollo.allegatiprotocollo as ap
on pu.iddocumento = ap.iddocumento
where pu.riservato = FALSE)
)
)
;;
create rule AllegatiUtente_insert as on insert to Anagrafiche.AllegatiUtente
do instead
insert into Anagrafiche.Allegati (IDAllegato
, Percorso
, Impronta
, Protetto
, Descrizione
)
values (new.IDAllegato
, new.Percorso
, new.Impronta
, new.Protetto
, new.Descrizione
)
;;
create rule AllegatiUtente_update as on update to Anagrafiche.AllegatiUtente
do instead
update Anagrafiche.Allegati
set IDAllegato = new.IDAllegato
, Percorso = new.Percorso
, Impronta = new.Impronta
, Protetto = new.Protetto
, Descrizione = new.Descrizione
where IDAllegato = old.IDAllegato;
;;
create rule AllegatiUtente_delete as on delete to Anagrafiche.AllegatiUtente
do instead
delete from Anagrafiche.Allegati
where IDAllegato = old.IDAllegato;
Permessi di accesso a Anagrafiche.AllegatiUtente
grant all privileges on Anagrafiche.AllegatiUtente to group amministratore ;; grant select,insert,update,delete on Anagrafiche.AllegatiUtente to group protocollatore ;;
I gruppi servono per organizzare i soggetti secondo titoli comune, come ad esempio 'dipendente del comune' oppure 'consulente software'.
Ogni soggetto può appartenere ad uno o più gruppi.
Informazioni sui singoli campi
Generatore Anagrafiche.Gen_IDGruppo
create sequence Anagrafiche.Gen_IDGruppo
Anagrafiche.Gruppi
create table Anagrafiche.Gruppi ( IDGruppo smallid_t not null, Descrizione longstring_t, TipoPersona boolean_t not null, TipoAzienda boolean_t not null, TipoEnte boolean_t not null, constraint PK_Gruppi primary key (IDGruppo) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.Gruppi
create function Anagrafiche.inizializza_gruppi()
returns trigger as '
begin
if new.IDGruppo is NULL or new.IDGruppo = 0 then
new.IDGruppo = nextval(''Anagrafiche.Gen_IDGruppo'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_gruppi
before insert on Anagrafiche.Gruppi
for each row execute procedure Anagrafiche.inizializza_gruppi();
create trigger trg_ins_ts_a_gruppi
before insert on Anagrafiche.Gruppi
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.Gruppi
create trigger trg_upd_ts_a_gruppi
before update on Anagrafiche.Gruppi
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.Gruppi
grant all privileges on Anagrafiche.Gruppi to group amministratore ;; grant select,insert,update,delete on Anagrafiche.Gruppi to group protocollatore ;; grant select on Anagrafiche.Gruppi to public ;; grant update on Anagrafiche.Gen_IDGruppo to group amministratore ;; grant update on Anagrafiche.Gen_IDGruppo to group protocollatore
I gruppi sono logicamente divisi in tre categorie relative alla tipologia di soggetto che vi può appartenere.
Anagrafiche.GruppiPersone
create view Anagrafiche.GruppiPersone as
select g.IDGruppo
, g.Descrizione
from Anagrafiche.Gruppi as g
where g.TipoPersona is TRUE
;;
Permessi di accesso a Anagrafiche.GruppiPersone
grant select on Anagrafiche.GruppiPersone to public
Anagrafiche.GruppiAziende
create view Anagrafiche.GruppiAziende as
select g.IDGruppo
, g.Descrizione
from Anagrafiche.Gruppi as g
where g.TipoAzienda is TRUE
;;
Permessi di accesso a Anagrafiche.GruppiAziende
grant select on Anagrafiche.GruppiAziende to public
Anagrafiche.GruppiEnti
create view Anagrafiche.GruppiEnti as
select g.IDGruppo
, g.Descrizione
from Anagrafiche.Gruppi as g
where g.TipoEnte is TRUE
;;
Permessi di accesso a Anagrafiche.GruppiEnti
grant select on Anagrafiche.GruppiEnti to public
Tabella di collegamento dei gruppi a cui appartiene un soggetto.
Informazioni sui singoli campi
Generatore Anagrafiche.Gen_IDGruppoSoggetto
create sequence Anagrafiche.Gen_IDGruppoSoggetto
Anagrafiche.GruppiSoggetto
create table Anagrafiche.GruppiSoggetto ( IDGruppoSoggetto largeid_t not null, IDGruppo smallid_t, IDSoggetto largeid_t, Descrizione longstring_t, DataNascita date_t, DataCessazione date_t, constraint PK_GruppiSoggetto primary key (IDGruppoSoggetto) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.GruppiSoggetto->Anagrafiche.Soggetti
alter table Anagrafiche.GruppiSoggetto
add constraint fk_GS_IDSoggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
FK Anagrafiche.GruppiSoggetto->Anagrafiche.Gruppi
alter table Anagrafiche.GruppiSoggetto
add constraint fk_GS_IDGruppi foreign key (IDGruppo)
references Anagrafiche.Gruppi (IDGruppo)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.GruppiSoggetto
create function Anagrafiche.inizializza_gruppisoggetto()
returns trigger as '
begin
if new.IDGruppoSoggetto is NULL or new.IDGruppoSoggetto = 0 then
new.IDGruppoSoggetto = nextval(''Anagrafiche.Gen_IDGruppoSoggetto'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_grupposoggetto
before insert on Anagrafiche.GruppiSoggetto
for each row execute procedure Anagrafiche.inizializza_gruppisoggetto();
create trigger trg_ins_ts_a_gruppisoggetto
before insert on Anagrafiche.GruppiSoggetto
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.GruppiSoggetto
create trigger trg_upd_ts_a_gruppisoggetto
before update on Anagrafiche.GruppiSoggetto
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.GruppiSoggetto
grant all privileges on Anagrafiche.GruppiSoggetto to group amministratore ;; grant select,insert,update,delete on Anagrafiche.GruppiSoggetto to group protocollatore ;; grant select on Anagrafiche.GruppiSoggetto to public ;; grant update on Anagrafiche.Gen_IDGruppoSoggetto to group amministratore ;; grant update on Anagrafiche.Gen_IDGruppoSoggetto to group protocollatore
Anagrafica dei gruppi Postgres corrispondenti a gruppi di utenti all'interno di PyPaPi. Sono esempi il gruppo "amministratore" o "protocollatore".
Ad ogni gruppo PyPaPi corrisponde un gruppo Postgres; l'allineamento deve essere mantenuto a mano, creando gruppo Postgres e record corrispondente in questa tabella.
Informazioni sui singoli campi
Generatore Anagrafiche.Gen_IDGruppoPg
create sequence Anagrafiche.Gen_IDGruppoPg
Anagrafiche.GruppiPg
create table Anagrafiche.GruppiPg ( IDGruppoPg smallid_t not null, Denominazione longstring_t, Descrizione longstring_t, constraint PK_GruppiPg primary key (IDGruppoPg) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.GruppiPg
create function Anagrafiche.inizializza_gruppipg()
returns trigger as '
begin
if new.IDGruppoPg is NULL or new.IDGruppoPg = 0 then
new.IDGruppoPg = nextval(''Anagrafiche.Gen_IDGruppoPg'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_gruppipg
before insert on Anagrafiche.GruppiPg
for each row execute procedure Anagrafiche.inizializza_gruppipg();
create trigger trg_ins_ts_a_gruppipg
before insert on Anagrafiche.GruppiPg
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.GruppiPg
create trigger trg_upd_ts_a_gruppiPg
before update on Anagrafiche.GruppiPg
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.GruppiPg
grant all privileges on Anagrafiche.GruppiPg to group amministratore ;; grant select on Anagrafiche.GruppiPg to public ;; grant update on Anagrafiche.Gen_IDGruppoPg to group amministratore
Dati di base
Anagrafiche.GruppiPg di base
insert into Anagrafiche.GruppiPg (IDGruppoPg, Denominazione, Descrizione)
values (nextval('Anagrafiche.Gen_IDGruppoPg'), 'amministratore', 'Amministratore del database')
;;
insert into Anagrafiche.GruppiPg (IDGruppoPg, Denominazione, Descrizione)
values (nextval('Anagrafiche.Gen_IDGruppoPg'), 'superutente', 'Amministratore di PyPaPi')
;;
insert into Anagrafiche.GruppiPg (IDGruppoPg, Denominazione, Descrizione)
values (nextval('Anagrafiche.Gen_IDGruppoPg'), 'modellatore', 'Utente che modella iter procedurali')
;;
insert into Anagrafiche.GruppiPg (IDGruppoPg, Denominazione, Descrizione)
values (nextval('Anagrafiche.Gen_IDGruppoPg'), 'istruttore', 'Utente che istruisce pratiche')
;;
insert into Anagrafiche.GruppiPg (IDGruppoPg, Denominazione, Descrizione)
values (nextval('Anagrafiche.Gen_IDGruppoPg'), 'protocollatore', 'Utente generico del protocollo')
;;
insert into Anagrafiche.GruppiPg (IDGruppoPg, Denominazione, Descrizione)
values (nextval('Anagrafiche.Gen_IDGruppoPg'), 'anagrafiche', 'Utente che opera sui soggetti')
;;
insert into Anagrafiche.GruppiPg (IDGruppoPg, Denominazione, Descrizione)
values (nextval('Anagrafiche.Gen_IDGruppoPg'), 'convalidatore', 'Utente che convalida a prescindere dal flag omonimo')
;;
Tabella di collegamento dei gruppi Postgres con l'utente. Attraverso dei trigger su questa tabella viene gestita l'associazione dell'utente al gruppo Postgres.
Informazione sui singoli campi
Generatore Anagrafiche.Gen_GruppiPgUtente
create sequence Anagrafiche.Gen_IDGruppoPgUtente
Anagrafiche.GruppiPgUtente
create table Anagrafiche.GruppiPgUtente ( IDGruppoPgUtente largeid_t not null, IDUtente smallid_t not null, IDGruppoPg smallid_t not null, constraint PK_GruppoPgUtente primary key (IDGruppoPgUtente), constraint UK_GruppoPgUtente unique (IDUtente, IDGruppoPg) ) inherits(TimeStamped)
Chiavi esterne
FK Anagrafiche.GruppiPgUtente->Anagrafiche.Utenti
alter table Anagrafiche.GruppiPgUtente
add constraint fk_GPU_IDUtente foreign key (IDUtente)
references Anagrafiche.Utenti (IDUtente)
on update cascade
FK Anagrafiche.GruppiPgUtente->Anagrafiche.GruppiPg
alter table Anagrafiche.GruppiPgUtente
add constraint fk_GPU_IDGruppoPg foreign key (IDGruppoPg)
references Anagrafiche.GruppiPg (IDGruppoPg)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.GruppiPgUtente
create function Anagrafiche.inizializza_gruppipgutente()
returns trigger as '
declare
r1 RECORD;
r2 RECORD;
utente VARCHAR;
gruppopg VARCHAR;
begin
if new.IDGruppoPgUtente is NULL or new.IDGruppoPgUtente = 0 then
new.IDGruppoPgUtente = nextval(''Anagrafiche.Gen_IDGruppoPgUtente'');
end if;
for r1 in SELECT * FROM Anagrafiche.Utenti WHERE IDUtente = new.IDUtente loop
utente := r1.login;
end loop;
for r2 in SELECT * FROM Anagrafiche.GruppiPg WHERE IDGruppoPg = new.IDGruppoPg loop
gruppopg := r2.denominazione;
end loop;
execute ''GRANT '' || gruppopg || '' TO '' || utente;
return new;
end;
' language plpgsql;
create trigger trg_ins_ts_init_gruppipgutente
before insert on Anagrafiche.GruppiPgUtente
for each row execute procedure Anagrafiche.inizializza_gruppipgutente();
create trigger trg_ins_ts_a_gruppipgutente
before insert on Anagrafiche.GruppiPgUtente
for each row execute procedure inizializza_timestamp();
Cancellazione record Anagrafiche.GruppiPgUtente
create function Anagrafiche.cancella_gruppipgutente()
returns trigger as '
declare
r1 RECORD;
r2 RECORD;
utente VARCHAR;
gruppopg VARCHAR;
begin
for r1 in SELECT * FROM Anagrafiche.Utenti WHERE IDUtente = old.IDUtente loop
utente := r1.login;
end loop;
for r2 in SELECT * FROM Anagrafiche.GruppiPg WHERE IDGruppoPg = old.IDGruppoPg loop
gruppopg := r2.denominazione;
end loop;
execute ''REVOKE '' || gruppopg || '' FROM '' || utente;
return old;
end;
' language plpgsql;
create trigger trg_del_gruppipgutente
before delete on Anagrafiche.GruppiPgUtente
for each row execute procedure Anagrafiche.cancella_gruppipgutente();
Aggiornamento timestamp Anagrafiche.GruppiPgUtente
create trigger trg_upd_ts_a_gruppipgutente
before update on Anagrafiche.GruppiPgUtente
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.GruppiPgUtente
grant all privileges on Anagrafiche.GruppiPgUtente to group amministratore ;; grant all privileges on Anagrafiche.Gen_IDGruppoPgUtente to group amministratore ;; grant select on Anagrafiche.GruppiPgUtente to public
Titolario basato sulla Circolare Astengo.
Informazioni sui singoli campi
Anagrafiche.CategorieArchivio
create table Anagrafiche.CategorieArchivio ( IDCategoriaArchivio largeid_t not null, Categoria smallid_t, Classe smallid_t, Fascicolo smallid_t, Descrizione longstring_t, constraint PK_CategorieArchivio primary key (IDCategoriaArchivio), constraint UK_CategorieArchivio unique (Categoria, Classe, Fascicolo) )
Permessi di accesso a Anagrafiche.CategorieArchivio
grant all privileges on Anagrafiche.CategorieArchivio to group amministratore ;; grant select on Anagrafiche.CategorieArchivio to public
Dati di base
Anagrafiche.CategorieArchivio di base
insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (1, 1, NULL, NULL, 'AMMINISTRAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (2, 1, 1, NULL, 'COMUNE ED UFFICIO COMUNALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (3, 1, 1, 1, 'ATTI DI ORIGINE, STATUTO, CONCESSIONI, STEMMA ...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (4, 1, 1, 2, 'CIRCOSCRIZIONI COMUNALI - QUARTIERI, FRAZIONI...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (5, 1, 1, 3, 'MUNICIPI, FUSIONI DI MUNICIPI, UNIONE DI COMUNI ..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (6, 1, 1, 4, 'RIPARTIZIONI SERVIZI ED UFFICI, ORARI, CERTIFICATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (7, 1, 1, 5, 'ALBO PRETORIO PUBBLICAZIONI NOTIFICHE DEPOSITO ATT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (8, 1, 1, 6, 'ANCI, UNCEM, ANCITEL, AUTONOMIE LOCALI ...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (9, 1, 1, 7, 'CONVEGNI E RAPPRESENTANZE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (10, 1, 1, 8, 'AZIONI POPOLARI, REFERENDUM, DIFENSORE CIVICO ...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (11, 1, 1, 9, 'AMMINISTRAZIONE PROVINCIALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (12, 1, 10, NULL, 'ISTITUTI O SERVIZI AMMINISTRATIVI O TUTELATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (13, 1, 10, 1, 'AZIENDE SPECIALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (14, 1, 10, 2, 'CONSORZI AZIENDA, SPA, SOCIETA\' A PARTECIPAZ COMUN.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (15, 1, 10, 3, 'OPERE OD ISTITUZIONI AMMINISTRATE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (16, 1, 10, 4, 'AZIENDE AUTONOME DI SOGGIORNO E TURISMO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (17, 1, 11, NULL, 'LOCALI PER GLI UFFICI E SERVIZI COMUNALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (18, 1, 11, 1, 'COSTRUZIONE E MANUTENZIONE MUNICIPIO, AFFITTANZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (19, 1, 11, 2, 'ACQUISTO MOBILI MANUTENZIONE LOCALI E MOBILI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (20, 1, 11, 3, 'ILLUMINAZIIONE E RISCALDAMENTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (21, 1, 11, 4, 'CONCESSIONE LOCALI ED OGGETTI COMUNALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (22, 1, 11, 5, 'REGOLAMENTI PER CONCESSIONE LOCALI A PRIVATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (23, 1, 11, 6, 'SISTEMA INFORMATIVO COMUNALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (24, 1, 12, NULL, 'MANIFESTAZIONI DI INDOLE AMMINISTRATIVA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (25, 1, 12, 1, 'ASSOCIAZIONI, CONGRESSI, ONORANZE, RAPPRESENTANZE.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (26, 1, 12, 2, 'COLLABORAZIONI TRA ENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (27, 1, 13, NULL, 'CIRCOLARI E DISPOSIZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (28, 1, 13, 1, 'CIRCOLARI, NORME, DISPOSIZIONI D\'INDOLE GENERALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (29, 1, 13, 2, 'CIRCOLARI DELLA REGIONE E DEL COMITATO DI CONTROLL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (30, 1, 13, 3, 'MANIFESTI ED AVVISI AL PUBBLICO DELLA PRIMA CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (31, 1, 2, NULL, 'ARCHIVIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (32, 1, 2, 1, 'PRONTUARIO D\'ARCHIVIO, SCARTO ATTI, RILASCIO COPIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (33, 1, 2, 2, 'ARCHIVIO STORICO ANTICO E MODERNO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (34, 1, 2, 3, 'PROTOCOLLO, INDICE E RUBRICA DELLE PRATICHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (35, 1, 2, 4, 'RIORDINAMENTO E SISTEMAZIONE ARCHIVI E LOCALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (36, 1, 3, NULL, 'ECONOMATO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (37, 1, 3, 1, 'REGOLAMENTO DI SERVIZIO, ECONOMO, CAUZIONE ...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (38, 1, 3, 2, 'STAMPE - CARTA - CANCELLERIA - MACCHINE UTENSILI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (39, 1, 3, 3, 'RIVISTE, GIORNALI, PUBBLICAZIONI AMM.VE, ABBONAM.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (40, 1, 3, 4, 'SPESE DI POSTA, TELEGRAFO, RECAPITI DI CORRIERE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (41, 1, 3, 5, 'COMBUSTIBILE PER RISCALDAMENTO, ACQUISTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (42, 1, 3, 6, 'MENSE AZIENDALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (43, 1, 4, NULL, 'ELEZIONI AMMINISTRATIVE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (44, 1, 4, 1, 'LISTE DI CANDIDATI, ATTI E ADEMPIMENTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (45, 1, 4, 2, 'LEGGI ELETTORALI, PRESIDENTI, COMPONENTI, SEGRET..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (46, 1, 4, 3, 'NORME, CIRCOLARI E CORRISPONDENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (47, 1, 4, 4, 'ESITO E STATISTICHE DELLE ELEZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (48, 1, 5, NULL, 'CONSIGLIO, GIUNTA E ORGANI BUROCRATICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (49, 1, 5, 1, 'CONSIGLIO, CONVOCAZIONI, O.D.G., ATTI E RELAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (50, 1, 5, 10, 'ORGANI BUROCRATICI, DETERMINE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (51, 1, 5, 2, 'CONSIGLIERI, NOMINA, DIMISSIONI, DECADENZA, REVOC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (52, 1, 5, 3, 'GIUNTA, CONVOCAZIONI, O.D.G., ATTI E RELAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (53, 1, 5, 4, 'ASSESSORI, NOMINE, DIMISSIONI, REVOCHE, SOSTITUZ.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (54, 1, 5, 5, 'DELIBERAZIONI DI C.C. E G.C. RELATIVE A CONSIGL.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (55, 1, 5, 6, 'INTERPELLANZE, INTERROGAZIONI, MOZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (56, 1, 5, 7, ' ANAGRAFE AMMINISTRATORI, ASPETTATIVA AMMINISTR.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (57, 1, 5, 8, 'COMMISSIONI CONSILIARI, NOMINA, ATTI RELATI, GRUPP') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (58, 1, 5, 9, 'CONSIGLI E CONSIGLIERI CIRCOSCRIZIONALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (59, 1, 6, NULL, 'SINDACO - COMMISSIONI - DELEGHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (60, 1, 6, 1, 'SINDACO, ELEZIONE DIRETTA, REVOCHE, SOSTITUZ.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (61, 1, 6, 2, 'COMMISSARI STRAORDINARI, ISPEZIONI ED INCHIESTE..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (62, 1, 6, 3, 'DELEGHE E DELEGATI, INCARICHI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (63, 1, 6, 4, 'CONVOCAZIONI, COMMISSIONI NON SPECIFICHE,NOMINE..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (64, 1, 6, 5, 'INDENNITA\' DI CARICA E RIMBORSO SPESE FORZOSE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (65, 1, 6, 6, 'PASSAGGIO DI AMMINISTRAZIONE, CONSEGNE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (66, 1, 6, 7, 'DELIBERAZIONI DI C.C. E G.C. RELATIVE AL SINDACO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (67, 1, 6, 8, 'CERIMONIE, UDIENZE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (68, 1, 6, 9, 'ALLOGGI (RICHIESTE)') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (69, 1, 7, NULL, 'DELIBERAZIONI E REPERTORI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (70, 1, 7, 1, 'REGISTRI E INDICI DEL CONSIGLIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (71, 1, 7, 2, 'REGISTRI E INDICI DELLA GIUNTA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (72, 1, 7, 3, 'DELIBERAZIONI SOGGETTE A CONTROLLO PREV. DI LEGITT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (73, 1, 7, 4, 'DELIBERAZIONI DELLA G.C. INVIATE A I CAPIGRUPPO CO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (74, 1, 7, 5, 'REPERTORI E CONTRATTI (IN UNICA RACCOLTA)') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (75, 1, 7, 6, 'ORDINANZE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (76, 1, 8, NULL, 'IMPIEGATI E SALARIATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (77, 1, 8, 1, 'REGOLAMENTO E DOTAZIONE ORGANICA DEL PERSONALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (78, 1, 8, 10, 'INDENNITA\' DI TRASFERTA IMPIEGATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (79, 1, 8, 11, 'INDENNITA\' DI TRASFERIMENTO E RIMBORSO SPESE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (80, 1, 8, 12, 'CORSI DI PERFEZIONAMENTO E AGGIORNAMENTO PERSONAL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (81, 1, 8, 13, 'COMMISSIONE DI DISCIPLINA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (82, 1, 8, 2, 'SEGRETARIO COMUNALE, NOMINA, ASSEGNI, NORME GENER.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (83, 1, 8, 3, 'IMPIEGATI,CONCORSI,NOMINE, ASSEGNI, ATTI VARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (84, 1, 8, 4, 'ESECUTORI, SALARIATI, NOMINE, ASSEGNI, INCARICHI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (85, 1, 8, 5, 'PERSONALE AVVENTIZIO O A TEMPO DETERM, LAVORO STR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (86, 1, 8, 6, 'INPDAP') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (87, 1, 8, 7, 'INPS, ASSICURAZ. INVALIDITA\', VECCHIAIA ETC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (88, 1, 8, 8, 'ASSICURAZIONI INFORTUNI DIPENDENTI COMUNALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (89, 1, 8, 9, 'SINDACATO DIPENDENTI COMUNALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (90, 1, 9, NULL, 'CAUSE, LITI, CONFLITTI DELL\'AMMINISTRAZIONE COMUNA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (91, 1, 9, 1, 'LITI, SENTENZE, TRANSAZIONI, CONSULTI ETC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (92, 1, 9, 2, 'INCARICHI A LEGALI, DELIBERAZ.RELATIVE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (93, 1, 9, 3, 'CITAZIONI ALL COMUNE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (94, 1, 9, 5, 'PARERI LEGALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (95, 10, NULL, NULL, 'LAVORI PUBBLICI, POSTE, TELEGRAFO, TELEFONO, TV ..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (96, 10, 1, NULL, 'STRADE, PIAZZE, GIARDINI PUBBLICI, COSTRUZIONE...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (97, 10, 1, 1, 'STRADE,CLASSIFICAZIONI,ELENCHI,AFFARI GENERALI,STA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (98, 10, 1, 2, 'VIE E PIAZZE,VIALI PORTICI E LOGGE, ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (99, 10, 1, 3, 'STRADE COSTRUZIONI VARIANTI RIPARAZIONI STRAORDINA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (100, 10, 1, 4, 'STADE,MANUTENZIONE,GHIAIA E SELCIATI,ALBERATURA,SG') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (101, 10, 1, 5, 'STADE NAZIONALI,ATTRAVERSANTI L\'ABITATO,CONSORZIAL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (102, 10, 1, 6, 'POLIZIA STRADALE,CONCESSIONI PRECARIE STRADALI,COD') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (103, 10, 1, 7, 'GIARDINI,PARCHI PUBBLICI,PASSEGGI,VIALI E AIUOLE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (104, 10, 1, 8, 'URBANISTICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (105, 10, 10, NULL, 'COSTRUZIONE E RESTAURI EDIFICI COMUNALI E PRIVATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (106, 10, 10, 1, 'EDIFICI E STABILI URBANI COMUNALI-EX CASE DEL FASC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (107, 10, 10, 2, 'REGOLAMENTI EDILIZI:ATTI ORDINANZE CONTRAVVENZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (108, 10, 10, 3, 'COMMISSIONE EDILIZIA,NOMINE,DELIBERAZIONI,PERMESSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (109, 10, 10, 4, 'ASSOC. PROPRIETARI EDILI - SINDACATO EDILI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (110, 10, 10, 5, 'CASE POPOLARI E RURALI, COSTRUZIONE,GESTIONE,STATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (111, 10, 10, 6, 'COOPERATIVE EDILIZIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (112, 10, 10, 7, 'ABITAZIONI REPERITE DA DESTINARE A SFRATTATI E SEN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (113, 10, 10, 8, 'EDIFICI SINISTRATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (114, 10, 11, NULL, 'PORTI, SPIAGGE, FARI, MOLI, ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (115, 10, 11, 1, 'PORTI,SPIAGGE,FARI,MOLI - COSTRUZIONI, MANUTENZION') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (116, 10, 12, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (117, 10, 12, 1, 'CIRCOLARI, NORME RIGUARDANTI LA 10\' CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (118, 10, 12, 2, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARDANTI LA 10\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (119, 10, 16, NULL, 'CREATA PER INSERIRE PRATICHE EDILIZIE ANTECED 1940') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (120, 10, 2, NULL, 'PONTI, GALLERIE, FOGNATURE, FRANE E LAVORI STRAORD') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (121, 10, 2, 1, 'PONTI,ATTI RELATIVI,COSTRUZIONE E MANUTENZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (122, 10, 2, 2, 'GALLERIE VARIE,COSTRUZIONI MANUTENZIONI, SUSSIDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (123, 10, 2, 3, 'FOGNATURE,LATRINE PUBBLICHE E ALTRE OPERE STRADALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (124, 10, 2, 4, 'FRANE RIMOZIONI SUSSIDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (125, 10, 2, 5, 'MERCATI,COSTRUZIONE,MANUTENZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (126, 10, 3, NULL, 'ILLUMINAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (127, 10, 3, 1, 'ILLUMINAZIONE PUBBLICA ELETTRICA,IMPIANTI PERSONAL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (128, 10, 3, 2, 'CONTRATTO D\' APPALTO FORNITURA ENERGIA,LAMPADE,MAT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (129, 10, 3, 3, 'ALTRI SISTEMI D\'ILLUMINAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (130, 10, 4, NULL, 'ACQUE E FONTANE PUBBLICHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (131, 10, 4, 1, 'ACQUE,CONCESSIONI,DERIVAZIONI,IMPIANTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (132, 10, 4, 10, 'PROGETTI SPECIALI DI LAVORO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (133, 10, 4, 2, 'FONTANE,POZZI,LAVATOI,BAGNI PUBBLIVI,COSTRUZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (134, 10, 4, 3, 'AQUEDOTTI COMUNALI,IMPIANTI MANUTENZIONE,PERSONALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (135, 10, 4, 4, 'ACQUE PER USO PRIVATO,CONCESSIONI, CONVENZIONI, PR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (136, 10, 4, 5, 'FIUMI TORRENTI CANONI E LAVORI ARGINATIVI, BONIFIC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (137, 10, 4, 6, 'LAGHI NATURALI ED ARTIFICIALI,DIGHE ORIGINI,ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (138, 10, 4, 7, 'IMPIANTI SOLLEVAMENTO ACQUA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (139, 10, 4, 8, 'IRRIGAZIONE CAMPI PER L\'AGRICOLTURA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (140, 10, 4, 9, 'PULIZIA CANALI IRRIGUI E ROGGE COMUNALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (141, 10, 5, NULL, 'CONSORZI STRADALI E IDRAULICI DI BONIFICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (142, 10, 5, 1, 'CONSORZI STRADALI,COSTITUZIONE,FUNZIONAMENTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (143, 10, 5, 2, 'CONSORZI IDRAULICI E DI BONIFICA, COSTITUZIONE FUN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (144, 10, 6, NULL, 'ESPROPRIAZIONI PER CAUSE DI PUBBLICA UTILITA\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (145, 10, 6, 1, 'ESPROPRIAZIONI ED OCCUPAZ. SUOLO PER PUBB. UTILITA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (146, 10, 7, NULL, 'POSTE, TELEGRAFI, TELEFONI, RADIO, TELEVISIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (147, 10, 7, 1, 'POSTE E TELEGRAFI,UFFICILOCALI,IMPIANTI,PERSONALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (148, 10, 7, 2, 'TELEFONI, UFFICI,SPESE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (149, 10, 7, 3, 'RADIOAUDIZIONI,TELEVISIONE,RADIOTELEGRAFO,RADIOTEL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (150, 10, 8, NULL, 'FERROVIE, TRAMVIE, AUTOVIE, FUNIVIE, NAVIGAZIONE..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (151, 10, 8, 1, 'FERROVIE, COSTRUZIONI, CONTRIBUTI ,STAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (152, 10, 8, 2, 'TRANVIE A VAPORE O ELETTRICHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (153, 10, 8, 3, 'AUTOSTRADE, SERVIZI DI LINEA, AUTOVIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (154, 10, 8, 4, 'FUNIVIE, FILOVIE, TELEFONI, PALORCI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (155, 10, 8, 5, 'NAVIGAZIONE, LAGHI, FIUMI, MARE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (156, 10, 8, 6, 'SINDACATI TRASPORTI TERRESTRI E NAVIGAZIONE INTERN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (157, 10, 8, 7, 'AEROPORTI, SERVIZI AEREI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (158, 10, 8, 8, 'OROLOGI PUBBLICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (159, 10, 9, NULL, 'UFFICIO TECNICO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (160, 10, 9, 1, 'UFFICIO TECNICO, LOCALI MOBILI,PERSONALE-COLLEGIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (161, 10, 9, 2, 'STATISTICHE,PROSPETTI,NORME-ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (162, 10, 9, 3, 'REGOLAMENTO LAVORI IN ECONOMIA, NORME- ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (163, 10, 9, 4, 'CANTIERI DI LAVORO E RIMBOSCHIMENTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (164, 10, 9, 5, 'CAPITOLATO GENERALE DELLO STATO E CAPITOLATO SPECI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (165, 10, 9, 6, 'CONTABILITA\' DEI LAVORI-APPALTO LAVORI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (166, 11, NULL, NULL, 'AGRICOLTURA INDUSTRIA COMMERCIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (167, 11, 1, NULL, 'AGRICOLTURA, CACCIA, PESCA, PASTORIZIA, PIANTE ..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (168, 11, 1, 1, 'PROVV. PER L\'AGRICOLTURA E GLI AGRICOLTORI,ESPOSIZ') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (169, 11, 1, 10, 'CONTRIBUTI UNIFICATI IN AGRICOLTURA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (170, 11, 1, 11, 'AGRITURISMO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (171, 11, 1, 12, 'U.M.A.- UFFICIO MACCHINE AGRICOLE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (172, 11, 1, 2, 'CENSIMENTI E STATISTICHE DELL\'AGRICOLTURA,CACCIA,P') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (173, 11, 1, 3, 'ASSISTENZA MALATTIE E ASSICURAZIONI NELL\' AGRICOLT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (174, 11, 1, 4, 'GRANO E CANAPA, DISCIPLINA DI PRODUZIONE E COMMERC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (175, 11, 1, 5, 'APICOLTURA, BACHICOLTURA, VITICOLTURA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (176, 11, 1, 6, 'BOSCHI E FORESTE,CORPO VIGILANZA FORESTALE,PIANI E') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (177, 11, 1, 7, 'ZOOTECNIA E PASTORIZIA, ASSICURAZIONE BESTIAME, MO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (178, 11, 1, 8, 'CACCIA,PESCA,ITTIOLIGIA,PISCICULTURA,UCCELLAGIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (179, 11, 1, 9, 'RISAIE E COLTURE SPECIALI, CONSORZI AGRARI, RACCOL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (180, 11, 2, NULL, 'INDUSTRIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (181, 11, 2, 1, 'PROVV. PER L\'INDUSTRIA, ESPOSIZIONI, MOSTRE E CONC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (182, 11, 2, 2, 'CENSIMENTI E STATISTICHE INDUSTRIALI-ASS. DEGLI IN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (183, 11, 2, 3, 'OPIFICI, STABILIMENTI, CENTRALI ELETTRICHE, CENTRA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (184, 11, 2, 4, 'MOLINI,MACINAZIONI,FORNI,PANIFICAZIONE,ATTI RELATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (185, 11, 2, 5, 'MINIERE,CAVE,TORBIERE - CONCESSIONI E PRIVATIVE IN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (186, 11, 2, 6, 'COOPERATIVE E CONSORZI DI PRODUZIONE E LAVORO, DIS') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (187, 11, 2, 7, 'INDUSTRIA TURISTICA ED ALBERGHIERA, TOURING CLUB I') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (188, 11, 2, 8, 'ISTITUTI DI CREDITO CAMBIARIO,BANCHE BORSE,QUOTAZI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (189, 11, 2, 9, 'ISTITUTI DI ASSICURAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (190, 11, 3, NULL, 'COMMERCIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (191, 11, 3, 1, 'PROVV. PER IL COMMERCIO, MOSTRE VETRINE CONCORSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (192, 11, 3, 10, 'STATISTICHE SUI CONSUMI, PRODUZIONI,IMPORTAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (193, 11, 3, 11, 'CONTROLLO E RAZIONAMENTO CONSUMI-ANAGRAFE ANNONARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (194, 11, 3, 12, 'PIANO DI SVILUPPO ED ADEGUAMENTO RETE DI VENDITA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (195, 11, 3, 2, 'CENSIMENTI E STATISTICHE DEL COMMERCIO-ASS. DEL CO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (196, 11, 3, 3, 'ELENCHI DEI COMMERCIANTI E NEGOZIANTI-COMMISSIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (197, 11, 3, 4, 'MERCURIALI,CALMIERI,LISTINI PREZZI,DISCIPLINA VIGI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (198, 11, 3, 5, 'CAMERA DI COMMERCIO, INDUSTRIA,ARTIGIANATO E AGRIC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (199, 11, 3, 6, 'COMMERCIO AMBULANTE,NORME,COMMISSIONE,ELENCO COMME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (200, 11, 3, 7, 'MEDIATORI E SENSALI, RUOLI, LICENZE, ATTI TARIFFE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (201, 11, 3, 8, 'IMPORTAZIONI ED ESPORTAZIONI, DITTE ESTERE, PRODOT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (202, 11, 3, 9, 'COOP. E CONSORZI DI VENDITA E CONSUMO,ELENCHI,NORM') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (203, 11, 4, NULL, 'ARTIGIANATO, LAVORO E PREVIDENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (204, 11, 4, 1, 'ARTIGIANATO,NORME E DISPOSIZIONI,ELENCHI ARTIGIANI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (205, 11, 4, 10, 'PROGETTI SPECIALI DI LAVORO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (206, 11, 4, 2, 'PREVIDENZA SOCIALE-INPS-ASS.INVALIDITA\' E VECCHIAIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (207, 11, 4, 3, 'ESRVIZIO EROGAZIONE SUSSIDI DI DISOCCUPAZIONE,ASSE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (208, 11, 4, 4, 'ISTITUTO NAZ. INFORTUNI,DENUNZIE INDENNITA\', NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (209, 11, 4, 5, 'PATRONATO NAZ. DI ASSISTENZA SOCIALE-PROBLEMI SOCI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (210, 11, 4, 6, 'SINDACATI E CONFEDERAZIONI DEI LAVORATORI-UFFICI D') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (211, 11, 4, 7, 'LAVORO DELLE DONNE E DEI FANCIULLI, LAVORO NOTTURN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (212, 11, 4, 8, 'LIBRETTI DI LAVORO, NORME,DISPOSIZIONI,ELENCHI,DOM') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (213, 11, 4, 9, 'CANTIERI DI LAVORO E DI RIMBOSCHIMENTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (214, 11, 5, NULL, 'FIERE E MERCATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (215, 11, 5, 1, 'FIERE ED ESPOSIZIONI, COSTITUZIONE, DISCIPINA,ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (216, 11, 5, 2, 'MERCATO E FORO BOARIO,NORME,DISPOSIZIONI,REGOLAMEN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (217, 11, 5, 3, 'COMMISSIONE MERCATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (218, 11, 5, 4, 'COMITATO PROVINCIALE PREZZI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (219, 11, 6, NULL, 'PESI E MISURE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (220, 11, 6, 1, 'STATO UTENTI PESI E MISURE,COMPILAZIONE,VARIAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (221, 11, 6, 2, 'VERIFICHE PERIODICHE,UFFICIO E PERSONALE, SPESE OR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (222, 11, 6, 3, 'PESE PUBBLICHE E PRIVATE, REGOLAMENTO E TARIFFE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (223, 11, 6, 4, 'UFFICIO METRICO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (224, 11, 7, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (225, 11, 7, 1, 'CIRCOLARI NORME E DISPOSIZIONI RIGUARDANTI LA 11\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (226, 11, 7, 2, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARDANTI LA 11\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (227, 12, NULL, NULL, 'STATO CIVILE. CENSIMENTO. STATISTICA DEMOGRAFIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (228, 12, 1, NULL, 'STATO CIVILE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (229, 12, 1, 1, 'UFFICIO DI STATO CIVILE ED UFFICI STACCATI,NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (230, 12, 1, 2, 'RICHIESTE ATTI E CERTIFICATI VARI,SITUAZIONI DI FA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (231, 12, 1, 3, 'NASCITE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (232, 12, 1, 4, 'MORTI,DENUNZIE, TRASCRIZIONI,RETTIFICHE,ATTI RELAT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (233, 12, 1, 5, 'MATRIMONI,PUBBLICAZIONI,RICHIESTE,TRASCRIZIONI,ATT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (234, 12, 1, 6, 'CITTADINANZA ITALIANA E STRANIERA,COGNOMI,CAMBIAME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (235, 12, 1, 7, 'TUTELA DEI MINORENNI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (236, 12, 2, NULL, 'ANAGRAFE E TOPONOMASTICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (237, 12, 2, 1, 'REGISTRO DI POPOLAZIONE, NORME E REGOLAMENTI,TOPON') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (238, 12, 2, 2, 'CAMBI DI RESIDENZA, ISCRIZIONI E CANCELLAZIONI,ATT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (239, 12, 2, 3, 'MIGRAZIONI INTERNE, URBANESIMO, NORME E ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (240, 12, 2, 4, 'FAMIGLIE NUMEROSE,NORME ATTI E PROVVEDIMENTI DEMOG') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (241, 12, 2, 5, 'ANAGRAFE SPECIALE ITALIANI RESIDENTI ALL\'ESTERO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (242, 12, 2, 6, 'ANAGRAFE DEI PENSIONATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (243, 12, 2, 7, 'AUTENTIFICAZIONE DI FIRME ED AUTOCERTIFICAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (244, 12, 3, NULL, 'CENSIMENTO E STATISTICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (245, 12, 3, 1, 'CENSIMENTI GENERALI DELLA POPOLAZIONE,ATTI RELATIV') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (246, 12, 3, 2, 'STATISTICHE DEMOGRAFICHE,ATTI , NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (247, 12, 3, 3, 'STATO TRIMESTRALE DECESSI, INFORMAZIONI E RICHIEST') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (248, 12, 3, 4, 'CENTRO ELABORAZIONE DATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (249, 12, 4, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (250, 12, 4, 1, 'CIRCOLARI,NORME RIGUARDANTI LA 12\' CATEGORIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (251, 12, 4, 2, 'MANIFESTI E AVVISI AL PUBBLICO RIGUARDANTI LA 12\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (252, 13, NULL, NULL, 'ESTERI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (253, 13, 1, NULL, 'COMUNICAZIONI CON L\'ESTERO. STRANIERI IN ITALIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (254, 13, 1, 1, 'CONSOLATI,RAPPRESENTANZE,AMBASCIATE,ATTI E CORRISP') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (255, 13, 1, 2, 'STATI ESTERI, COMUNICAZIONE, NORME, ATTI RICHIESTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (256, 13, 1, 3, 'STRANIERI IN ITALIA,SOGGIORNO,NORME,SCHEDARIO DENU') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (257, 13, 1, 4, 'COMMERCIO ESTERO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (258, 13, 1, 5, 'C.E.E.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (259, 13, 2, NULL, 'EMIGRAZIONE ESTERA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (260, 13, 2, 1, 'EMIGRATI,RIMPATRIATI,NORME,PROVV. IN FAVORE EMIGRA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (261, 13, 2, 2, 'PASSAPORTI E LASCIAPASSARE,NORME,ATTI VARI,REGISTR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (262, 13, 2, 3, 'ESPATRIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (263, 13, 2, 4, 'COMMISSIONE PER L\'EMIGRAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (264, 13, 3, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (265, 13, 3, 1, 'CIRCOLARI, NORME RELATIVE LA 13\' CATEGORIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (266, 13, 3, 2, 'MANIFESTI E AVVISI AL PUBBLICO RIGUARDANTI LA 13\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (267, 14, NULL, NULL, 'OGGETTI DIVERSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (268, 14, 1, NULL, 'OGGETTI DIVERSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (269, 14, 1, 1, 'OGGETTI DIVERSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (270, 14, 2, NULL, 'CIRCOLARI E NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (271, 14, 2, 1, 'CIRCOLARI E NORME RIGUARDANTI LA 14\' CATEGORIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (272, 14, 2, 2, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARDANTI LA 14\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (273, 15, NULL, NULL, 'PUBBLICA SICUREZZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (274, 15, 1, NULL, 'PUBBLICA INCOLUMITA\', CALAMITA\', MANIFESTAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (275, 15, 1, 1, 'PUBBLICHE CALAMITA\',INCOLUMITA\' PUBBLICA,NORME,DISPO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (276, 15, 1, 2, 'SERVIZI DI PRONTO SOCCORSO E DI PUBBLICA NECESSITA\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (277, 15, 1, 3, 'GARE SPORTIVE, MANIFESTAZIONI E PROCESSIONI RELIGI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (278, 15, 1, 4, 'PROTEZIONE ANTIAEREA, PROGETTO, NORME,DISPOSIZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (279, 15, 1, 5, 'CARTE D\' IDENTITA\', ELENCHI, ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (280, 15, 1, 6, 'RICOVERI MENTECATTI,INDIVIDUI PERICOLOSI, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (281, 15, 1, 7, 'SOTTOSCRIZIONI PUBBLICHE, QUESTURE E COLLETTE D\'IN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (282, 15, 2, NULL, 'POLVERI, MATERIE ESPLODENTI, ARMI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (283, 15, 2, 1, 'VENDITE, FABBRICAZIONE, TRASPORTO, DETENZIONE, MUN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (284, 15, 2, 2, 'DISTRIBUTORI DI BENZINA, OLII MINERALI E MATERIALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (285, 15, 2, 3, 'CALDAIE A VAPORE, NORME, DENUNZIE, LICENZE, ATTI R') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (286, 15, 2, 4, 'ARMI, FABBRICAZIONE, DETENZIONE,TRASPORTO,VENDITA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (287, 15, 2, 5, 'GAS TOSSICI E GAS COMPRESSI-LICENZE, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (288, 15, 2, 6, 'ACQUE GASSATE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (289, 15, 3, NULL, 'TEATRI E TRATTENIMENTI PUBBLICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (290, 15, 3, 1, 'REGOLAMENTO SUI TEATRI, CINEMATOGRAFI, SALE DA BAL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (291, 15, 3, 2, 'TRATRI,COMPAGNIE TEATRALI,PROGRAMMI, NORME,DISPOSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (292, 15, 3, 3, 'CINEMATOGRAFI E CINEMATOGRAFIA, PROGRAMMI, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (293, 15, 3, 4, 'SALE DA BALLO, CIRCHI EQUESTRI, VEGLIONI, SALMBANC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (294, 15, 3, 5, 'SPORT,TURISMO,SPETTACOLO,CORSE DI CAVALLI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (295, 15, 4, NULL, 'ESERCIZI PUBBLICI, ATTIVITA\' CONTROLLATE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (296, 15, 4, 1, 'ESERCIZI PUBBLICI, NORME, DISPOSIZIONI, ORARI, APE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (297, 15, 4, 10, 'PIANO COMMERCIALE PER GLI ESERCIZI PUBBLICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (298, 15, 4, 11, 'LICENZA FRIGORIFERI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (299, 15, 4, 12, 'DENUNCIA AFFITTO O VENDITA DI FABBRICATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (300, 15, 4, 13, 'AGENZIE PUBBLICHE - CORRIERI - INTERPRETI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (301, 15, 4, 2, 'ESERCIZI PUBBLICI, LICENZE, ELENCHI, GIOCHI LECITI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (302, 15, 4, 3, 'PERMESSI TEMPORANEI DI VENDITA PER FESTE E FIERE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (303, 15, 4, 4, 'REGISTRO MESTIERI AMBULANTI, DENUNZIE, NORME,ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (304, 15, 4, 5, 'AGENTI DI PUBBLICA SICUREZZA, GUARDIE PARTICOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (305, 15, 4, 6, 'AFFITTACAMERE, STALLI, RIMESSE, NORME, ATTI VARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (306, 15, 4, 7, 'TIPOGRAFIE E FOTOGRAFIE, STAMPATI E MANIFESTI, DEN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (307, 15, 4, 8, 'MOVIMENTO FORESTIERI, DENUNZIE, STATISTICHE VIAGGI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (308, 15, 4, 9, 'COMMISSIONE PER GLI ESERCIZI PUBBLICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (309, 15, 5, NULL, 'MENDICITA\', PREGIUDICATI, AMMONITI, SORVEGLIATI...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (310, 15, 5, 1, 'PROVVEDIMENTI CONTRO L\'ACCATTONAGGIO,NORME E DISPO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (311, 15, 5, 10, 'DROGATI ED INTOSSICATI DA STUPEFACENTI - LOTTA ANT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (312, 15, 5, 2, 'PREGIUDICATI, AMMONITI, CONFINATI, SORVEGLIATI, PE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (313, 15, 5, 3, 'ESPULSI DALL\'ESTERO NORME, ATTI, ELENCHI, INFORMA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (314, 15, 5, 4, 'FERMI E ARRESTI, MANDATI DI CATTIRA, DETENUTI EVAS') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (315, 15, 5, 5, 'SCARCERATI,REDUCI, ISTITUTI DI PENA, NORME, ELENCH') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (316, 15, 5, 6, 'RIMPATRII CON FOGLIO DI VIA OBBLIGATORIO,SPESE, RI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (317, 15, 5, 7, 'MINORENNI,DISCOLI,CORRIGENDI,RICOVERATI,ATTI,ELENC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (318, 15, 5, 8, 'PROSTITUTE, MERETRICIO,CASE,FERMO DELLE VAGABONDE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (319, 15, 5, 9, 'MALATI PSICHICI - ORDINANZE DI RICOVERO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (320, 15, 6, NULL, 'AVVENIMENTI STRAORDINARI DI P.S.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (321, 15, 6, 1, 'TERREMOTI, INONDAZIONI, FRANE, SEGNALAZIONI E PROV') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (322, 15, 6, 2, 'SCIOPERI,TUMULTI,DISORDINI,SEGNALAZIONI E PROVVEDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (323, 15, 6, 3, 'DISGRAZIE,OMICIDI,SUICIDI,INVESTIMENTI,SCOMPARSA P') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (324, 15, 6, 4, 'OGGETTI SMARRITI E RINVENUTI, NORME,ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (325, 15, 6, 5, 'FURTI E RAPINE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (326, 15, 6, 6, 'CAROVANE ZINGARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (327, 15, 7, NULL, 'SERVIZIO ANTI-INCENDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (328, 15, 7, 1, 'INCENDI,ATTI,ELENCHI,NORME,PREVENZIONI,DENUNZIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (329, 15, 7, 2, 'PERSONALE - SPESE - REGOLAMENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (330, 15, 7, 3, 'SERVIZIO ANTI INCENDI, NORME, CONTRIBUTI, ATTI VAR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (331, 15, 8, NULL, 'CARABINIERI, AGENTI DI PS') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (332, 15, 8, 1, 'CARABINIERI STAZIONE DEI CARABINIERI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (333, 15, 8, 2, 'AGENTI DI PS') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (334, 15, 9, NULL, 'CIRCOLARI E DISPOSIZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (335, 15, 9, 1, 'NORME E CIRCOLARI RIGUARDANTI LA 15\' CATEGORIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (336, 15, 9, 2, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARD. LA 15\' CA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (337, 2, NULL, NULL, 'OPERE PIE E BENFICENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (338, 2, 1, NULL, 'EX ECA ED ALTRE OPERE PIE - ASSISTENZA E BENEFICEN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (339, 2, 1, 1, 'AMMINISTRAZIONE EX ECA, ATTI VARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (340, 2, 1, 2, 'ALTRE OPERE PIE PER ASSISTENZA E BENEFICENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (341, 2, 1, 3, 'ANZIANI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (342, 2, 1, 4, 'MONTI DI PIETA\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (343, 2, 1, 5, 'LASCITI E DONAZIONI AD OPERE DI ASSISTENZA E BEN.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (344, 2, 1, 6, 'ASSISTENZA SOCIALE, ESENZIONE TICKET SANITARI ETC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (345, 2, 1, 7, 'INVALIDI CIVILI, CIECHI E SORDOMUTI, INABILI DEL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (346, 2, 1, 8, 'SOCCORSI INVERNALI, ELENCO ASSISTITI, SCHEDATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (347, 2, 1, 9, 'ASSISTENZA A CITTADINI EXTRACOMUNITARI E APOLIDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (348, 2, 2, NULL, 'RICOVERI, OSPIZI, ...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (349, 2, 2, 1, 'OSPIZI E RICOVERI INDIGENTI, RETTE, DIMISSIONI E A') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (350, 2, 2, 2, 'SANATORI, DISPENSARI, ASSISTENZA E CURA TBC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (351, 2, 2, 3, 'COLONIE MARINE , MONTANE, CLIMATICHE, FLUVIALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (352, 2, 2, 4, 'ELENCO POVERI, INDIGENTI, INABILI, SOMMINISTRAZ.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (353, 2, 2, 5, 'OSPIZI E RICOVERI CIECHI E SORDOMUTI CRONICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (354, 2, 2, 6, 'REFETTORI POVERI, CUCINE ECONOMICHE, DORMITORI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (355, 2, 2, 7, 'ASSISTENZA SANITARIA, TICKETS, NORMATIVA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (356, 2, 2, 8, 'ASSISTENZA DOMICIALIARE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (357, 2, 3, NULL, 'BREFOTROFI, ORFANATROFI, ESPOSTI, ECC...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (358, 2, 3, 1, 'BREFOTROFI E ORFANOTROFI, RACHITICI, CONTRIBUTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (359, 2, 3, 2, 'ESPOSTI ED ILLEGITTIMI, BALIATICO, SUSSIDI ETC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (360, 2, 3, 3, 'ASSISTENZA GENERICA MADRI E FANCIULLI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (361, 2, 3, 4, 'CONSULTORI PEDIATRICI ED OSTETRICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (362, 2, 3, 5, 'AFFIDAMENTO FAMILIARE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (363, 2, 4, NULL, 'SOCIETA\' DI MUTUO SOCCORSO, ISTITUTI DI INDOLE SOC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (364, 2, 4, 1, 'SOCIETA\' OPERAIE DI MUTUO SOCCORSO E DI PUBBLICA AS') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (365, 2, 4, 2, 'CROCE ROSSA ITALIANA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (366, 2, 4, 3, 'COOPERATIVE DI ASSISTENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (367, 2, 4, 4, 'RACCOLTA CARTA, STRACCI, MATERIALE FERROSO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (368, 2, 4, 5, 'OBLAZIONI PER CALAMITA\' NATURALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (369, 2, 5, NULL, 'LOTTERIE, TOMBOLE, FIERE DI BENEFICENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (370, 2, 5, 1, 'LOTTERIE E TOMBOLE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (371, 2, 5, 2, 'FIERE E SPETTACOLI DI BENEFICENZA, ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (372, 2, 5, 3, 'CELEBRAZIONE DEL PANE, ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (373, 2, 5, 4, 'BANCHI DI BENEFICENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (374, 2, 6, NULL, 'CIRCOLARI E NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (375, 2, 6, 1, 'CIRCOLARI, NORME E DISPOSIZIONI DELLA II CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (376, 2, 6, 2, 'MANIFESTI ED AVVISI AL PUBBLICO DELLA II CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (377, 3, NULL, NULL, 'POLIZIA URBANA E RURALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (378, 3, 1, NULL, 'PERSONALE GUARDIE VIGILI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (379, 3, 1, 1, 'GUARDIE E VIGILI MUNICIPALI ED URBANI, CONCORSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (380, 3, 1, 2, 'GUARDIE BOSCHIVE E CAMPESTRI, CONCORSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (381, 3, 1, 3, 'ACCALAPPIACANI, SPAZZINI, ECC., ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (382, 3, 2, NULL, 'SERVIZI E REGOLAMENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (383, 3, 2, 1, 'REGOLAMENTO E SERVIZIO DI POLIZIA URBANA E RURALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (384, 3, 2, 2, 'REGOLAMENTO E SERVIZIO DI NETTEZZA PUBBLICA, SPAZZ') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (385, 3, 2, 3, 'REGOLAMENTO E SERVIZIO DI AFFISSIONI E POSTEGGIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (386, 3, 2, 4, 'VERIFICA E PUNZONATURA VEICOLI, NORME ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (387, 3, 2, 5, 'PTOTEZIONE ANIMALI, VERBALI, DENUNZIE ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (388, 3, 2, 6, 'OCCUPAZIONE PERMANENTE E TEMPORANEA DI AREE PUBBLI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (389, 3, 2, 7, 'BARCHE, BATTELLI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (390, 3, 3, NULL, 'CIRCOLAZIONE URBANA SEGNALAZIONI ED INDICAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (391, 3, 3, 1, 'REGOLAMENTO E SERVIZIO DI CIRCOLAZIONE URBANA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (392, 3, 3, 2, 'REGOLAMENTO E SERVIZIO DI AUTONOLEGGIO DA PIAZZA E') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (393, 3, 3, 3, 'PIANO URBANO DEL TRAFFICO, PARCHEGGI PUBBLICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (394, 3, 4, NULL, 'CIRCOLARI E DISPOSIZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (395, 3, 4, 1, 'CIRCOLARI, NORME E DISPOSIZIONI DELLA III CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (396, 3, 4, 2, ' MANIFESTI ED AVVISI AL PUBBLICO DELLA III CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (397, 4, NULL, NULL, 'SANITA\' ED IGIENE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (398, 4, 1, NULL, 'AUTORITA\' SANITARIE E PERSONALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (399, 4, 1, 1, 'SERVIZIO SANITARIO NAZIONALE, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (400, 4, 1, 2, 'SERVIZIO SANITARIO REGIONALE, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (401, 4, 1, 3, 'UNITA\' SANITARIA LOCALE, AMMINISTRAZIONE E DIREZION') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (402, 4, 1, 4, 'DISTRETTO SANITARIO, COMITATO DI BASE DEL DISTRETT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (403, 4, 1, 5, 'PERSONALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (404, 4, 1, 6, 'SCUOLE E RIQUALIFICAZIONE DEL PERSONALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (405, 4, 1, 7, 'ORDINI PROF. SANITARI, FARMACISTI, OSTETRICHE ..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (406, 4, 2, NULL, 'EDIFICI E LOCALI SANITARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (407, 4, 2, 1, 'PLESSI OSPEDALIERI, POLIAMBULATORI, AMBULATORI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (408, 4, 3, NULL, 'SERVIZI SANITARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (409, 4, 3, 1, 'EDUCAZIONE SANITARIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (410, 4, 3, 10, 'ASSISTENZA FARMACEUTICA E VIGILANZA SULLE FARMACIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (411, 4, 3, 11, 'ACCERTAMENTI, CERTIFICAZI. E PRESTAZ.MEDICO-LEGAL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (412, 4, 3, 12, 'CONSULTORI FAMILIARI, ATTIVITA\' INFORMATIVA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (413, 4, 3, 2, 'PREVENZIONE DELLE MALATTIE FISICHE E PSICHICHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (414, 4, 3, 3, 'PROTEZIONE SANITARIA MATERNO-INFANTILE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (415, 4, 3, 4, 'MEDICINA SCOLASTICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (416, 4, 3, 5, 'MEDICINA DEL LAVORO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (417, 4, 3, 6, 'MEDICINA DELLO SPORT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (418, 4, 3, 7, 'ASSISTENZA MEDICO-GENERICA, DOMICILIARE, AMBULATOR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (419, 4, 3, 8, 'ASSISTENZA OSPEDALIERA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (420, 4, 3, 9, 'RIABILITAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (421, 4, 4, NULL, 'EPIDEMIE, MALATTIE CONTAGIOSE, EPIZOOZIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (422, 4, 4, 1, 'EPIDEMIE, CONTAGI, ORDINANZE, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (423, 4, 4, 2, 'VACCINAZIONI, STATISTICHE, REGISTRI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (424, 4, 4, 3, 'PROFILASSI VETERINARIA, EPIZOOZIE, RAPPORTI ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (425, 4, 4, 4, 'MONTICAZIONE E DEMONTICAZIONE, MIGRAZIONI, CERTIFI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (426, 4, 4, 5, 'IDROFOBIA, MORSICATURE, NORME, STATISTICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (427, 4, 4, 6, 'AVIS') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (428, 4, 4, 7, 'DISINFEZIONI, DISINFETTANTI ED APPARECCHI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (429, 4, 5, NULL, 'SANITA\' MARITTIMA, LOCALI D\'ISOLAMENTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (430, 4, 5, 1, 'SANITA\' MARITTIMA, IGIENE DEI PORTI, ORDINANZE ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (431, 4, 5, 2, 'LAZZARETTI, LOCALI D\'ISOLAMENTO, ELENCHI, ATTI VAR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (432, 4, 6, NULL, 'IGIENE PUBBLICA, REGOLAMENTI, MACELLI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (433, 4, 6, 1, 'REGOLAMENTO D\'IGIENE, ORDINANZE, ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (434, 4, 6, 10, 'ACCERTAMENTI, CERTIFICAZIONI NELL\'IGIENE PUBBLICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (435, 4, 6, 11, 'REGOLAMENTO PER ATTIVITA\' DI BARBIERE E PARRUCCHIER') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (436, 4, 6, 12, 'FABBRICHE ACQUA GASSATA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (437, 4, 6, 13, 'CELLE FRIGORIFERE, FRIGORIFERI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (438, 4, 6, 14, 'ABBEVERATOI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (439, 4, 6, 2, 'REGOLAMENTI E NORME DI POLIZIA SANITARIA E ZOOIAT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (440, 4, 6, 3, 'CONCIMAIE, REGOLAMENTI, ORDINANZE, STATISTICHE ECC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (441, 4, 6, 4, 'MACELLO, PESCHERIA, BASSA MACELLERIA, REGOLAMENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (442, 4, 6, 5, 'BAGNI E PISCINE PUBBLICHE, FABBRICHE INSALUBRI, NO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (443, 4, 6, 6, 'AMBIENTE - ARIA - SUOLI - ECOLOGIA - DEPURAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (444, 4, 6, 7, 'IGIENE DEGLI EDIFICI SCOLASTICI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (445, 4, 6, 8, 'IGIENE NEI POSTI DI LAVORO, RUMOROSITA\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (446, 4, 6, 9, 'IGIENE DELLA PRODUZ. LAVORAZ... DI ALIMENTI E BEVA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (447, 4, 7, NULL, 'POLIZIA MORTUARIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (448, 4, 7, 1, 'REGOLAMENTO CIMITERIALE, OSSARI, LAPIDI ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (449, 4, 7, 2, 'PERSONALE DEI CIMITERI, NOMINE, ASSEGNI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (450, 4, 7, 3, 'CIMITERI E COLOMBARI, TOMBE, COSTRUZIONE ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (451, 4, 7, 4, 'PERMESSI DI SEPPELLIMENTO E D\'ESUMAZIONE, AUTOPSIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (452, 4, 7, 5, 'SERVIZIO TRASPORTI FUNEBRI, REGOLAMENTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (453, 4, 7, 6, 'COMMISSIONE VIGILANZA CIMITERO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (454, 4, 8, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (455, 4, 8, 1, 'NORME, DISPOSIZIONI E CIRCOLARI DELLA IV CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (456, 4, 8, 2, 'MANIFESTI ED AVVISI AL PUBBLICO DELLA IV CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (457, 5, NULL, NULL, 'FINANZE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (458, 5, 1, NULL, 'PROPRIETA\' COMUNALI. INVENTARI BENI. DEBITI E CREDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (459, 5, 1, 1, 'ATTI CANONI USI CENSI DONAZIONI EREDITA INVENTARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (460, 5, 1, 10, 'TARIFFE PORTUALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (461, 5, 1, 2, 'ACQUISTI ED ALIENAZIONI, ATTI, CONTRATTI, APPALTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (462, 5, 1, 3, 'AFFITTANZE, CONTRATTI, APPALTI ...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (463, 5, 1, 4, 'COSTRUZIONE E MANUTENZIONE BENI RUSTICI, ASSICUR.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (464, 5, 1, 5, 'TITOLI DI RENDITA PUBBLICA,ELENCHI, ACQUISTI,CAUZ.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (465, 5, 1, 6, 'DEBITI NON MUTUATI, NON CONSOLIDATI O FUORI BILANC') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (466, 5, 1, 8, 'VENDITA TAGLIO BOSCHI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (467, 5, 1, 9, 'VENDITA OGGETTI FUORI USO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (468, 5, 10, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (469, 5, 10, 1, 'CIRCOLARI, NORME, DISPOSIZIONI DELLA V CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (470, 5, 10, 2, 'MANIFESTI ED AVVISI DELLA V CATEGORIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (471, 5, 2, NULL, 'BILANCI, CONTI, CONTABILITA\'. VERIFICHE DI CASSA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (472, 5, 2, 1, 'BILANCI DI PREVISIONE, FINANZA LOCALE, STORNI ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (473, 5, 2, 2, 'CONTI CONSUNTIVI, PEZZE GIUSTIFICATIVE ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (474, 5, 2, 3, 'VERIFICHE DI CASSA E DI CHIUSURA DI ESERCIZIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (475, 5, 2, 4, 'IMPOSTE E TASSE ED ALTRI TRIBUTI A CARICO DEL COMU') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (476, 5, 2, 5, 'CONTABILITA\' ARRETRATA E SPECIALE, CORTE DEI CONTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (477, 5, 2, 6, 'PIANI FINANZIARI - PIANI ECONOMICI -') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (478, 5, 2, 7, 'ALBI BENEFICIARI PROVVIDENZE ECONOMICHE, RENDICONT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (479, 5, 3, NULL, 'IMPOSTE E TASSE ERARIALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (480, 5, 3, 1, 'IMPOSTA SUL REDDITO PERSONE FISICHE E GIURIDICHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (481, 5, 3, 2, 'RUOLI, AVVISI, RICORSI, PUBBLICAZIONI, DICHIARAZ,') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (482, 5, 3, 3, 'COMMISSIONI TRIBUTARIE PROV. E REGIONALI, IMPOSTE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (483, 5, 3, 4, 'ANAGRAFE TRIBUTARIE, NORME, ATTI, CODICE FISCALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (484, 5, 3, 5, 'CONTRIBUTI SINDACALI, NORME, RUOLI, NOTIFICHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (485, 5, 3, 6, 'IMPOSTA SUL VALORE AGGIUNTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (486, 5, 3, 7, 'CONCESSIONI TASSE GOVERNATIVE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (487, 5, 4, NULL, 'IMPOSTE E TASSE COMUNALI .....') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (488, 5, 4, 1, 'ICIAP, TOSAP, TARIFFE E REGOLAMENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (489, 5, 4, 2, 'ACCERTAMENTI, DENUNZIE, RUOLI, SGRAVI ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (490, 5, 4, 3, 'IMPOSTE E TASSE PROVINCIALI, TARIFFE E REGOLAMENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (491, 5, 4, 4, 'CONSIGLIO TRIBUTARIO, COMMISSIONI TRIBUTARIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (492, 5, 4, 5, 'DIRITTI DI SEGRETERIA E DI STATO CIVILE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (493, 5, 4, 6, 'CONCESSIONE TASSE COMUNALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (494, 5, 4, 7, 'CONTRIBUTI PER ONERI DI URBANIZZAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (495, 5, 4, 8, 'SCUOLE ELEMENTARI E MEDIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (496, 5, 5, NULL, 'DIRITTI DI MACELLAZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (497, 5, 5, 1, 'DIRITTI E PROVENTI VARI DI MACELLAZIONE PROPRIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (498, 5, 6, NULL, 'CATASTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (499, 5, 6, 1, 'CATASTO E MAPPE, NORME, REVISIONI ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (500, 5, 6, 2, 'COMMISSIONE CENSUARIA COMUNALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (501, 5, 6, 3, 'CLASSIFICAZIONE TERRENI, IPOTECHE, ESTIMI CATASTAL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (502, 5, 7, NULL, 'PRIVATIVE, UFFICI FINANZIARI E MONETE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (503, 5, 7, 1, 'MONOPOLI, PRIVATIVE ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (504, 5, 7, 2, 'UFFICIO DEL REGISTRO E DELLE IMPOSTE, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (505, 5, 7, 3, 'DOGANE E TASSE DOGANALI, CONTRABBANDO, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (506, 5, 7, 4, 'ZECCA GOVERNATIVA, MONETE E DENARO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (507, 5, 7, 5, 'BANCHI DEL LOTTO, LOTTERIE E TOMBOLE, NORME ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (508, 5, 7, 6, 'POLIZIA GIUDIZIARIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (509, 5, 8, NULL, 'MUTUI E PRESTITI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (510, 5, 8, 1, 'MUTUI PASSIVI, NORME, ATTI, DOMANDE NON RIUSCITE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (511, 5, 8, 2, 'MUTUI CON CASSA DEPOSITO E PRESTITI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (512, 5, 8, 3, 'MUTUI CON CASSE DI RISPARMIO, BANCHE E ENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (513, 5, 8, 4, 'MUTUI ATTIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (514, 5, 8, 5, 'MUTUI DIVERSI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (515, 5, 8, 6, 'VARIAZIONI TASSI DI SCONTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (516, 5, 8, 7, 'CONTRIBUTI AD ENTI VARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (517, 5, 9, NULL, 'SERVIZIO DI ESATTORIA E TESORERIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (518, 5, 9, 1, 'SERVIZIO DI TESORERIA, APPALTO, NOMINA, CONTRATTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (519, 5, 9, 2, 'INTERESSI PER ANTICIPAZIONI DI CASSA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (520, 5, 9, 3, 'PROVENTI, INCHIESTE, SORVEGLIANZE ECC.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (521, 5, 9, 4, 'DEPOSITI CAUZIONALI DI TERZI IN CONSEGNA AL TESORI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (522, 5, 9, 5, 'TITOLI DEL COMUNE IN DEPOSITO AL TESORIERE, ELENCH') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (523, 5, 9, 6, 'CONCESSIONARIO DELLA RISCOSSIONE DELLE IMPOSTE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (524, 5, 9, 7, 'AGENTI DELLA RISCOSSIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (525, 6, NULL, NULL, 'GOVERNO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (526, 6, 1, NULL, 'LEGGI E DECRETI. FOGLI PERIODICI,GOVERN. GOVERNO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (527, 6, 1, 1, 'LEGGI DECRETI-GAZZETTA UFF.-BOLLETTINO UFF. REGION') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (528, 6, 1, 2, 'BOLLETTINO UFFICIALE DELLA PREFETTURA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (529, 6, 1, 3, 'CAPO DELLO STATO-MINISTRI E FUNZION.- GOVERNO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (530, 6, 1, 4, 'CIRCOLARI, MESSAGGI, MANIFESTI PROCLAMI DEL GOVENO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (531, 6, 1, 5, 'AFFARI CIVILI E DI GOVERNO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (532, 6, 1, 6, 'PREFETTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (533, 6, 1, 7, 'RAPPORTI TRA STATO E REGIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (534, 6, 2, NULL, 'FESTE NAZIONALI, COMMEMOR, CERIMONIE,RICEVIMENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (535, 6, 2, 1, 'FESTE NAZIONALI,SOLENNITA\' CIVILI, BANDIERA E INNI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (536, 6, 2, 2, 'COMMEMORAZ.,CERIMONIE,VISITE DI PERSONALITA\',MANIF') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (537, 6, 3, NULL, 'ELEZIONI POLITICHE E LISTE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (538, 6, 3, 1, 'ELENCHI PREPARATORI,LISTE PERMANENTI E DI SEZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (539, 6, 3, 2, 'ISCRIZIONI E CANCELLAZIONI, ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (540, 6, 3, 3, 'SEZIONI ELETTORALI, LOCALI CABINE, URNE E ARREDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (541, 6, 3, 4, 'SEGGI ELETTORALI, COMPONENTI,NOMINE,ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (542, 6, 3, 5, 'COMM. ELETTORALE COMUNALE E CIRCONDARIALE,ATTI REL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (543, 6, 3, 6, 'ESITI E STATISTICHE ELEZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (544, 6, 3, 7, 'NORME E DISPOSIZIONI, SPAZI PROPAGANDA ELETTORALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (545, 6, 3, 8, 'REFERENDUM') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (546, 6, 3, 9, 'CAMERA DEI DEPUTATI,SENATO DELLA REPUBB.,PARLAMENT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (547, 6, 4, NULL, 'AZIONI DI VALOR CIVILE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (548, 6, 4, 1, 'AZIONI DI VALOR CIVILE,RICOMPENSE,MEDAGLIE,BENEMER') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (549, 6, 5, NULL, 'CONCESSIONI GOVERNATIVE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (550, 6, 5, 1, 'CONCESSIONI VARIE,TITOLI NOBILIARI,ONORIFICIENZE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (551, 6, 5, 2, 'CONSULTA ARALDICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (552, 6, 5, 3, 'PENSIONI E SUSSIDI GOVERNATIVI STRAORDINARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (553, 6, 6, NULL, 'PARTITI E LORO ORGANIZZAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (554, 6, 6, 1, 'PARTITI E LORO ORGANIZZAZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (555, 6, 6, 2, 'NORME ED ATTI GENERALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (556, 6, 6, 3, 'ASSOCIAZIONI DIVERSE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (557, 6, 7, NULL, 'REGIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (558, 6, 7, 1, 'LEGGI E DECRETI REGIONALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (559, 6, 7, 2, 'ORGANI DELLA REGIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (560, 6, 7, 3, 'RAPPORTO TRA REGIONE E COMUNE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (561, 6, 7, 4, 'CONTROLLO SUI COMUNI E CONSORZI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (562, 6, 7, 5, 'UFFICI REGIONALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (563, 6, 7, 6, 'RIVISTE E PUBBLICAZIONI REGIONALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (564, 6, 8, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (565, 6, 8, 1, 'CIRCOLARI,NORME E DISPOSIZIONI GENERALI DELLA 6\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (566, 6, 8, 2, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARDANTI LA 6\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (567, 7, NULL, NULL, 'GRAZIA GIUSTIZIA E CULTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (568, 7, 1, NULL, 'CIRCOSCRIZIONE GIUDIZIARIA. PRETURA, TRIBUNALE...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (569, 7, 1, 1, 'TRIB.DEI MINORI,GIUDICE DI PACE,PRETURA, TRIBUNALE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (570, 7, 1, 2, 'SPESE PER DETTI UFFICI, RIPARTO , VARIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (571, 7, 1, 3, 'BANDI E NOTIFICHE GIUDIZIARIE,CERTIFICATI DI RITO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (572, 7, 1, 4, 'PROTESTI CAMBIARI ESEGUITI DAL SEGRETARIO,NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (573, 7, 1, 5, 'GRATUITO PATROCINIO,NORME CERTIFICATI INTERDIZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (574, 7, 1, 6, 'AMNISTIE,GRAZIE,INDULTI,PERDONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (575, 7, 2, NULL, 'ASSESSORI. GIURATI ALLE CORTI D\'ASSISE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (576, 7, 2, 1, 'FESTE NAZIONALI, SOLENNITA\' CIVILI, BANDIERA E INN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (577, 7, 2, 2, 'COMMEMORAZ., CERIMONIE, VISITE DI PERSONALITA\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (578, 7, 3, NULL, 'CARCERI MANDAMENTALI E GIUDIZIALI. PENITENZIARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (579, 7, 3, 1, 'CASA CIRCONDARIALE E SPESE RELATIVE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (580, 7, 3, 2, 'PERSONALE,NOMINE,ASSEGNI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (581, 7, 3, 3, 'COMM. VISITATRICE E DI BENEFICIENZA AI CARCERATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (582, 7, 3, 4, 'CARCERI GIUDIZIARIE PENITENZIARI, SPESE RELATIVE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (583, 7, 4, NULL, 'UFFICIO E GIUDICE CONCILIATORE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (584, 7, 4, 1, 'CONCILIATORE E VICE,NORME NOMINE LISTE,CANCELLIERE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (585, 7, 4, 2, 'UFFICIO DEL CONCILIATORE, REGISTRI, ATTI , UDIENZE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (586, 7, 4, 3, 'CONSIGLI DI FAMIGLIA E DI TUTELA,CONVOCAZIONI,NORM') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (587, 7, 4, 4, 'NOTIFICHE MESSO CONCILIATORE,PIGNORAMENTI,ASTE VEN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (588, 7, 4, 5, 'DIFENSORE CIVICO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (589, 7, 5, NULL, 'ARCHIVIO NOTARILE. NOTAI E ALTRE PROFESSIONI LEGAL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (590, 7, 5, 1, 'ARCHIVIO NOTARILE,PERSONALE RELATIVO,SPESE INERENT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (591, 7, 5, 2, 'NOTAI,ALBO EL ELENCO DEI NOTAI, SINDACATO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (592, 7, 5, 3, 'AVVOCATI ,PROCURATORI ,ALTRE PROFF.LEGALI ,ALBI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (593, 7, 6, NULL, 'CULTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (594, 7, 6, 1, 'EDIFICI ADDETTI AL CULTO,LEGATI DI CULTO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (595, 7, 6, 2, 'CLERO, PARROCI ,SEMINARI, ISTITUTI RELIGIOSI,ORDIN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (596, 7, 6, 3, 'OPERE,ASS. E CORPORAZIONI LAICALI D\'INDOLE RELIGIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (597, 7, 6, 4, 'COMITATO ANTIBLASFEMO, PROPAGANDA RELIGIOSA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (598, 7, 6, 5, 'CULTI E RELIGIONI NON CATTOLICHE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (599, 7, 7, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (600, 7, 7, 1, 'CIRCOLARI NORME DISPOSIZIONI D\'INDOLE DELLA 7\' CAT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (601, 7, 7, 2, 'GIUSTIZIA AMMINISTRATIVA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (602, 7, 7, 3, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARDANTI LA 7\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (603, 8, NULL, NULL, 'LEVA, TRUPPE, SERVIZI MILITARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (604, 8, 1, NULL, 'LEVA DI TERRA, DI MARE E D\'ARIA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (605, 8, 1, 1, 'ELENCHI PREPARATORI,LISTE DI LEVA,SPESE LOCALI ...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (606, 8, 1, 2, 'VISITE D\'ARRUOLAMENTO,UFFICIO LEVA,RIFORMATI NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (607, 8, 1, 3, 'RUOLI MATRICOLATI,COPIE,NORME,RICHIESTE,ATTI RELAT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (608, 8, 1, 4, 'CHIAMATA ALLE ARMI,PER ISTRUZIONE,LICENZE,CONGEDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (609, 8, 1, 5, 'ARRUOLAMENTI SPECIALI,VOLONTARI,CORSI ALLIEVI,NORM') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (610, 8, 1, 6, 'OBIETTORI DI COSCIENZA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (611, 8, 2, NULL, 'SERVIZI MILITARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (612, 8, 2, 1, 'COMANDI MILITARI,DISCIPLINA DI GUERRA,PROVV.ANNONA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (613, 8, 2, 2, 'MOBILITAZIONE CIVILE,COMITATO DI RESISTENZA CIVILE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (614, 8, 2, 3, 'REQUISIZIONI QUADRUPEDI,VEICOLI E DERRATE,NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (615, 8, 2, 4, 'DANNI DI GUERRA,DENUNZIE LIQUIDAZIONI,SERVITU\' MIL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (616, 8, 2, 5, 'SUSSIDI MILITARI,COMMISSIONE COMUNALE,CONTABILITA\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (617, 8, 2, 6, 'UFFICIO NOTIZIE,NORME,ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (618, 8, 2, 7, 'AFFARI MILITARI STAORDINARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (619, 8, 3, NULL, 'TIRO A SEGNO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (620, 8, 3, 1, 'SOCIETA\' DI TIRO A SEGNO,SEZIONI SEDI CONTRIBUTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (621, 8, 3, 2, 'POLIGONI DI TIRO,GARE,SUSSIDI,NORME,ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (622, 8, 4, NULL, 'COMBATTENTI E LORO FAMIGLIE. PENSIONI DI GUERRA ..') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (623, 8, 4, 1, 'PENSIONI DI GUERRA,POLIZZE EX COMBATTENTI,ATTI REL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (624, 8, 4, 2, 'COMBATTENTI,REDUCI,PARTIGIANI,PATRIOTTI,MORTI DISP') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (625, 8, 4, 3, 'ORFANI E VEDOVE,MADRE E FAMIGLIE DI CADUTI,NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (626, 8, 4, 4, 'DECORATI,ONORIFICENZE,COMMEMORAZIONI, MONUMENTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (627, 8, 5, NULL, 'CASERME ED ALLOGGI MILITARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (628, 8, 5, 1, 'CASERME FORTEZZE OSPEDALI INFERMERIE,NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (629, 8, 5, 2, 'ALLOGGI MILITARI, NORME, RUOLI OBBLIGATI, SPESE...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (630, 8, 5, 3, 'CAMPI DI ISTRUZIONE MILITARE,PIAZZE D\'ARMI, NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (631, 8, 6, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (632, 8, 6, 1, 'CIRCOLARI,NORME RIGUARDANTI L\'8\' CAT.') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (633, 8, 6, 2, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARDANTI L\'8\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (634, 9, NULL, NULL, 'ISTRUZIONE E CULTURA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (635, 9, 1, NULL, 'AUTORITA\' SCOLASTICHE. INSEGNANTI. ISTITUZIONI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (636, 9, 1, 1, 'CENTRO CONSORTILE SCOLASTICO,COMM.VIGILANZA,AUTORI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (637, 9, 1, 2, 'INSEGNANTI SCUOLE SPECIALI,PERSONALE SUBALTERNO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (638, 9, 1, 3, 'MUTUALITA\' SCOLASTICA, BORSE DI STUDIO E SUSSIDI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (639, 9, 1, 4, 'COMM.GIOVENTU\' ITALIANA,GIOCHI DELLA GIOVENTU\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (640, 9, 1, 5, 'CONSIGLIO DI DISTRETTO SCOLASTICO,ASSOC. GENITORI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (641, 9, 1, 6, 'SERVIZIO MEDICO, PSICO-PEDAGOGICO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (642, 9, 2, NULL, 'ASILI D\'INFANZIA E SCUOLE ELEMENTARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (643, 9, 2, 1, 'ASILI NIDO,SCUOLE MATERNE,PERSONALE INSEGNANTE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (644, 9, 2, 2, 'SCUOLE ELEMENTARI,EDIFICI,COSTRUZIONE MANUTENZIONE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (645, 9, 2, 3, 'SC. ELEMENTARI,ESAMI,APERTURA E CHIUSURA,') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (646, 9, 2, 4, 'CONTRIBUTI SCOLASTICI ALLO STATO E DALLO STATO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (647, 9, 2, 5, 'MONTE PENSIONI INSEGNANTI,ORFANI E PENSIONATI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (648, 9, 2, 6, 'MATERIALE SCOLASTICO,STAMPATI-RADIO-TV-NELLE SCUOL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (649, 9, 2, 7, 'TRASPORTO ALUNNI,ASSISTENZA SCOLASTICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (650, 9, 2, 8, 'REFEZIONE SCOLASTICA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (651, 9, 2, 9, 'ORGANI COLLEGIALI SCUOLA MATERNA ED ELEMENTARE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (652, 9, 3, NULL, 'EDUCATORI COMUNALI. ISTITUZIONI GOVERNATIVE .....') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (653, 9, 3, 1, 'EDUCATORI E COLLEGI, SCUOLE ARTIGIANE E DI AVVIAME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (654, 9, 3, 2, 'SCUOLE MUSICALI,SERALI,CORALI E BELLE ARTI, BANDA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (655, 9, 3, 3, 'CIRCOLI ED ASSOCIAZIONI DEI CULTURA E RITROVO,TEMP') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (656, 9, 3, 4, 'SOCIETA\' SPORTIVE,PALESTRE GINNICHE,CAMPI SPORTIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (657, 9, 3, 5, 'ISTITUTI D\'ARTE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (658, 9, 4, NULL, 'SCUOLE MEDIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (659, 9, 4, 1, 'GINNASI E LICEI, ISTITUZIONE,FUNZIONAMENTO,NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (660, 9, 4, 2, 'CONVITTI E COLLEGI,ISTITUZIONI DI EDUCAZIONE PRIVA') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (661, 9, 4, 3, 'ISTITUTI TECNICI, INDUSTRIALI E COMMERCIALI,NORME') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (662, 9, 4, 4, 'ISTITUTI MAGISTRALI,PROFESSIONALI E COMPLEMENTARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (663, 9, 4, 5, 'SCUOLE AGRARIE,NORME, ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (664, 9, 4, 6, 'CONSIGLIO D\'ISTITUTO ED ALTRI ORGANI COLLEGIALI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (665, 9, 4, 7, 'TIROCINI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (666, 9, 4, 8, 'ISTITUTO COMPRENSIVO SCUOLE ELEMENTARI E MEDIE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (667, 9, 5, NULL, 'UNIVERSITA\'') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (668, 9, 5, 1, 'UNIVERSITA\',COSTITUZIONE, EDIFICI,ATTI RELATIVI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (669, 9, 5, 2, 'SCUOLE SUPERIORI,COSTITUZIONE,EDIFICI,ATTI RELATIV') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (670, 9, 5, 3, 'ACCADEMIA BELLE ARTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (671, 9, 6, NULL, 'ISTITUTI SCIENTIFICI. BIBLIOTECHE. MUSEI...') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (672, 9, 6, 1, 'ISTITUTI SCIENTIFICI IN GENERE,NORME ED ATTI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (673, 9, 6, 2, 'BIBLIOTECHE,COSTITUZIONE REGOLAMENTI,CENTO DI LETT') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (674, 9, 6, 3, 'GALLERIE,PINACOTECHE,MUSEI,SOVRINTENDENZA BELLE AR') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (675, 9, 6, 4, 'SOCIETA\' DANTE ALIGHIERI,ISTITUTI DI CULTURA ED AN') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (676, 9, 6, 5, 'ESPOSIZIONI,MANIFESTAZIONI,CONGRESSI ATTIVITA\' CUL') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (677, 9, 6, 6, 'DIRITTO ALLO STUDIO') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (678, 9, 6, 7, 'ANTICHITA\' E BELLE ARTI,BENI CULTURALI,OGGETTI D\'A') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (679, 9, 7, NULL, 'CIRCOLARI') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (680, 9, 7, 1, 'CIRCOLARI,NORME,DISPSIZIONI RIGUARDANTI LA 9\' CATE') ;; insert into Anagrafiche.CategorieArchivio (IDCategoriaArchivio, Categoria, Classe, Fascicolo, Descrizione) values (681, 9, 7, 2, 'MANIFESTI ED AVVISI AL PUBBLICO RIGUARDANTI LA 9\'') ;;
Le relazioni descrivono il ''modo'' in cui due soggetti sono collegati tra loro. Esempi potrebbero essere il Sindaco (persona) di un Comune (ente), o la filiale (azienda) della casa madre (azienda).
Informazioni sui singoli campi
Generatore Anagrafiche.Gen_IDRelazione
create sequence Anagrafiche.Gen_IDRelazione
Anagrafiche.Relazioni
create table Anagrafiche.Relazioni ( IDRelazione smallid_t not null, Descrizione tinystring_t, Asx boolean_t default FALSE, Psx boolean_t default FALSE, Esx boolean_t default FALSE, Adx boolean_t default FALSE, Pdx boolean_t default FALSE, Edx boolean_t default FALSE, constraint PKRelazione primary key (IDRelazione) )
Permessi di accesso
Permessi di accesso a Anagrafiche.Relazioni
grant all privileges on Anagrafiche.Relazioni to group amministratore ;; grant select on Anagrafiche.Relazioni to public ;; grant all privileges on Anagrafiche.Gen_IDRelazione to group amministratore
Dati di base
Anagrafiche.Relazioni di base
insert into Anagrafiche.Relazioni (IDRelazione, Descrizione, Asx, Psx, Esx, Adx, Pdx, Edx)
values (nextval('Anagrafiche.Gen_IDRelazione'), 'relazionato con', TRUE, TRUE, TRUE, TRUE, TRUE, TRUE)
;;
Tabella di collegamento delle relazioni ai soggetti.
Informazioni sui singoli campi
Generatore Anagrafiche.Gen_IDRelazioneSoggetto
create sequence Anagrafiche.Gen_IDRelazioneSoggetto
Anagrafiche.RelazioniSoggetto
create table Anagrafiche.RelazioniSoggetto ( IDRelazioneSoggetto largeid_t not null, IDRelazione smallid_t, IDSoggetto largeid_t, IDSoggettoRelazionato largeid_t, DataNascita date_t, DataCessazione date_t, constraint PK_RelazioneSoggetto primary key (IDRelazioneSoggetto) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.RelazioniSoggetto->Anagrafiche.Soggetti
alter table Anagrafiche.RelazioniSoggetto
add constraint fk_RS_IDSoggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
;;
alter table Anagrafiche.RelazioniSoggetto
add constraint fk_RS_IDSoggettoRelazionato foreign key (IDSoggettoRelazionato)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
FK Anagrafiche.RelazioniSoggetto->Anagrafiche.Relazioni
alter table Anagrafiche.RelazioniSoggetto
add constraint fk_RS_IDRelazione foreign key (IDRelazione)
references Anagrafiche.Relazioni (IDRelazione)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.RelazioniSoggetto
create function Anagrafiche.inizializza_relazionisoggetto()
returns trigger as '
begin
if new.IDRelazioneSoggetto is NULL or new.IDRelazioneSoggetto = 0 then
new.IDRelazioneSoggetto = nextval(''Anagrafiche.Gen_IDRelazioneSoggetto'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_relazionesoggetto
before insert on Anagrafiche.RelazioniSoggetto
for each row execute procedure Anagrafiche.inizializza_relazionisoggetto();
create trigger trg_ins_ts_a_relazionisoggetto
before insert on Anagrafiche.RelazioniSoggetto
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.RelazioniSoggetto
create trigger trg_upd_ts_a_relazionisoggetto
before update on Anagrafiche.RelazioniSoggetto
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.RelazioniSoggetto
grant all privileges on Anagrafiche.RelazioniSoggetto to group amministratore ;; grant select,insert,update,delete on Anagrafiche.RelazioniSoggetto to group anagrafiche ;; grant select on Anagrafiche.RelazioniSoggetto to public ;; grant update on Anagrafiche.Gen_IDRelazioneSoggetto to group amministratore ;; grant update on Anagrafiche.Gen_IDRelazioneSoggetto to group anagrafiche
Per ogni relazione (tizio è dipendente della tale azienda) esiste una relazione di senso opposto (la tale azienda ha tra i suoi dipendenti tizio). Tramite la vista RelazioniSoggettoB viene ottenuta una tabella con un doppio record per ogni inserimento in RelazioniSoggetto, rispettivamente con IDSoggetto e IDSoggettoRelazionato invertiti tra loro, un flag che indica la direzione, e la chiave primaria in negativo (per mantenere univocità).
In questo modo è possibile selezionare tramite IDSoggetto le relazioni di un soggetto, e sapere che direzione utilizzare per ricostruire la semantica della frase.
Vista relazioni e relazioni inverse
create view Anagrafiche.RelazioniSoggettoV as
select rs.IDRelazioneSoggetto
, rs.IDRelazione
, rs.IDSoggetto
, rs.IDSoggettoRelazionato
, rs.DataNascita
, rs.DataCessazione
, FALSE as Invertita
, rs.rec_creato
, rs.rec_creato_da
, rs.rec_modificato
, rs.rec_modificato_da
from anagrafiche.RelazioniSoggetto as rs
union
select (-rs.IDRelazioneSoggetto)
, rs.IDRelazione
, rs.IDSoggettoRelazionato as IDSoggetto
, rs.IDSoggetto as IDSoggettoRelazionato
, rs.DataNascita
, rs.DataCessazione
, TRUE as Invertita
, rs.rec_creato
, rs.rec_creato_da
, rs.rec_modificato
, rs.rec_modificato_da
from anagrafiche.RelazioniSoggetto as rs
;;
create rule RelazioniSoggettoV_insert as on insert to Anagrafiche.RelazioniSoggettoV
do instead
insert into Anagrafiche.RelazioniSoggetto (IDRelazioneSoggetto
, IDRelazione
, IDSoggetto
, IDSoggettoRelazionato
, DataNascita
, DataCessazione
, rec_creato
, rec_creato_da
, rec_modificato
, rec_modificato_da
)
values (new.IDRelazioneSoggetto
, new.IDRelazione
, new.IDSoggetto
, new.IDSoggettoRelazionato
, new.DataNascita
, new.DataCessazione
, new.rec_creato
, new.rec_creato_da
, new.rec_modificato
, new.rec_modificato_da
)
;;
create rule RelazioniSoggettoV_update as on update to Anagrafiche.RelazioniSoggettoV
do instead
update Anagrafiche.RelazioniSoggetto
set IDRelazioneSoggetto = new.IDRelazioneSoggetto
, IDRelazione = new.IDRelazione
, IDSoggetto = new.IDSoggetto
, IDSoggettoRelazionato = new.IDSoggettoRelazionato
, DataNascita = new.DataNascita
, DataCessazione = new.DataCessazione
, rec_creato = new.rec_creato
, rec_creato_da = new.rec_creato_da
, rec_modificato = new.rec_modificato
, rec_modificato_da = new.rec_modificato_da
where
IDRelazioneSoggetto = old.IDRelazioneSoggetto
;;
create rule RelazioniSoggettoV_delete as on delete to Anagrafiche.RelazioniSoggettoV
do instead
delete from Anagrafiche.RelazioniSoggetto where IDRelazioneSoggetto = old.IDRelazioneSoggetto;
Permessi di accesso a Vista relazioni e relazioni inverse
grant all privileges on Anagrafiche.RelazioniSoggettoV to group amministratore ;; grant select,insert,update,delete on Anagrafiche.RelazioniSoggettoV to group anagrafiche ;; grant update on Anagrafiche.Gen_IDRelazioneSoggetto to group amministratore ;; grant update on Anagrafiche.Gen_IDRelazioneSoggetto to group anagrafiche ;; grant select on Anagrafiche.RelazioniSoggettoV to public
Anagrafica dei titoli di studio che un soggetto di tipo persona può avere.
Informazioni sui singoli campi
Generatore Anagrafiche.IDTitoloDiStudio
create sequence Anagrafiche.Gen_IDTitoloDiStudio
Anagrafiche.TitoliDiStudio
create table Anagrafiche.TitoliDiStudio ( IDTitoloDiStudio smallid_t not null, Descrizione longstring_t, TitoliRientranti remark_t, Bonus boolean_t, constraint PK_TitoliDiStudio primary key (IDTitoloDiStudio) ) inherits (TimeStamped)
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.TitoliDiStudio
create function Anagrafiche.inizializza_TitoliDiStudio()
returns trigger as '
begin
if new.IDTitoloDiStudio is NULL or new.IDTitoloDiStudio = 0 then
new.IDTitoloDiStudio = nextval(''Anagrafiche.Gen_IDTitoloDiStudio'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_ts_init_TitoliDiStudio
before insert on Anagrafiche.TitoliDiStudio
for each row execute procedure Anagrafiche.inizializza_TitoliDiStudio();
create trigger trg_ins_ts_p_TitoliDiStudio
before insert on Anagrafiche.TitoliDiStudio
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.TitoliDiStudio
create trigger trg_upd_ts_p_TitoliDiStudio
before update on Anagrafiche.TitoliDiStudio
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.TitoliDiStudio
grant all privileges on Anagrafiche.TitoliDiStudio to group amministratore ;; grant select on Anagrafiche.TitoliDiStudio to public ;; grant all privileges on Anagrafiche.Gen_IDTitoloDiStudio to group amministratore
Dati di base
Anagrafiche.TitoliDiStudio di base
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (1, 'Assolvimento obbligo scolastico', 'Assolvimento scolastico; licenza elementare (in base a data conseguimento); licenza media; avviamento commerciale (in base a data conseguimento)', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (2, 'Attestato o diploma di qualifica professionale', 'Attestati o diplomi di qualifica professionale (di durata almeno biennale)', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (3, 'Diploma di maturità', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (4, 'Laurea (si tratta della laurea triennale)', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (5, 'Laurea specialistica (anche quadriennale)', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (6, 'Formazione post-laurea', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (7, 'Laurea coerente con le attività svolte', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (8, 'Laurea specialistica coerente con le attività svolte', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (9, 'Licenza elementare', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (10, 'Licenza media', '', FALSE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (100, 'Master I livello', '', TRUE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (101, 'Master II livello', '', TRUE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (102, 'Diploma di specializzazione', '', TRUE);
;;
insert into Anagrafiche.TitoliDiStudio (IDTitoloDiStudio, Descrizione, TitoliRientranti, Bonus) values (103, 'Dottorato di ricerca', '', TRUE);
;;
select setval('Anagrafiche.Gen_IDTitoloDiStudio', (select max(idtitolodistudio) from anagrafiche.titolidistudio)+1)
Tabella di collegamento dei TitoliDiStudio posseduti da un soggetto.
Informazioni sui singoli campi
Generatore Anagrafiche.Gen_IDTitoloDiStudioSoggetto
create sequence Anagrafiche.Gen_IDTitoloDiStudioSoggetto
Anagrafiche.TitoliDiStudioSoggetto
create table Anagrafiche.TitoliDiStudioSoggetto ( IDTitoloDiStudioSoggetto largeid_t not null, IDTitoloDiStudio smallid_t, IDSoggetto largeid_t, Descrizione longstring_t, Data date_t, Progressivo smallint_t not null default 0, constraint PK_TitoliDiStudioSoggetto primary key (IDTitoloDiStudioSoggetto) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.TitoliDiStudioSoggetto->Anagrafiche.Soggetti
alter table Anagrafiche.TitoliDiStudioSoggetto
add constraint fk_TDSS_IDSoggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
FK Anagrafiche.TitoliDiStudioSoggetto->Anagrafiche.TitoliDiStudio
alter table Anagrafiche.TitoliDiStudioSoggetto
add constraint fk_TDSS_IDTitoloDiStudio foreign key (IDTitoloDiStudio)
references Anagrafiche.TitoliDiStudio (IDTitoloDiStudio)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.TitoliDiStudioSoggetto
create function Anagrafiche.inizializza_titolidistudiosoggetto()
returns trigger as '
begin
if new.IDTitoloDiStudioSoggetto is NULL or new.IDTitoloDiStudioSoggetto = 0 then
new.IDTitoloDiStudioSoggetto = nextval(''Anagrafiche.Gen_IDTitoloDiStudioSoggetto'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_titolodistudiosoggetto
before insert on Anagrafiche.TitoliDiStudioSoggetto
for each row execute procedure Anagrafiche.inizializza_TitoliDiStudiosoggetto();
create trigger trg_ins_ts_a_titolodistudiosoggetto
before insert on Anagrafiche.TitoliDiStudioSoggetto
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.TitoliDiStudioSoggetto
create trigger trg_upd_ts_a_titolodistudiosoggetto
before update on Anagrafiche.TitoliDiStudioSoggetto
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.TitoliDiStudioSoggetto
grant all privileges on Anagrafiche.TitoliDiStudioSoggetto to group amministratore ;; grant select,insert,update,delete on Anagrafiche.TitoliDiStudioSoggetto to group anagrafiche ;; grant select on Anagrafiche.TitoliDiStudioSoggetto to public ;; grant update on Anagrafiche.Gen_IDTitoloDiStudioSoggetto to group amministratore ;; grant update on Anagrafiche.Gen_IDTitoloDiStudioSoggetto to group anagrafiche
Contiene i le proprietà per l'accesso al web del soggetto.
Informazioni sui singoli campi
Anagrafiche.WebSoggetto
create table Anagrafiche.WebSoggetto ( IDSoggetto largeid_t not null, Abilitato boolean_t, Password hash_t, constraint PK_WebSoggetto primary key (IDSoggetto) ) inherits (TimeStamped)
Chiavi esterne
FK Anagrafiche.WebSoggetto->Anagrafiche.Soggetti
alter table Anagrafiche.WebSoggetto
add constraint fk_WS_IDSoggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.WebSoggetto
create trigger trg_ins_ts_a_websoggetto
before insert on Anagrafiche.WebSoggetto
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Anagrafiche.WebSoggetto
create trigger trg_upd_ts_a_websoggetto
before update on Anagrafiche.WebSoggetto
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Anagrafiche.WebSoggetto
grant all privileges on Anagrafiche.WebSoggetto to group amministratore ;; grant select,insert,update,delete on Anagrafiche.WebSoggetto to group anagrafiche
Anagrafica dei titoli di studio che un soggetto di tipo persona può avere.
Informazioni sui singoli campi
Generatore Anagrafiche.IDComuneCatastale
create sequence Anagrafiche.Gen_IDComuneCatastale
Anagrafiche.ComuniCatastali
create table Anagrafiche.ComuniCatastali ( IDComuneCatastale smallid_t not null, Denominazione longstring_t, Codice catastale_t, constraint PK_ComuniCatastali primary key (IDComuneCatastale) )
Aggiornamento timestamp dei record
Inserimento record Anagrafiche.ComuniCatastali
create function Anagrafiche.inizializza_comunicatastali()
returns trigger as '
begin
if new.IDComuneCatastale is NULL or new.IDComuneCatastale = 0 then
new.IDComuneCatastale = nextval(''Anagrafiche.Gen_IDComuneCatastale'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_ts_init_ComuniCatastali
before insert on Anagrafiche.ComuniCatastali
for each row execute procedure Anagrafiche.inizializza_comunicatastali();
Permessi di accesso
Permessi di accesso a Anagrafiche.ComuniCatastali
grant all privileges on Anagrafiche.ComuniCatastali to group amministratore ;; grant select on Anagrafiche.ComuniCatastali to public ;; grant all privileges on Anagrafiche.Gen_IDComuneCatastale to group amministratore
Dati di base
Anagrafiche.ComuniCatastali di base
insert into Anagrafiche.ComuniCatastali (IDComuneCatastale, Denominazione, Codice) values (nextval('Anagrafiche.Gen_IDComuneCatastale'), 'ABANO TERME', 'A001')
;;
insert into Anagrafiche.ComuniCatastali (IDComuneCatastale, Denominazione, Codice) values (nextval('Anagrafiche.Gen_IDComuneCatastale'), 'ABBADIA CERRETO', 'A004')
;;
insert into Anagrafiche.ComuniCatastali (IDComuneCatastale, Denominazione, Codice) values (nextval('Anagrafiche.Gen_IDComuneCatastale'), 'ABBADIA LARIANA', 'A005')
;;
insert into Anagrafiche.ComuniCatastali (IDComuneCatastale, Denominazione, Codice) values (nextval('Anagrafiche.Gen_IDComuneCatastale'), 'RIVA DEL GARDA', 'H330')
;;
insert into Anagrafiche.ComuniCatastali (IDComuneCatastale, Denominazione, Codice) values (nextval('Anagrafiche.Gen_IDComuneCatastale'), 'ROVERETO', 'H612')
;;
Anagrafica dei capitoli di spesa.
Informazioni sui singoli campi
Generatore Anagrafiche.IDCapitolo
create sequence Anagrafiche.Gen_IDCapitolo
Anagrafiche.Capitoli
create table Anagrafiche.Capitoli ( IDCapitolo smallid_t not null, IDCentroDiCosto smallid_t, Descrizione longstring_t, constraint PK_Capitoli primary key (IDCapitolo) )
Chiavi esterne
FK Anagrafiche.Capitoli->Anagrafiche.CentriDiCosto
alter table Anagrafiche.Capitoli
add constraint fk_AC_IDCentroDiCosto foreign key (IDCentroDiCosto)
references Anagrafiche.CentriDiCosto (IDCentroDiCosto)
on update cascade
Permessi di accesso
Permessi di accesso a Anagrafiche.Capitoli
grant all privileges on Anagrafiche.Capitoli to group amministratore ;; grant select on Anagrafiche.Capitoli to public ;; grant all privileges on Anagrafiche.Gen_IDCapitolo to group amministratore
Anagrafica dei centri di costo.
Informazioni sui singoli campi
Generatore Anagrafiche.IDCentroDiCosto
create sequence Anagrafiche.Gen_IDCentroDiCosto
Anagrafiche.CentriDiCosto
create table Anagrafiche.CentriDiCosto ( IDCentroDiCosto smallid_t not null, Descrizione longstring_t, constraint PK_CentriDiCosto primary key (IDCentroDiCosto) )
Permessi di accesso
Permessi di accesso a Anagrafiche.CentriDiCosto
grant all privileges on Anagrafiche.CentriDiCosto to group amministratore ;; grant select on Anagrafiche.CentriDiCosto to public ;; grant all privileges on Anagrafiche.Gen_IDCentroDiCosto to group amministratore
Le tabelle sono raggruppate nello schema protocollo:
Tabelle protocollo
Protocollo
create schema protocollo ;; grant all privileges on schema protocollo to group amministratore ;; grant usage on schema protocollo to public
La tabella centrale del protocollo, contenente tutte le registrazioni in entrata e uscita. Da notare che per mittenti si intendono sempre gli esterno, e per destinatari gli uffici, quindi con notazione corretta nel caso di protocolli in entrata, mentre inversa per quelli in uscita.
Informazioni sui singoli campi
Generatore Protocollo.Protocolli
create sequence Protocollo.Gen_IDProtocollo
Generatore Protocollo.Protocolli (nr)
create sequence Protocollo.Gen_NrProtocollo ;; alter table Protocollo.Gen_NrProtocollo owner to protocollatore
Generatore Protocollo.Protocolli (convalide)
create sequence Protocollo.Gen_NrConvalida ;; alter table Protocollo.Gen_NrConvalida owner to protocollatore
Protocollo.Protocolli
create table Protocollo.Protocolli ( IDProtocollo largeid_t not null, IDDocumento stringid_t, Anno smallint_t, IDTipologiaProtocollo flag_t, IDUfficio smallid_t, DataProtocollo timestamp_t, PrimoInserimentoCompleto boolean_t, NrRicevuta tinystring_t, DataRicevuta date_t, ConvalidaParziale boolean_t, DataConvalidaParziale timestamp_t, EsecutoreConvalidaParziale username_t, Convalida boolean_t, NrConvalida tinystring_t, DataConvalida timestamp_t, EsecutoreConvalida username_t, DataUltimaConsultazione date_t, EsecutoreUltimaConsultazione username_t, DataSpedizione date_t, EsecutoreSpedizione username_t, IDTipologiaRiferimentoMittente flag_t, RiferimentoMittente tinystring_t, DataMittente date_t, NrAllegati smallint_t, Note remark_t, Oggetto remark_t, Scannerizzato boolean_t, Visto boolean_t, InLavorazione boolean_t, Annullato boolean_t, Spedito boolean_t, Riservato boolean_t default FALSE, RichiedeRisposta boolean_t, constraint PK_Protocolli primary key (IDProtocollo), constraint UK_Protocolli_IDDocumento unique (IDDocumento) ) inherits(Timestamped)
Chiavi esterne
FK Protocollo.Protocolli->Anagrafiche.Uffici
alter table Protocollo.Protocolli
add constraint fk_PR_IDUfficio foreign key (IDUfficio)
references Anagrafiche.Uffici (IDUfficio)
on update cascade
FK Protocollo.Protocolli->Protocollo.TipologieProtocollo
alter table Protocollo.Protocolli
add constraint fk_PR_IDTipologiaProtocollo foreign key (IDTipologiaProtocollo)
references Protocollo.TipologieProtocollo (IDTipologiaProtocollo)
on update cascade
FK Protocollo.Protocolli->Protocollo.TipologieRiferimentoMittente
alter table Protocollo.Protocolli
add constraint fk_PR_IDTipologiaRiferimentoMittente foreign key (IDTipologiaRiferimentoMittente)
references Protocollo.TipologieRiferimentoMittente (IDTipologiaRiferimentoMittente)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Protocollo.Protocolli
create function Protocollo.inizializza_protocolli()
returns trigger as '
begin
-- utente nello sportello
if not check_utenteinufficio(current_user, new.idufficio) then
raise exception ''Inserimento protocollo non permesso'';
end if;
-- protocollo dichiarato spedito
if new.Spedito then
if new.IDTipologiaProtocollo = ''U'' then
if not check_utenteflaginufficio(current_user, ''consolida'', new.idufficio)
and not check_utenteflaginreferente(current_user, ''consolida'', new.iddocumento, TRUE) then
raise exception ''Non hai i permessi per dichiarare il protocollo come spedito'';
end if;
else
raise exception ''Solo i protocolli in uscita possono essere marcati come spediti'';
end if;
end if;
if new.IDProtocollo is NULL or new.IDProtocollo = 0 then
new.IDProtocollo = nextval(''Protocollo.Gen_IDProtocollo'');
end if;
new.DataProtocollo := ''now'';
new.Anno := extract(year from new.DataProtocollo);
if not exists(SELECT * FROM protocollo.MaxIDDocumento WHERE IDDocumento like new.Anno || ''%'') then
ALTER SEQUENCE Protocollo.Gen_NrProtocollo RESTART WITH 1;
end if;
new.IDDocumento := '''' || new.Anno || substring(to_char(nextval(''Protocollo.Gen_NrProtocollo''), ''00000000'') from 2 for 8);
new.ConvalidaParziale := FALSE;
new.Convalida := FALSE;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_protocolli
before insert on Protocollo.Protocolli
for each row execute procedure Protocollo.inizializza_protocolli();
create trigger trg_ins_ts_p_protocolli
before insert on Protocollo.Protocolli
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Protocollo.Protocolli
create trigger trg_upd_ts_p_protocolli
before update on Protocollo.Protocolli
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Protocollo.Protocolli
grant all privileges on Protocollo.Protocolli to group amministratore ;; grant all privileges on Protocollo.Gen_NrProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_NrProtocollo to group protocollatore
Controllo permessi modifica protocollo
create function Protocollo.verifica_permessi_aggiornamento_protocollo()
returns trigger as '
begin
-- Il protocollo è già stato annullato
if old.annullato = TRUE then
raise exception ''Modifica del protocollo annullato non permessa'';
end if;
-- Il protocollo è già convalidato
if old.convalida = TRUE then
raise exception ''Modifica del protocollo convalidato non permessa'';
end if;
-- Non sei nello sportello o in un referente
if not (check_utenteinufficio(current_user, new.idufficio)
or check_utenteinreferente(current_user, new.iddocumento)) then
raise exception ''Modifica protocollo non permessa'';
end if;
if new.annullato = TRUE then
if exists (select *
from anagrafiche.utenti ut
join anagrafiche.utentiufficio as uu
on uu.idutente = ut.idutente
join anagrafiche.uffici as uf
on uf.idufficio = uu.idufficio
where ut.login = current_user
and uf.ufficioprotocollo = TRUE) then
-- Annullamento del protocollo permesso
-- Scollego le pratiche e i riferimenti
delete from protocollo.praticheprotocollo where
iddocumento = old.iddocumento;
delete from protocollo.riferimentiprotocollo where
iddocumento = old.iddocumento;
-- Inserisco nella pratica dei protocolli annullati
insert into protocollo.praticheprotocollo (iddocumento, idpratica)
values(new.iddocumento, cast((select valore
from generale.costanti
where nome = ''PRA_PROTO_ANN'')
as largeid_t
));
-- Inserisco nella tabella delle richieste di annullamento
insert into protocollo.annullati (iddocumento)
values (new.iddocumento);
return new;
elsif check_utenteinufficio(current_user, new.idufficio) then
-- Richiesta di annullamento
insert into protocollo.annullati (iddocumento)
values (new.iddocumento);
new.Annullato = FALSE;
else
raise exception ''Annullamento del protocollo non permesso'';
end if;
end if;
-- Convalide
if old.convalida = FALSE and new.convalida = TRUE then
if (check_utenteflaginufficio(current_user, ''consolida'', new.idufficio)
or check_utenteflaginreferente(current_user, ''consolida'', new.iddocumento, TRUE)
or check_utenteingruppo(current_user, ''convalidatore'')) then
if exists (SELECT * FROM protocollo.praticheprotocollo WHERE iddocumento=new.iddocumento) then
new.dataconvalida := ''now'';
new.esecutoreconvalida := current_user;
if not exists (SELECT * FROM protocollo.MaxNrConvalida WHERE Anno = old.Anno) then
ALTER SEQUENCE Protocollo.Gen_NrConvalida RESTART WITH 1;
end if;
new.nrconvalida := '''' || old.Anno || substring(to_char(nextval(''Protocollo.Gen_NrConvalida''), ''00000000'') from 2 for 8);
else
raise exception ''Il protocollo deve essere inserito in una pratica per poter essere convalidato'';
end if;
else
raise exception ''Non hai i permessi per convalidare il documento'';
end if;
end if;
if old.convalidaparziale = FALSE and (new.convalidaparziale = TRUE or
new.convalida = TRUE) then
if check_utenteflaginufficio(current_user, ''consolida'', new.idufficio)
or check_utenteflaginreferente(current_user, ''consolida'', new.iddocumento, TRUE)
or check_utenteingruppo(current_user, ''convalidatore'') then
new.convalidaparziale := TRUE;
new.dataconvalidaparziale := ''now'';
new.esecutoreconvalidaparziale := current_user;
else
raise exception ''Non hai i permessi per convalidare gli uffici'';
end if;
end if;
-- riservatezza
if old.riservato = TRUE and new.riservato = FALSE then
if not check_utenteingruppo(current_user, ''superutente'') then
raise exception ''Protocollo dichiarato riservato'';
end if;
end if;
-- protocollo dichiarato spedito
if old.Spedito = FALSE and new.Spedito = TRUE then
if new.IDTipologiaProtocollo = ''U'' then
if not check_utenteflaginufficio(current_user, ''consolida'', new.idufficio)
and not check_utenteflaginreferente(current_user, ''consolida'', new.iddocumento, TRUE) then
raise exception ''Non hai i permessi per dichiarare il protocollo come spedito'';
end if;
else
raise exception ''Solo i protocolli in uscita possono essere marcati come spediti'';
end if;
end if;
return new;
end;
' language plpgsql;
;;
create trigger trg_permessi_upd_protocollo
before update on Protocollo.Protocolli
for each row execute procedure Protocollo.verifica_permessi_aggiornamento_protocollo();
Per poter visualizzare le informazioni di protocollazione l'utente deve rispettare una di queste due casistiche.
- appartenenza all'ufficio sportello che ha acquisito il protocollo
- appartenenza ad un ufficio collegato come attribuzione referente al protocollo
Protocolli visibili agli utenti
create view Protocollo.ProtocolliUtente as
select p.IDProtocollo
, p.IDDocumento
, p.Anno
, p.IDTipologiaProtocollo
, p.IDUfficio
, p.DataProtocollo
, p.PrimoInserimentoCompleto
, p.NrRicevuta
, p.DataRicevuta
, p.ConvalidaParziale
, p.DataConvalidaParziale
, p.EsecutoreConvalidaParziale
, p.Convalida
, p.NrConvalida
, p.DataConvalida
, p.EsecutoreConvalida
, p.DataUltimaConsultazione
, p.EsecutoreUltimaConsultazione
, p.DataSpedizione
, p.EsecutoreSpedizione
, p.RiferimentoMittente
, p.IDTipologiaRiferimentoMittente
, p.DataMittente
, p.NrAllegati
, p.Note
, p.Oggetto
, p.Scannerizzato
, p.Visto
, p.InLavorazione
, p.Annullato
, p.Spedito
, p.Riservato
, p.RichiedeRisposta
, p.rec_creato
, p.rec_creato_da
, p.rec_modificato
, p.rec_modificato_da
from protocollo.protocolli as p
where check_utenteflaginufficio(current_user, 'lista', p.idufficio)
or check_utenteflaginreferente(current_user, 'lista', p.iddocumento, FALSE)
;;
create rule ProtocolliUtente_insert as on insert to Protocollo.ProtocolliUtente
do instead
insert into Protocollo.protocolli (IDProtocollo
, IDDocumento
, Anno
, IDTipologiaProtocollo
, IDUfficio
, DataProtocollo
, PrimoInserimentoCompleto
, NrRicevuta
, DataRicevuta
, ConvalidaParziale
, DataConvalidaParziale
, EsecutoreConvalidaParziale
, Convalida
, NrConvalida
, DataConvalida
, EsecutoreConvalida
, DataUltimaConsultazione
, EsecutoreUltimaConsultazione
, DataSpedizione
, EsecutoreSpedizione
, RiferimentoMittente
, IDTipologiaRiferimentoMittente
, DataMittente
, NrAllegati
, Note
, Oggetto
, Scannerizzato
, Visto
, InLavorazione
, Annullato
, Spedito
, Riservato
, RichiedeRisposta
, rec_creato
, rec_creato_da
, rec_modificato
, rec_modificato_da
)
values (new.IDProtocollo
, new.IDDocumento
, new.Anno
, new.IDTipologiaProtocollo
, new.IDUfficio
, new.DataProtocollo
, new.PrimoInserimentoCompleto
, new.NrRicevuta
, new.DataRicevuta
, new.ConvalidaParziale
, new.DataConvalidaParziale
, new.EsecutoreConvalidaParziale
, new.Convalida
, new.NrConvalida
, new.DataConvalida
, new.EsecutoreConvalida
, new.DataUltimaConsultazione
, new.EsecutoreUltimaConsultazione
, new.DataSpedizione
, new.EsecutoreSpedizione
, new.RiferimentoMittente
, new.IDTipologiaRiferimentoMittente
, new.DataMittente
, new.NrAllegati
, new.Note
, new.Oggetto
, new.Scannerizzato
, new.Visto
, new.InLavorazione
, new.Annullato
, new.Spedito
, new.Riservato
, new.RichiedeRisposta
, new.rec_creato
, new.rec_creato_da
, new.rec_modificato
, new.rec_modificato_da
)
;;
create rule ProtocolliUtente_update as on update to Protocollo.ProtocolliUtente
do instead
update Protocollo.Protocolli
set IDProtocollo = new.IDProtocollo
, IDDocumento = new.IDDocumento
, Anno = new.Anno
, IDTipologiaProtocollo = new.IDTipologiaProtocollo
, IDUfficio = new.IDUfficio
, DataProtocollo = new.DataProtocollo
, PrimoInserimentoCompleto = new.PrimoInserimentoCompleto
, NrRicevuta = new.NrRicevuta
, DataRicevuta = new.DataRicevuta
, ConvalidaParziale = new.ConvalidaParziale
, DataConvalidaParziale = new.DataConvalidaParziale
, EsecutoreConvalidaParziale = new.EsecutoreConvalidaParziale
, Convalida = new.Convalida
, NrConvalida = new.NrConvalida
, DataConvalida = new.DataConvalida
, EsecutoreConvalida = new.EsecutoreConvalida
, DataUltimaConsultazione = new.DataUltimaConsultazione
, EsecutoreUltimaConsultazione = new.EsecutoreUltimaConsultazione
, DataSpedizione = new.DataSpedizione
, EsecutoreSpedizione = new.EsecutoreSpedizione
, RiferimentoMittente = new.RiferimentoMittente
, IDTipologiaRiferimentoMittente = new.IDTipologiaRiferimentoMittente
, DataMittente = new.DataMittente
, NrAllegati = new.NrAllegati
, Note = new.Note
, Oggetto = new.Oggetto
, Scannerizzato = new.Scannerizzato
, Visto = new.Visto
, InLavorazione = new.InLavorazione
, Annullato = new.Annullato
, Spedito = new.Spedito
, Riservato = new.Riservato
, RichiedeRisposta = new.RichiedeRisposta
, rec_creato = new.rec_creato
, rec_creato_da = new.rec_creato_da
, rec_modificato = new.rec_modificato
, rec_modificato_da = new.rec_modificato_da
where
IDProtocollo = old.IDProtocollo;
;;
create rule ProtocolliUtente_delete as on delete to Protocollo.ProtocolliUtente
do instead
-- Posso annullare un protocollo solo se sono utente di un
-- ufficio protocollo
update Protocollo.Protocolli set Annullato = TRUE where
IDProtocollo = old.IDProtocollo;
Permessi di accesso a Anagrafiche.ProtocolliUtente
grant all privileges on Protocollo.ProtocolliUtente to group amministratore ;; grant select,insert,update,delete on Protocollo.ProtocolliUtente to group protocollatore ;; grant update on Protocollo.Gen_IDProtocollo to group amministratore ;; grant update on Protocollo.Gen_IDProtocollo to group protocollatore ;; grant select on Protocollo.ProtocolliUtente to public
Per l'aggiornamento dell'IDDocumento l'utente protocollatore ha l'esigenza di accedere, per tramite della funzione Protocollo.inizializza_protocolli, all'ultimo IDDocumento creato.
Questo gli è permesso per mezzo della vista Protocollo.MaxIDDocumento.
Vista degli IDDocumento dei protocolli
create view Protocollo.MaxIDDocumento as select max(p.IDDocumento) as IDDocumento from protocollo.protocolli as p
Permessi di accesso a Protocollo.MaxIDDocumento
grant all privileges on Protocollo.MaxIDDocumento to group amministratore ;; grant select on Protocollo.MaxIDDocumento to group protocollatore
Un ragionamento analogo si applica al numero di convalida (NrConvalida).
Vista dei NrConvalida dei protocolli
create view Protocollo.MaxNrConvalida as select max(p.NrConvalida) as NrConvalida, Anno from protocollo.protocolli as p group by Anno
Permessi di accesso a Protocollo.MaxNrConvalida
grant all privileges on Protocollo.MaxNrConvalida to group amministratore ;; grant select on Protocollo.MaxNrConvalida to group protocollatore
Attraverso la tabella Protocollo.RiferimentiProtocollo è possibile creare un grafo orientato di riferimenti tra protocolli. Le funzioni di questo script eseguono una scansione in profondità per ricavare degli alberi di relazioni, a partire da un protocollo, rispettivamente nei riferimenti precedenti e successivi.
Ricerca degli ancestori
create function Protocollo.ricerca_parent(stringid_t, varchar[], int4)
returns varchar[] as '
declare
iddocumento alias FOR $1;
iddocs alias FOR $2;
n alias FOR $3;
newiddocs varchar[];
i INT;
r RECORD;
begin
i := n;
newiddocs := iddocs;
for r in SELECT * FROM Protocollo.RiferimentiProtocollo rp
WHERE rp.IDDocumento = iddocumento loop
i := i + 1;
newiddocs[i] := r.IDRiferimento;
newiddocs := Protocollo.ricerca_parent(r.IDRiferimento, newiddocs, i);
end loop;
return newiddocs;
end;
' language plpgsql;
;;
create function Protocollo.ricerca_precedenti(stringid_t)
returns SETOF Protocollo.ProtocolliUtente as '
declare
iddocumento alias FOR $1;
iddocs VARCHAR[];
d VARCHAR;
r RECORD;
i INT;
begin
iddocs[1] := iddocumento;
iddocs := Protocollo.ricerca_parent(iddocumento, iddocs, 1);
i := 0;
while true loop
i := i+1;
d := iddocs[i];
if (d is null) then
exit;
end if;
SELECT * INTO r FROM Protocollo.ProtocolliUtente p
WHERE p.IDDocumento = d;
return next r;
end loop;
return;
end;
' language plpgsql;
;;
create function Protocollo.ricerca_child(stringid_t, varchar[], int4)
returns varchar[] as '
declare
iddocumento alias FOR $1;
iddocs alias FOR $2;
n alias FOR $3;
newiddocs varchar[];
i INT;
r RECORD;
begin
i := n;
newiddocs := iddocs;
for r in SELECT * FROM Protocollo.RiferimentiProtocollo rp
WHERE rp.IDRiferimento = iddocumento loop
i := i + 1;
newiddocs[i] := r.IDDocumento;
newiddocs := Protocollo.ricerca_child(r.IDDocumento, newiddocs, i);
end loop;
return newiddocs;
end;
' language plpgsql;
;;
create function Protocollo.ricerca_successivi(stringid_t)
returns SETOF Protocollo.ProtocolliUtente as '
declare
iddocumento alias FOR $1;
iddocs VARCHAR[];
d VARCHAR;
r RECORD;
i INT;
begin
iddocs[1] := iddocumento;
iddocs := Protocollo.ricerca_child(iddocumento, iddocs, 1);
i := 0;
while true loop
i := i+1;
d := iddocs[i];
if (d is null) then
exit;
end if;
SELECT * INTO r FROM Protocollo.ProtocolliUtente p
WHERE p.IDDocumento = d;
return next r;
end loop;
return;
end;
' language plpgsql;
;;
Quando ad un protocollo viene assegnato come referente un ufficio, gli utenti di quest'ultimo che hanno la proprietà Visualizza di UtentiUfficio possono vederlo. Gli utenti hanno anche la possibilità di "dare per letta" questa assegnazione, dichiarando in questo modo che qualcuno, all'interno dell'ufficio, si è preso carico del documento.
Il permesso di notifica di lettura avvenuta è gestito dalla proprietà DaiPerLetto, sempre di UtentiUfficio.
Se un utente appartiene a più uffici referenti per lo stesso documento, avrà una notifica "doppia", e potrà decidere per quale ufficio eventualmente notificare la lettura avvenuta.
Per la visibilità di questi protocolli riferiti agli uffici viene utilizzata la vista DocumentiUtente, basata sulla vista ProtocolliUtente.
Documenti riferiti agli uffici
create view Protocollo.DocumentiUtente as
select pu.IDProtocollo
, pu.IDTipologiaProtocollo
, pu.IDDocumento
, pu.DataProtocollo
, pu.Oggetto
, rp.nrreferenti
from Protocollo.ProtocolliUtente as pu
join (select iddocumento, count(*) as nrreferenti
from protocollo.referentiprotocollo
join anagrafiche.utentiufficio as uu
on uu.idufficio = protocollo.referentiprotocollo.idufficio
join anagrafiche.utenti as u
on u.idutente = uu.idutente
where letto = FALSE
and u.login = current_user
and uu.lista = TRUE
group by iddocumento)
as rp on pu.iddocumento = rp.iddocumento
;;
Permessi di accesso Protocollo.DocumentiUtente
grant all privileges on Protocollo.DocumentiUtente to group amministratore ;; grant select on Protocollo.DocumentiUtente to group protocollatore ;;
Indici Protocollo.Protocolli
create index idx_protocolli_iddocumento on protocollo.protocolli using btree (iddocumento, idtipologiaprotocollo) ;; create index idx_protocolli_nrricevuta on protocollo.protocolli using btree (idtipologiaprotocollo, nrricevuta) ;; create index idx_protocolli_scannerizzato on protocollo.protocolli using btree (scannerizzato) ;; create index idx_protocolli_riservato on protocollo.protocolli using btree (riservato) ;; create index idx_protocolli_dataprotocollo on protocollo.protocolli using btree (dataprotocollo) ;;
I protocollo possono essere in entrata, uscita, oppure interni.
Informazioni sui singoli campo
Protocollo.TipologieProtocollo
create table Protocollo.TipologieProtocollo ( IDTipologiaProtocollo flag_t not null, Descrizione tinystring_t, constraint PKTipologieProtocollo primary key (IDTIpologiaProtocollo) )
Permessi di accesso
Permessi di accesso a Protocollo.TipologieProtocollo
grant all privileges on Protocollo.TipologieProtocollo to group amministratore ;; grant select on Protocollo.TipologieProtocollo to public
Dati di base
Protocollo.TipologieProtocollo di base
insert into Protocollo.TipologieProtocollo (IDTipologiaProtocollo, Descrizione) values ('E', 'entrata')
;;
insert into Protocollo.TipologieProtocollo (IDTipologiaProtocollo, Descrizione) values ('I', 'interno')
;;
insert into Protocollo.TipologieProtocollo (IDTipologiaProtocollo, Descrizione) values ('U', 'uscita')
;;
Tabella di collegamento degli uffici ad un protocollo come destinatari, se il protocollo è in entrata, altrimenti come mittenti.
Informazioni sui singoli campi
Generatore Protocollo.UfficiProtocollo
create sequence Protocollo.Gen_IDUfficioProtocollo
Protocollo.UfficiProtocollo
create table Protocollo.UfficiProtocollo ( IDUfficioProtocollo largeid_t not null, IDDocumento stringid_t, IDUfficio smallid_t, constraint PK_UfficiProtocollo primary key (IDUfficioProtocollo) ) inherits(Timestamped)
Chiavi esterne
FK Protocollo.UfficiProtocollo->Anagrafiche.Uffici
alter table Protocollo.UfficiProtocollo
add constraint fk_UP_IDUfficio foreign key (IDUfficio)
references Anagrafiche.Uffici (IDUfficio)
on update cascade
FK Protocollo.UfficiProtocollo->Protocollo.Protocolli
alter table Protocollo.UfficiProtocollo
add constraint fk_UP_IDDocumento foreign key (IDDocumento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Protocollo.UfficiProtocollo
create function Protocollo.inizializza_ufficiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(new.IDDocumento) or check_protocolloannullato(new.IDDocumento) then
raise exception ''Impossibile aggiungere uffici ad un protocollo annullato o convalidato'';
end if;
if new.IDUfficioProtocollo is NULL or new.IDUfficioProtocollo = 0 then
new.IDUfficioProtocollo = nextval(''Protocollo.Gen_IDUfficioProtocollo'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_ufficiprotocollo
before insert on Protocollo.UfficiProtocollo
for each row execute procedure Protocollo.inizializza_ufficiprotocollo();
create trigger trg_ins_ts_p_ufficiprotocollo
before insert on Protocollo.UfficiProtocollo
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Protocollo.UfficiProtocollo
create trigger trg_upd_ts_p_ufficiprotocollo
before update on Protocollo.UfficiProtocollo
for each row execute procedure aggiorna_timestamp();
Cancellazione record Protocollo.UfficiProtocollo
create function Protocollo.cancella_ufficiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(old.IDDocumento) or check_protocolloannullato(old.IDDocumento) then
raise exception ''Impossibile cancellare uffici di un protocollo annullato o convalidato'';
end if;
return old;
end;
' language plpgsql;
create trigger trg_del_ufficiprotocollo
before delete on Protocollo.UfficiProtocollo
for each row execute procedure Protocollo.cancella_ufficiprotocollo();
Modifica record Protocollo.UfficiProtocollo
create function Protocollo.aggiorna_ufficiprotocollo()
returns trigger as '
begin
if new.iddocumento != old.iddocumento then
raise exception ''Impossibile modificare uffici di un protocollo annullato o convalidato'';
end if;
return new;
end;
' language plpgsql;
create trigger trg_upd_ufficiprotocollo
before update on Protocollo.UfficiProtocollo
for each row execute procedure Protocollo.aggiorna_ufficiprotocollo();
Permessi di accesso
Permessi di accesso a Protocollo.UfficiProtocollo
grant all privileges on Protocollo.UfficiProtocollo to group amministratore ;; grant select,insert,update,delete on Protocollo.UfficiProtocollo to group protocollatore ;; grant select on Protocollo.UfficiProtocollo to public ;; grant all privileges on Protocollo.Gen_IDUfficioProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_IDUfficioProtocollo to group protocollatore
Indici Protocollo.UfficiProtocollo
create index idx_ufficiprotocollo_iddocumento on protocollo.ufficiprotocollo using btree (iddocumento) ;; create index idx_ufficiprotocollo_idufficio on protocollo.ufficiprotocollo using btree (idufficio) ;;
Tabella di collegamento dei soggetti ad un protocollo come destinatari, se il protocollo è in entrata, altrimenti come mittenti.
Informazioni sui singoli campi
Corrispondenza
Notifica
Conoscenza
Generatore Protocollo.SoggettiProtocollo
create sequence Protocollo.Gen_IDSoggettoProtocollo
Protocollo.SoggettiProtocollo
create table Protocollo.SoggettiProtocollo ( IDSoggettoProtocollo largeid_t not null, IDDocumento stringid_t, IDSoggetto largeid_t, IDIndirizzoSoggetto largeid_t, IDReferente largeid_t, PrimoInserimento boolean_t, InViaPrincipale boolean_t, Corrispondenza boolean_t, Notifica boolean_t, Conoscenza boolean_t, AbilitatoWeb boolean_t, Riservato boolean_t, Annullato boolean_t, IDTitolo smallid_t, DataInizio date_t, DataFine date_t, constraint PK_SoggettiProtocollo primary key (IDSoggettoProtocollo) ) inherits(Timestamped)
Chiavi esterne
FK Protocollo.SoggettiProtocollo->Anagrafiche.Soggetti
alter table Protocollo.SoggettiProtocollo
add constraint fk_SP_IDSoggetto foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
FK Protocollo.SoggettiProtocollo->Anagrafiche.Soggetti (Referenti)
alter table Protocollo.SoggettiProtocollo
add constraint fk_SP_IDReferente foreign key (IDSoggetto)
references Anagrafiche.Soggetti (IDSoggetto)
on update cascade
FK Protocollo.SoggettiProtocollo->Protocollo.Protocolli
alter table Protocollo.SoggettiProtocollo
add constraint fk_SP_IDDocumento foreign key (IDDocumento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
FK Protocollo.SoggettiProtocollo->Anagrafiche.Titoli
alter table Protocollo.SoggettiProtocollo
add constraint fk_SP_IDTitolo foreign key (IDTitolo)
references Anagrafiche.Titoli (IDTitolo)
on update cascade
FK Protocollo.SoggettiProtocollo->Anagrafiche.IndirizziSoggetto
alter table Protocollo.SoggettiProtocollo
add constraint fk_SP_IDIndirizzoSoggetto foreign key (IDIndirizzoSoggetto)
references Anagrafiche.IndirizziSoggetto (IDIndirizzoSoggetto)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Protocollo.SoggettiProtocollo
create function Protocollo.inizializza_soggettiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(new.IDDocumento) or check_protocolloannullato(new.IDDocumento) then
raise exception ''Impossibile aggiungere soggetti ad un protocollo annullato o convalidato'';
end if;
if new.IDSoggettoProtocollo is NULL or new.IDSoggettoProtocollo = 0 then
new.IDSoggettoProtocollo = nextval(''Protocollo.Gen_IDSoggettoProtocollo'');
end if;
new.Riservato = FALSE;
if exists(SELECT * FROM protocollo.protocolliutente WHERE
IDDocumento = new.IDDocumento AND
PrimoInserimentoCompleto = TRUE) then
new.PrimoInserimento = FALSE;
else
new.PrimoInserimento = TRUE;
end if;
if new.InViaPrincipale = TRUE then
UPDATE Protocollo.SoggettiProtocollo SET InViaPrincipale = FALSE WHERE IDDocumento = new.IDDocumento;
end if;
return new;
end;
' language plpgsql;
create function Protocollo.primi_soggettiprotocollo()
returns trigger as '
begin
if new.iddocumento = old.iddocumento then
return new;
else
if exists(SELECT * FROM protocollo.protocolli WHERE
IDDocumento = new.IDDocumento AND
PrimoInserimentoCompleto = TRUE) then
new.PrimoInserimento = FALSE;
else
new.PrimoInserimento = TRUE;
end if;
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_soggettiprotocollo
before insert on Protocollo.SoggettiProtocollo
for each row execute procedure Protocollo.inizializza_soggettiprotocollo();
create trigger trg_ins_primi_soggettiprotocollo
before update on Protocollo.SoggettiProtocollo
for each row execute procedure Protocollo.primi_soggettiprotocollo();
create trigger trg_ins_ts_p_soggettiprotocollo
before insert on Protocollo.SoggettiProtocollo
for each row execute procedure inizializza_timestamp();
Cancellazione o annullamento record Protocollo.SoggettiProtocollo
create function Protocollo.cancella_soggettiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(old.IDDocumento) or check_protocolloannullato(old.IDDocumento) then
raise exception ''Impossibile cancellare soggetti di un protocollo annullato o convalidato'';
end if;
if old.PrimoInserimento = TRUE then
UPDATE Protocollo.SoggettiProtocolloUtente SET Annullato = TRUE
WHERE IDSoggettoProtocollo = old.IDSoggettoProtocollo;
return NULL;
end if;
return old;
end;
' language plpgsql;
create trigger trg_del_soggettiprotocollo
before delete on Protocollo.SoggettiProtocollo
for each row execute procedure Protocollo.cancella_soggettiprotocollo();
Aggiornamento timestamp Protocollo.SoggettiProtocollo
create trigger trg_upd_ts_p_soggettiprotocollo
before update on Protocollo.SoggettiProtocollo
for each row execute procedure aggiorna_timestamp();
Modifica record Protocollo.SoggettiProtocollo
create function Protocollo.verifica_permessi_aggiornamento_soggettoprotocollo()
returns trigger as '
begin
if new.iddocumento != old.iddocumento then
raise exception ''Impossibile modificare soggetti di un protocollo annullato o convalidato'';
end if;
if old.riservato = FALSE and new.riservato = TRUE then
if not exists (select * from protocollo.protocolliutente where
iddocumento = new.iddocumento and
riservato = TRUE) then
raise exception ''Impossibile allegare soggetti riservati ad un protocollo non riservato'';
end if;
end if;
if new.InViaPrincipale = TRUE and old.InViaPrincipale != TRUE then
UPDATE Protocollo.SoggettiProtocollo SET InViaPrincipale = FALSE WHERE IDDocumento = new.IDDocumento;
end if;
return new;
end;
' language plpgsql;
;;
create trigger trg_permessi_upd_soggettoprotocollo
before update on Protocollo.SoggettiProtocollo
for each row execute procedure Protocollo.verifica_permessi_aggiornamento_soggettoprotocollo();
Permessi di accesso
Permessi di accesso a Protocollo.SoggettiProtocollo
grant all privileges on Protocollo.SoggettiProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_IDSoggettoProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_IDSoggettoProtocollo to group protocollatore
Quando un protocollo è riservato è possibile indicare dei soggetti (mittenti o destinatari) in modo riservato. I soggetti riservati vengono visualizzati unicamente dagli utenti che appartengono con flag riservato ad almeno uno degli uffici referenti per il protocollo stesso. Questo concetto viene espresso per tramite della vista SoggettiProtocolloUtente.
Soggetti protocollo visibili agli utenti
create view Protocollo.SoggettiProtocolloUtente as
select sp.IDSoggettoProtocollo
, sp.IDDocumento
, sp.IDSoggetto
, sp.IDIndirizzoSoggetto
, sp.IDReferente
, sp.PrimoInserimento
, sp.InViaPrincipale
, sp.Corrispondenza
, sp.Notifica
, sp.Conoscenza
, sp.AbilitatoWeb
, sp.Riservato
, sp.Annullato
, sp.IDTitolo
, sp.DataInizio
, sp.DataFine
, sp.rec_creato
, sp.rec_creato_da
, sp.rec_modificato
, sp.rec_modificato_da
from protocollo.soggettiprotocollo as sp
where
sp.riservato is not TRUE
or
exists (select *
from protocollo.protocolliutente pu
where
pu.iddocumento = sp.iddocumento and
pu.riservato is not TRUE)
or
exists (select *
from protocollo.protocolliutente pu
join protocollo.referentiprotocollo rp
on rp.iddocumento = pu.iddocumento
join anagrafiche.utentiufficio uu
on uu.idufficio = rp.idufficio and pu.iddocumento = rp.iddocumento
join anagrafiche.utenti ut
on ut.idutente = uu.idutente
where ut.login = current_user
and uu.riservato is TRUE)
;;
create rule SoggettiProtocolloUtente_insert as on insert to Protocollo.SoggettiProtocolloUtente
do instead
insert into Protocollo.SoggettiProtocollo (IDSoggettoProtocollo
, IDDocumento
, IDSoggetto
, IDIndirizzoSoggetto
, IDReferente
, PrimoInserimento
, InViaPrincipale
, Corrispondenza
, Notifica
, Conoscenza
, AbilitatoWeb
, Riservato
, Annullato
, IDTitolo
, DataInizio
, DataFine
, rec_creato
, rec_creato_da
, rec_modificato
, rec_modificato_da
)
values (new.IDSoggettoProtocollo
, new.IDDocumento
, new.IDSoggetto
, new.IDIndirizzoSoggetto
, new.IDReferente
, new.PrimoInserimento
, new.InViaPrincipale
, new.Corrispondenza
, new.Notifica
, new.Conoscenza
, new.AbilitatoWeb
, new.Riservato
, new.Annullato
, new.IDTitolo
, new.DataInizio
, new.DataFine
, new.rec_creato
, new.rec_creato_da
, new.rec_modificato
, new.rec_modificato_da
)
;;
create rule SoggettiProtocolloUtente_update as on update to Protocollo.SoggettiProtocolloUtente
do instead
update Protocollo.SoggettiProtocollo
set IDSoggettoProtocollo = new.IDSoggettoProtocollo
, IDDocumento = new.IDDocumento
, IDSoggetto = new.IDSoggetto
, IDIndirizzoSoggetto = new.IDIndirizzoSoggetto
, IDReferente = new.IDReferente
, PrimoInserimento = new.PrimoInserimento
, InViaPrincipale = new.InViaPrincipale
, Corrispondenza = new.Corrispondenza
, Notifica = new.Notifica
, Conoscenza = new.Conoscenza
, AbilitatoWeb = new.AbilitatoWeb
, Riservato = new.Riservato
, Annullato = new.Annullato
, IDTitolo = new.IDTitolo
, DataInizio = new.DataInizio
, DataFine = new.DataFine
, rec_creato = new.rec_creato
, rec_creato_da = new.rec_creato_da
, rec_modificato = new.rec_modificato
, rec_modificato_da = new.rec_modificato_da
where IDSoggettoProtocollo = old.IDSoggettoProtocollo;
;;
create rule SoggettiProtocolloUtente_delete as on delete to Protocollo.SoggettiProtocolloUtente
do instead
delete from Protocollo.SoggettiProtocollo
where IDSoggettoProtocollo = old.IDSoggettoProtocollo;
Permessi di accesso a Protocollo.SoggettiProtocolloUtente
grant all privileges on Protocollo.SoggettiProtocolloUtente to group amministratore ;; grant select,insert,update,delete on Protocollo.SoggettiProtocolloUtente to group protocollatore ;; grant update on Protocollo.Gen_IDSoggettoProtocollo to group amministratore ;; grant update on Protocollo.Gen_IDSoggettoProtocollo to group protocollatore
Indici Protocollo.SoggettiProtocollo
create index idx_soggettiprotocollo_iddocumento on protocollo.soggettiprotocollo using btree (iddocumento) ;; create index idx_soggettiprotocollo_idsoggetto on protocollo.soggettiprotocollo using btree (idsoggetto) ;; create index idx_soggettiprotocollo_riservato on protocollo.soggettiprotocollo using btree (riservato) ;;
Tabella di collegamento degli uffici (attribuzioni) referenti per il protocollo. Gli uffici referenti sono quelli a cui il protocollo è passato "in copia", e che devono, ad esempio, darlo per letto.
Informazione sui singoli campi
Generatore Protocollo.ReferentiProtocollo
create sequence Protocollo.Gen_IDReferenteProtocollo
Protocollo.ReferentiProtocollo
create table Protocollo.ReferentiProtocollo ( IDReferenteProtocollo largeid_t not null, IDDocumento stringid_t, IDUfficio smallid_t, Progressivo smallint_t not null default 0, Letto boolean_t not null, UtenteLetto username_t, DataLetto timestamp_t, constraint PK_ReferentiProtocollo primary key (IDReferenteProtocollo) ) inherits(Timestamped)
Chiavi esterne
FK Protocollo.ReferentiProtocollo->Anagrafiche.Uffici
alter table Protocollo.ReferentiProtocollo
add constraint fk_RP_IDUfficio foreign key (IDUfficio)
references Anagrafiche.Uffici (IDUfficio)
on update cascade
FK Protocollo.ReferentiProtocollo->Protocollo.Protocolli
alter table Protocollo.ReferentiProtocollo
add constraint fk_RP_IDDocumento foreign key (IDDocumento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Protocollo.ReferentiProtocollo
create function Protocollo.inizializza_referentiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(new.IDDocumento) or check_protocolloannullato(new.IDDocumento) then
raise exception ''Impossibile aggiungere uffici referenti ad un protocollo annullato o convalidato'';
end if;
if exists (select * from protocollo.protocolliutente p where
p.iddocumento = new.iddocumento and
p.convalidaparziale = TRUE) then
raise exception ''Inserimento non permesso: protocollo convalidato parzialmente'';
end if;
if new.IDReferenteProtocollo is NULL or new.IDReferenteProtocollo = 0 then
new.IDReferenteProtocollo = nextval(''Protocollo.Gen_IDReferenteProtocollo'');
end if;
if new.letto is not TRUE then
new.letto = FALSE;
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_referentiprotocollo
before insert on Protocollo.ReferentiProtocollo
for each row execute procedure Protocollo.inizializza_referentiprotocollo();
create trigger trg_ins_ts_p_referentiprotocollo
before insert on Protocollo.ReferentiProtocollo
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Protocollo.ReferentiProtocollo
create trigger trg_upd_ts_p_referentiprotocollo
before update on Protocollo.ReferentiProtocollo
for each row execute procedure aggiorna_timestamp();
Cancellazione record Protocollo.ReferentiProtocollo
create function Protocollo.cancella_referentiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(old.IDDocumento) or check_protocolloannullato(old.IDDocumento) then
raise exception ''Impossibile cancellare uffici referenti di un protocollo annullato o convalidato'';
end if;
return old;
end;
' language plpgsql;
create trigger trg_del_referentiprotocollo
before delete on Protocollo.ReferentiProtocollo
for each row execute procedure Protocollo.cancella_referentiprotocollo();
Modifica record Protocollo.ReferentiProtocollo
create function Protocollo.aggiorna_referentiprotocollo()
returns trigger as '
begin
if new.iddocumento != old.iddocumento then
raise exception ''Impossibile modificare uffici referenti di un protocollo annullato o convalidato'';
end if;
return new;
end;
' language plpgsql;
create trigger trg_upd_referentiprotocollo
before update on Protocollo.ReferentiProtocollo
for each row execute procedure Protocollo.aggiorna_referentiprotocollo();
Permessi di accesso
Permessi di accesso a Protocollo.ReferentiProtocollo
grant all privileges on Protocollo.ReferentiProtocollo to group amministratore ;; grant select,insert,update,delete on Protocollo.ReferentiProtocollo to group protocollatore ;; grant select on Protocollo.ReferentiProtocollo to public ;; grant all privileges on Protocollo.Gen_IDReferenteProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_IDReferenteProtocollo to group protocollatore
Controllo permessi modifica referente protocollo
create function Protocollo.verifica_permessi_aggiornamento_referenteprotocollo()
returns trigger as '
begin
if old.letto = TRUE and new.letto = FALSE then
raise exception ''Protocollo dato per letto precedentemente'';
end if;
if old.letto = FALSE and new.letto = TRUE then
if exists (select *
from anagrafiche.utentiufficio uu
join anagrafiche.utenti as ut on ut.idutente = uu.idutente
where ut.login = current_user
and uu.idufficio = new.idufficio
and uu.daiperletto = TRUE) then
new.utenteletto := current_user;
new.dataletto := ''now'';
else
raise exception ''Non puoi dare per letto il protocollo'';
end if;
end if;
if new.progressivo != old.progressivo then
if exists (select * from protocollo.protocolliutente p where
p.iddocumento = new.iddocumento and
p.convalidaparziale = TRUE) then
raise exception ''Modifica non permessa: protocollo convalidato parzialmente'';
end if;
end if;
return new;
end;
' language plpgsql;
;;
create trigger trg_permessi_upd_referenteprotocollo
before update on Protocollo.ReferentiProtocollo
for each row execute procedure Protocollo.verifica_permessi_aggiornamento_referenteprotocollo();
Controllo permessi cancellazione referente protocollo
create function Protocollo.verifica_permessi_cancellazione_referenteprotocollo()
returns trigger as '
begin
if exists (select * from protocollo.protocolli p where
p.iddocumento = old.iddocumento and
p.convalidaparziale = TRUE) then
raise exception ''Cancellazione non permessa: protocollo convalidato parzialmente'';
end if;
return old;
end;
' language plpgsql;
;;
create trigger trg_permessi_del_referenteprotocollo
before delete on Protocollo.ReferentiProtocollo
for each row execute procedure Protocollo.verifica_permessi_cancellazione_referenteprotocollo();
Indici Protocollo.ReferentiProtocollo
create index idx_referentiprotocollo_iddocumento on protocollo.referentiprotocollo using btree (iddocumento) ;; create index idx_referentiprotocollo_idufficio on protocollo.referentiprotocollo using btree (idufficio) ;;
Tabella di collegamento con i protocolli che rappresentano un riferimento diretto precedente con il protocollo in esame.
Informazione sui singoli campi
Generatore Protocollo.RiferimentiProtocollo
create sequence Protocollo.Gen_IDRiferimentoProtocollo
Protocollo.RiferimentiProtocollo
create table Protocollo.RiferimentiProtocollo ( IDRiferimentoProtocollo largeid_t not null, IDDocumento stringid_t, IDRiferimento stringid_t, constraint PK_RiferimentiProtocollo primary key (IDRiferimentoProtocollo) ) inherits(Timestamped)
Chiavi esterne
FK Protocollo.RiferimentiProtocollo->Protocollo.Protocolli
alter table Protocollo.RiferimentiProtocollo
add constraint fk_RP_IDDocumento foreign key (IDDocumento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
FK Protocollo.RiferimentiProtocollo->Protocollo.Protocolli (Riferimento)
alter table Protocollo.RiferimentiProtocollo
add constraint fk_RP_IDRiferimento foreign key (IDRiferimento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Protocollo.RiferimentiProtocollo
create function Protocollo.inizializza_riferimentiprotocollo()
returns trigger as '
begin
if new.IDRiferimentoProtocollo is NULL or new.IDRiferimentoProtocollo = 0 then
new.IDRiferimentoProtocollo = nextval(''Protocollo.Gen_IDRiferimentoProtocollo'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_riferimentiprotocollo
before insert on Protocollo.RiferimentiProtocollo
for each row execute procedure Protocollo.inizializza_riferimentiprotocollo();
create trigger trg_ins_ts_p_riferimentiprotocollo
before insert on Protocollo.RiferimentiProtocollo
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Protocollo.RiferimentiProtocollo
create trigger trg_upd_ts_p_riferimentiprotocollo
before update on Protocollo.RiferimentiProtocollo
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Protocollo.RiferimentiProtocollo
grant all privileges on Protocollo.RiferimentiProtocollo to group amministratore ;; grant select,insert,update,delete on Protocollo.RiferimentiProtocollo to group protocollatore ;; grant select on Protocollo.RiferimentiProtocollo to public ;; grant all privileges on Protocollo.Gen_IDRiferimentoProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_IDRiferimentoProtocollo to group protocollatore
Indici Protocollo.RiferimentiProtocollo
create index idx_riferimentiprotocollo_iddocumento on protocollo.riferimentiprotocollo using btree (iddocumento) ;; create index idx_riferimentiprotocollo_idriferimento on protocollo.riferimentiprotocollo using btree (idriferimento) ;;
Tabella di collegamento delle pratiche in cui è inserito il protocollo.
Informazioni sui singoli campi
Generatore Protocollo.PraticheProtocollo
create sequence Protocollo.Gen_IDPraticaProtocollo
Protocollo.PraticheProtocollo
create table Protocollo.PraticheProtocollo ( IDPraticaProtocollo smallid_t not null, IDDocumento stringid_t, IDPratica stringid_t, IDOggetto smallid_t, Progressivo smallint_t not null default 0, Istanza boolean_t, constraint PK_PraticheProtocollo primary key (IDPraticaProtocollo) ) inherits(Timestamped)
Chiavi esterne
FK Protocollo.PraticheProtocollo->Protocollo.Protocolli
alter table Protocollo.PraticheProtocollo
add constraint fk_PP_IDDocumento foreign key (IDDocumento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
FK Protocollo.PraticheProtocollo->Pratiche.Pratiche
alter table Protocollo.PraticheProtocollo
add constraint fk_PP_IDPratica foreign key (IDPratica)
references Pratiche.Pratiche (IDPratica)
on update cascade
FK Protocollo.PraticheProtocollo->Protocollo.Oggetti
alter table Protocollo.PraticheProtocollo
add constraint fk_PP_IDOggetto foreign key (IDOggetto)
references Protocollo.Oggetti (IDOggetto)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Protocollo.PraticheProtocollo
create function Protocollo.inizializza_praticheprotocollo()
returns trigger as '
begin
if new.IDPraticaProtocollo is NULL or new.IDPraticaProtocollo = 0 then
new.IDPraticaProtocollo = nextval(''Protocollo.Gen_IDPraticaProtocollo'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_praticheprotocollo
before insert on Protocollo.PraticheProtocollo
for each row execute procedure Protocollo.inizializza_praticheprotocollo();
create trigger trg_ins_ts_p_praticheprotocollo
before insert on Protocollo.PraticheProtocollo
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Protocollo.PraticheProtocollo
create trigger trg_upd_ts_p_praticheprotocollo
before update on Protocollo.PraticheProtocollo
for each row execute procedure aggiorna_timestamp();
Ogni protocollo deve stare in almeno una pratica
Ogni protocollo deve stare almeno in una pratica. Due trigger appositi verificano che questa condizione sia rispettata, evitando che sia cancellata o 'spostata' una pratica allegata, se questa è l'ultima.
Cancellazione record Protocollo.PraticheProtocollo
create function Protocollo.cancella_praticheprotocollo()
returns trigger as '
begin
if not exists (SELECT * FROM protocollo.praticheprotocollo WHERE iddocumento = old.iddocumento
AND idpratica <> old.idpratica) then
raise exception ''Impossibile rimuovere l''''ultima pratica in cui è inserito il protocollo'';
end if;
return old;
end;
' language plpgsql;
create trigger trg_del_praticheprotocollo
before delete on Protocollo.PraticheProtocollo
for each row execute procedure Protocollo.cancella_praticheprotocollo();
Modifica record Protocollo.PraticheProtocollo
create function Protocollo.aggiorna_praticheprotocollo()
returns trigger as '
begin
if new.iddocumento != old.iddocumento then
raise exception ''Impossibile rimuovere l''''ultima pratica in cui è inserito il protocollo'';
end if;
return old;
end;
' language plpgsql;
create trigger trg_upd_praticheprotocollo
before update on Protocollo.PraticheProtocollo
for each row execute procedure Protocollo.aggiorna_praticheprotocollo();
Permessi di accesso
Permessi di accesso a Protocollo.PraticheProtocollo
grant all privileges on Protocollo.PraticheProtocollo to group amministratore ;; grant select,insert,update,delete on Protocollo.PraticheProtocollo to group protocollatore ;; grant select on Protocollo.PraticheProtocollo to public ;; grant all privileges on Protocollo.Gen_IDPraticaProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_IDPraticaProtocollo to group protocollatore ;;
Le pratiche possono essere definite con flag riservata. In questo caso l'utente può visualizzare un descrizione completa della pratica collegata, solo se possiede il flag riservato per almeno uno tra gli uffici referenti.
Questo concetto è espresso dalla vista PraticheProtocolloUtente.
Pratiche protocollo visibili agli utenti
create view Protocollo.PraticheProtocolloUtente as
select pp.IDPraticaProtocollo
, pp.IDDocumento
, pp.IDPratica
, pp.IDOggetto
, pp.Progressivo
, pp.Istanza
, pp.rec_creato
, pp.rec_creato_da
, pp.rec_modificato
, pp.rec_modificato_da
from protocollo.praticheprotocollo as pp
join pratiche.praticheutente p on pp.idpratica = p.idpratica
where
p.riservata is not TRUE
or
(p.riservata is TRUE and check_utenteflaginreferente(current_user, 'riservato', pp.iddocumento, FALSE))
;;
create rule PraticheProtocolloUtente_insert as on insert to Protocollo.PraticheProtocolloUtente
do instead
insert into Protocollo.PraticheProtocollo (IDPraticaProtocollo
, IDDocumento
, IDPratica
, IDOggetto
, Progressivo
, Istanza
, rec_creato
, rec_creato_da
, rec_modificato
, rec_modificato_da
)
values (new.IDPraticaProtocollo
, new.IDDocumento
, new.IDPratica
, new.IDOggetto
, new.Progressivo
, new.Istanza
, new.rec_creato
, new.rec_creato_da
, new.rec_modificato
, new.rec_modificato_da
)
;;
create rule PraticheProtocolloUtente_update as on update to Protocollo.PraticheProtocolloUtente
do instead
update Protocollo.PraticheProtocollo
set IDPraticaProtocollo = new.IDPraticaProtocollo
, IDDocumento = new.IDDocumento
, IDPratica = new.IDPratica
, IDOggetto = new.IDOggetto
, Progressivo = new.Progressivo
, Istanza = new.Istanza
, rec_creato = new.rec_creato
, rec_creato_da = new.rec_creato_da
, rec_modificato = new.rec_modificato
, rec_modificato_da = new.rec_modificato_da
where IDPraticaProtocollo = old.IDPraticaProtocollo;
;;
create rule PraticheProtocolloUtente_delete as on delete to Protocollo.PraticheProtocolloUtente
do instead
delete from Protocollo.PraticheProtocollo
where IDPraticaProtocollo = old.IDPraticaProtocollo;
Permessi di accesso a Protocollo.PraticheProtocolloUtente
grant all privileges on Protocollo.PraticheProtocolloUtente to group amministratore ;; grant select,insert,update,delete on Protocollo.PraticheProtocolloUtente to group protocollatore ;; grant update on Protocollo.Gen_IDPraticaProtocollo to group amministratore ;; grant update on Protocollo.Gen_IDPraticaProtocollo to group protocollatore
Indici Protocollo.PrticheProtocollo
create index idx_praticheprotocollo_iddocumento on protocollo.praticheprotocollo using btree (iddocumento) ;; create index idx_praticheprotocollo_idpratica on protocollo.praticheprotocollo using btree (idpratica) ;;
Tabella anagrafica degli oggetti con cui i protocolli sono inseriti nelle pratiche.
Informazioni sui singoli campi
Protocollo.Oggetti
create table Protocollo.Oggetti ( IDOggetto smallid_t not null, Descrizione longstring_t, constraint PK_Oggetti primary key (IDOggetto) ) inherits(Timestamped)
Aggiornamento timestamp dei record
Inserimento record Protocollo.Oggetto
create function Protocollo.inizializza_oggetti()
returns trigger as '
begin
if new.IDOggetto is NULL or new.IDOggetto = 0 then
new.IDOggetto = nextval(''Protocollo.Gen_IDOggetto'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_oggetti
before insert on Protocollo.Oggetti
for each row execute procedure Protocollo.inizializza_oggetti();
create trigger trg_ins_ts_p_oggetti
before insert on Protocollo.Oggetti
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Protocollo.Oggetti
create trigger trg_upd_ts_p_oggetti
before update on Protocollo.Oggetti
for each row execute procedure aggiorna_timestamp();
Permessi di accesso
Permessi di accesso a Protocollo.Oggetti
grant all privileges on Protocollo.Oggetti to group amministratore ;; grant select,insert,update,delete on Protocollo.Oggetti to group protocollatore ;; grant select on Protocollo.Oggetti to public ;; grant all privileges on Protocollo.Gen_IDOggetto to group amministratore ;; grant all privileges on Protocollo.Gen_IDOggetto to group protocollatore
Contiene l'elenco dei protocolli in richiesta di annullamento e dei protocolli già annullati, arricchiti del riferimento alla motivazione dell'annullamento.
Informazioni sui singoli campi
Generatore Protocollo.Annullati
create sequence Protocollo.Gen_IDAnnullato
Protocollo.Annullati
create table Protocollo.Annullati ( IDAnnullato smallid_t not null, IDDocumento stringid_t, IDMotivazioneAnnullamento smallid_t, IDEsecutoreRichiesta smallid_t, DataRichiesta date_t, IDEsecutoreAutorizzazione smallid_t, DataAutorizzazione date_t, Respinto boolean_t, constraint PK_Annullati primary key (IDAnnullato) )
Chiavi esterne
FK Protocollo.Annullati->Protocollo.Protocolli
alter table Protocollo.Annullati
add constraint fk_A_IDDocumento foreign key (IDDocumento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
FK Protocollo.Annullati->Protocollo.MotivazioniAnnullamento
alter table Protocollo.Annullati
add constraint fk_A_IDMotivazioneAnnullamento foreign key (IDMotivazioneAnnullamento)
references Protocollo.MotivazioniAnnullamento (IDMotivazioneAnnullamento)
on update cascade
FK Protocollo.Annullati->Anagrafiche.Utenti (EsecutoreRichiesta)
alter table Protocollo.Annullati
add constraint fk_A_IDEsecutoreRichiesta foreign key (IDEsecutoreRichiesta)
references Anagrafiche.Utenti (IDUtente)
on update cascade
FK Protocollo.Annullati->Anagrafiche.Utenti (EsecutoreAutorizzazione)
alter table Protocollo.Annullati
add constraint fk_A_IDEsecutoreAutorizzazione foreign key (IDEsecutoreAutorizzazione)
references Anagrafiche.Utenti (IDUtente)
on update cascade
Aggiornamento dei record
Inserimento record Protocollo.Annullati
create function Protocollo.inizializza_annullati()
returns trigger as '
begin
if new.IDAnnullato is NULL or new.IDAnnullato = 0 then
new.IDAnnullato = nextval(''Protocollo.Gen_IDAnnullato'');
new.IDEsecutoreRichiesta = (select au.idutente from
anagrafiche.utenti au
where au.login = current_user);
new.DataRichiesta = ''now'';
end if;
if exists (select *
from anagrafiche.utenti ut
join anagrafiche.utentiufficio as uu
on uu.idutente = ut.idutente
join anagrafiche.uffici as uf
on uf.idufficio = uu.idufficio
where ut.login = current_user
and uf.ufficioprotocollo = TRUE) then
-- Annullamento autorizzato
new.IDEsecutoreAutorizzazione = (select au.idutente from
anagrafiche.utenti au
where au.login = current_user);
new.DataAutorizzazione = ''now'';
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_annullati
before insert on Protocollo.Annullati
for each row execute procedure Protocollo.inizializza_annullati();
Permessi di accesso
Permessi di accesso a Protocollo.Annullati
grant all privileges on Protocollo.Annullati to group amministratore ;; grant select,insert,update,delete on Protocollo.Annullati to group protocollatore ;; grant select on Protocollo.Annullati to public ;; grant all privileges on Protocollo.Gen_IDAnnullato to group amministratore ;; grant all privileges on Protocollo.Gen_IDAnnullato to group protocollatore
Quando un protocollo viene annullato, o quando ne viene richiesto l'annullamento, è necessario fornire una motivazione scelta tra quelle contenute nella tabella MotivazioniAnnullamento.
Informazioni sui singoli campi
Generatore Protocollo.MotivazioniAnnullamento
create sequence Protocollo.Gen_IDMotivazioneAnnullamento
Protocollo.MotivazioniAnnullamento
create table Protocollo.MotivazioniAnnullamento ( IDMotivazioneAnnullamento smallid_t not null, Descrizione longstring_t, constraint PK_MotivazioniAnnullamento primary key (IDMotivazioneAnnullamento) )
Aggiornamento dei record
Inserimento record Protocollo.MotivazioniAnnullamento
create function Protocollo.inizializza_motivazioniannullamento()
returns trigger as '
begin
if new.IDMotivazioneAnnullamento is NULL or new.IDMotivazioneAnnullamento = 0 then
new.IDMotivazioneAnnullamento = nextval(''Protocollo.Gen_IDMotivazioneAnnullamento'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_motivazioniannullamento
before insert on Protocollo.MotivazioniAnnullamento
for each row execute procedure Protocollo.inizializza_motivazioniannullamento();
Permessi di accesso
Permessi di accesso a Protocollo.MotivazioniAnnullamento
grant all privileges on Protocollo.MotivazioniAnnullamento to group amministratore ;; grant select on Protocollo.MotivazioniAnnullamento to public ;; grant all privileges on Protocollo.Gen_IDMotivazioneAnnullamento to group amministratore
Dati di base
Motivazioni di annullamento
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Protocollo duplicato')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Documento protocollato per test od esame')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Errore acquisizione mittente')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Atto ritirato')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Protocollo non corrispondente al documento')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Acquisizione erronea del numero')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Comunicazione tra uffici della stessa Area Omogenea')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Atto non emesso')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Errore materiale')
;;
insert into Protocollo.MotivazioniAnnullamento (Descrizione)
values ('Modifica contenuto')
;;
Tabella di collegamento tra gli allegati e un protocollo.
Informazioni sui singoli campi
Generatore Protocollo.AllegatiProtocollo
create sequence Protocollo.Gen_IDAllegatoProtocollo
Protocollo.AllegatiProtocollo
create table Protocollo.AllegatiProtocollo ( IDAllegatoProtocollo largeid_t not null, IDDocumento stringid_t, IDAllegato largeid_t, IDPadre largeid_t, NrRevisione integer_t, Progressivo smallint_t not null default 0, constraint PK_AllegatiProtocollo primary key (IDAllegatoProtocollo) ) inherits(Timestamped)
Chiavi esterne
FK Protocollo.AllegatiProtocollo->Anagrafiche.Allegati
alter table Protocollo.AllegatiProtocollo
add constraint fk_AP_IDAllegato foreign key (IDAllegato)
references Anagrafiche.Allegati (IDAllegato)
on update cascade
FK Protocollo.AllegatiProtocollo->Protocollo.Protocolli
alter table Protocollo.AllegatiProtocollo
add constraint fk_UP_IDDocumento foreign key (IDDocumento)
references Protocollo.Protocolli (IDDocumento)
on update cascade
Aggiornamento timestamp dei record
Inserimento record Protocollo.AllegatiProtocollo
create function Protocollo.inizializza_allegatiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(new.IDDocumento) or check_protocolloannullato(new.IDDocumento) then
raise exception ''Impossibile aggiungere allegati ad un protocollo annullato o convalidato'';
end if;
if new.IDAllegatoProtocollo is NULL or new.IDAllegatoProtocollo = 0 then
new.IDAllegatoProtocollo = nextval(''Protocollo.Gen_IDAllegatoProtocollo'');
end if;
return new;
end;
' language plpgsql;
create trigger trg_ins_init_allegatiprotocollo
before insert on Protocollo.AllegatiProtocollo
for each row execute procedure Protocollo.inizializza_allegatiprotocollo();
create trigger trg_ins_ts_p_allegatiprotocollo
before insert on Protocollo.AllegatiProtocollo
for each row execute procedure inizializza_timestamp();
Aggiornamento timestamp Protocollo.AllegatiProtocollo
create trigger trg_upd_ts_p_allegatiprotocollo
before update on Protocollo.AllegatiProtocollo
for each row execute procedure aggiorna_timestamp();
Cancellazione record Protocollo.AllegatiProtocollo
create function Protocollo.cancella_allegatiprotocollo()
returns trigger as '
begin
if check_protocolloconvalidato(old.IDDocumento) or check_protocolloannullato(old.IDDocumento) then
raise exception ''Impossibile cancellare allegati di un protocollo annullato o convalidato'';
end if;
return old;
end;
' language plpgsql;
create trigger trg_del_allegatiprotocollo
before delete on Protocollo.AllegatiProtocollo
for each row execute procedure Protocollo.cancella_allegatiprotocollo();
Modifica record Protocollo.AllegatiProtocollo
create function Protocollo.aggiorna_allegatiprotocollo()
returns trigger as '
begin
if new.iddocumento != old.iddocumento then
raise exception ''Impossibile modificare allegati di un protocollo annullato o convalidato'';
end if;
return new;
end;
' language plpgsql;
create trigger trg_upd_allegatiprotocollo
before update on Protocollo.AllegatiProtocollo
for each row execute procedure Protocollo.aggiorna_allegatiprotocollo();
Permessi di accesso
Permessi di accesso a Protocollo.AllegatiProtocollo
grant all privileges on Protocollo.AllegatiProtocollo to group amministratore ;; grant select,insert,update,delete on Protocollo.AllegatiProtocollo to group protocollatore ;; grant select on Protocollo.AllegatiProtocollo to public ;; grant all privileges on Protocollo.Gen_IDAllegatoProtocollo to group amministratore ;; grant all privileges on Protocollo.Gen_IDAllegatoProtocollo to group protocollatore
I riferimenti possono essere lettera, raccomandata, fax, email, etc
Informazioni sui singoli campo
Protocollo.TipologieRiferimentoMittente
create table Protocollo.TipologieRiferimentoMittente ( IDTipologiaRiferimentoMittente flag_t not null, Descrizione tinystring_t, constraint PKTipologieRiferimentoMittente primary key (IDTIpologiaRiferimentoMittente) )
Permessi di accesso
Permessi di accesso a Protocollo.TipologieRiferimentoMittente
grant all privileges on Protocollo.TipologieRiferimentoMittente to group amministratore ;; grant select on Protocollo.TipologieRiferimentoMittente to public
Dati di base
Protocollo.TipologieRiferimentoMittente di base
insert into Protocollo.TipologieRiferimentoMittente (IDTipologiaRiferimentoMittente, Descrizione) values ('-', '')
;;
insert into Protocollo.TipologieRiferimentoMittente (IDTipologiaRiferimentoMittente, Descrizione) values ('L', 'lettera')
;;
insert into Protocollo.TipologieRiferimentoMittente (IDTipologiaRiferimentoMittente, Descrizione) values ('R', 'raccomandata')
;;
insert into Protocollo.TipologieRiferimentoMittente (IDTipologiaRiferimentoMittente, Descrizione) values ('F', 'fax')
;;
insert into Protocollo.TipologieRiferimentoMittente (IDTipologiaRiferimentoMittente, Descrizione) values ('E', 'email')
;;
Le tabelle sono raggruppate nello schema pratiche:
Tabelle pratiche
Pratiche
create schema pratiche ;; grant all privileges on schema pratiche to group amministratore ;; grant usage on schema pratiche to public
Anagrafica delle pratiche.
Informazioni sui singoli campi
Generatore Pratiche.Pratiche (nr)
create sequence Pratiche.Gen_NrPratica ;; alter table Pratiche.Gen_NrPratica owner to istruttore
Pratiche.Pratiche
create table Pratiche.Pratiche ( IDPKPratica largeid_t not null, IDPratica stringid_t not null, Descrizione remark_t, IDTipologiaPratica smallid_t not null, Tipo stringid_t, Categoria smallid_t, Classe smallid_t, Fascicolo smallid_t, IDUfficio smallid_t not null, IDUbicazione smallid_t, IDFase smallid_t, Riservata boolean_t not null, --id_oggpratica integer, --ogg_libero character varying(250), --desc_ubic_fisica character varying(250), --id_oggetto integer, --n_inventario character(10), --anno_inv character(4), --stato integer, --ubicazione integer, --id_procedimento smallint, --id_proc_unico character(9), --risposte_incomplete_p smallint, --risposte_incomplete_a smallint, Scadenza date_t, DataChiusura date_t, TermineIstruttoria date_t, Note remark_t, constraint PK_Pratiche primary key (IDPKPratica), constraint UK_Pratiche_IDPratica unique (IDPratica) ) inherits(TimeStamped)
Chiavi esterne
FK Pratiche.Pratiche->Pratiche.TipologiePratica
alter table Pratiche.Pratiche
add constraint fk_P_IDTipologiaPratica foreign key (IDTipologiaPratica)
references Pratiche.TipologiePratica (IDTipologiaPratica)
on update cascade
FK Pratiche.Pratiche->Anagrafiche.Uffici
alter table Pratiche.Pratiche
add constraint fk_P_IDUfficio foreign key (IDUfficio)
references Anagrafiche.Uffici (IDUfficio)
on update cascade