|
|
| Nuova Versione Vincoli 1.6 |
|
|
|
|
Capitolo 1: Obiettivi
Il gruppo dei vincoli ha i seguenti
obiettivi:
- individuare tutti quei vincoli non
esprimibili graficamente e controllabili tramite trigger
o procedure;
- implementare i trigger in PL/SQL;
- realizzare una serie di test in PL/SQL
per verificare il corretto funzionamento dei trigger.
Capitolo 2: Vincoli
Aree
- Non è possibile cancellare
un'area alla quale sono associati uno o più
gruppi.
Categorie
- Non è possibile cancellare
una categoria alla quale sono associati uno o più
dipendenti.
Comunicazioni
- La data di immissione di una comunicazione
deve essere uguale alla data odierna nel caso di comunicazioni
di annullamento, modifiche dell'ora di rientro e modifiche
del giorno di rientro; deve essere precedente o uguale
alla data odierna nel caso di comunicazioni di malattia.
- La data di immissione di una comunicazione
di annullamento, di modifiche dell'ora di rientro
e di modifiche del giorno di rientro non può
essere precedente alla data di immissione della risposta
ad essa associata.
- Nelle comunicazioni di malattia la
data di fine non può essere precedente alla
data di inizio della malattia.
- Non è possibile effettuare
comunicazioni relative ad un mese per il quale il
dipendente ha già approvato lo statino.
- Ogni dipendente può inserire
e modificare solo comunicazioni che riguardano la
propria persona.
- Un dirigente può vistare solo
comunicazioni effettuate dai propri dipendenti.
Dipendenti
- Quando un dipendente cessa la sua
attività lavorativa viene eliminato dal proprio
gruppo di appartenenza, non fa più parte di
nessuna categoria e non lavora più a nessun
progetto.
- Le date di immissione di richieste
di assenza e di comunicazioni devono essere comprese
tra la data di assunzione e la data di fine servizio.
Dirigenti
- Quando un dirigente cessa la sua
attività lavorativa non è più
associato a nessuna unità organizzativa.
- Un'unità organizzativa può
avere come responsabile solo un dirigente in servizio
che non è responsabile di altre unità
organizzative.
- Le date di immissione delle risposte
devono essere comprese tra la data di assunzione e
la data di fine servizio.
Progetti
- Non è possibile rendere inattivo
un progetto a cui sono associati dei dipendenti.
- E' possibile associare ad un progetto
solo dipendenti che lavorano ancora in azienda.
Richieste
- La data di immissione di una richiesta
deve essere uguale a quella odierna.
- La data di inizio richiesta non può
essere precedente alla data odierna.
- La data di fine richiesta non può
essere precedente alla data di inizio richiesta.
- Ogni dipendente può inserire
e modificare solo richieste che riguardano la propria
persona.
Risposte
- La data di immissione di una risposta
non può essere precedente alla data di immissione
della richiesta a cui è associata.
- Un dirigente può immettere
solo risposte relative a richieste dei propri dipendenti.
Ruoli
- Non è possibile cancellare
un ruolo al quale sono associati uno o più
utenti.
Sedi
- Non è possibile cancellare
una sede alla quale sono associate una o più
aree.
Settori
- Non è possibile cancellare
un settore al quale sono associate una o più
aree.
Statini
- Non è possibile avere più
di uno statino, relativo ad un mese, associato ad
uno stesso dipendente.
- La data di approvazione di uno statino
deve essere nel mese successivo al mese di riferimento
dello statino.
- Ogni dipendente può approvare
solo statini che riguardano la propria persona.
Trasferte
- Una richiesta di trasferta deve essere
associata solo ad un progetto attivo.
Unità organizzativa
- Non è possibile eliminare
un'unità organizzativa alla quale sono associati
uno o più utenti.
Utente
- Quando un utente cessa la sua attività
lavorativa non è più associato a nessun
ruolo.
Capitolo 3: Implementazione vincoli
Vincolo
|
Nome
trigger |
Operazione
Scatenante |
Campi
interessati |
Tabella
interessata |
Tipo
di Test |
Ecc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Capitolo 4. Eccezioni sollevate
Le eccezioni sotto indicate sono dichiarate
nel package pEccezioni.
Vincolo
|
Nome
dell'eccezione sollevata trigger |
1
|
presentiGruppiNellArea
|
2
|
presentiDipendentiNellaCategoria
|
3,
16 |
violazioneDataOdierna
|
4
|
successioneDateComErrata
|
5
|
dataInizioFineMalattia
|
6
|
statinoGiaApprovato
|
7,
19, 27 |
violazioneDirittiDipendente
|
8,
21 |
violazioneDirittiDirigente
|
10
|
dataRichComFuoriRange
|
12
|
dirigenteNonDisponibile
|
13
|
dataRispFuoriRange
|
14
|
presentiDipendentiNelProgetto
|
15
|
dipendenteNonDisponibile
|
17
|
dataInizioRichiestaErrata
|
18
|
dataFineRichiestaErrata
|
20
|
successioneDateRispErrata
|
22
|
presentiUtentiNelRuolo
|
23
|
presentiAreeNellaSede
|
24
|
presentiAreeNelSettore
|
25
|
troppiStatini
|
26
|
dataApprovazioneStatinoErrata
|
28
|
progettoNonAttivo
|
29
|
presentiUtentiNellUnitaOrg
|
|
|
|
|