Manuale ePAS
Manuale ePAS
Attendance System
Release 2.0.0
04 mar 2021
Indice dei contenuti
1 Architettura di Massima 2
1.1 Componenti principali di ePAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Funzionalità principali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
i
6 Servizi REST di ePAS 78
6.1 Consultazione ed inserimento assenze via REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.2 Consultazione situazione riepilogi/attestati mensili via REST . . . . . . . . . . . . . . . . . . . . . 83
6.3 Consultazione e Gestione Contratti dei dipendenti via REST . . . . . . . . . . . . . . . . . . . . . . 86
6.4 Consultazione e Gestione Gruppi e Affiliazione via REST . . . . . . . . . . . . . . . . . . . . . . . 90
6.5 Consultazione Periodi di Aspettativa dei dipendenti via REST . . . . . . . . . . . . . . . . . . . . . 95
6.6 Consultazione situazione giornaliera dipendenti via REST . . . . . . . . . . . . . . . . . . . . . . . 97
6.7 Consultazione e Gestione dati Anagrafici dei dipendenti via REST . . . . . . . . . . . . . . . . . . . 101
6.8 Consultazione e Gestione figli/figlie dei dipendenti via REST . . . . . . . . . . . . . . . . . . . . . 103
6.9 Gestione delle timbrature via REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.10 Consultazione situazione ferie e permessi dei dipendenti via REST . . . . . . . . . . . . . . . . . . 109
6.11 Consultazione delle tipologie di orario di lavoro via REST . . . . . . . . . . . . . . . . . . . . . . . 111
8 Appendice 117
8.1 Autori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
ii
ePAS - Electronic Personnel Attendance System, Release 2.0.0
ePAS è il nuovo sistema di rilevazione e gestione delle presenze del personale CNR sviluppato dall'Istituto IIT in
collaborazione con l'Ufficio ICT; nasce nel 2012 come re-ingegnerizzazione di un sistema di rilevazione delle presenze
già sviluppato anni prima. ePAS consente l’integrazione con vari modelli di lettore badge per l'acquisizione delle
timbrature del personale ed è integrabile con varie componenti del sistema informativo di un Ente di Ricerca e con
sistemi di workflow paperless. È stato realizzato come applicazione web, al fine di una sua immediata fruibilità da
qualsiasi tipo di sistema (PC, Tablet, Smartphone). ePAS è attualmente utilizzato da più Enti di Ricerca.
Se sei interessato al codice sorgente di ePAS lo puoi trovare su github:
• https://github.com/consiglionazionaledellericerche/epas
Sono parte integrante di questa soluzione anche i client per l'acquisizione delle timbrature rilasciati anche questi come
opensource:
• https://github.com/consiglionazionaledellericerche/epas-client
• https://github.com/consiglionazionaledellericerche/epas-client-sql
Architettura di Massima
L'architettura è basata su due tipi di ecosistemi software che interagiscono tra di loro, i sistemi locali all'istituto/sede
territoriale ed il sistema centralizzato dell'ente.
Il paradigma di gestione dei dati del personale è basato sul concetto di anagrafica unica che sta adottando in questi
mesi anche il governo italiano, le informazioni che sono il comune denominatore di tutte le informazioni necessarie ad
ogni dipendente sono contenute all’interno dell’anagrafica centralizzata, gli istituti possono accedere alle informazioni
di propria competenza e possono integrare localmente tutti i dati che sono solo di interesse della sede locale.
Lo scopo di questa architettura distribuita è da una parte quella di uniformare le informazioni ed flussi di lavoro
necessari alla sede centrale per il corretto e snello svolgimento delle proprie attività amministrative ma allo stesso
tempo di garantire agli istituti una elevata flessibilità di adottare soluzioni personali ed innovative per la risoluzione di
problematiche specifiche dell’istituto.
Nel caso deL CNR, al ffine di evitare la duplicazione delle credenziali del personale è stato adottato un sistema
federato di autenticazione degli utenti basato sul progetto Idem del GARR. La sede centrale del CNR mette infatti
a disposizione un proprio Identity Provider tramite il quale sia le applicazioni della sede centrale che quelle locali
possono accedere per effettuare ’autenticazione dell’utente.
La figura 1 mostra l'architettura del sistema, sulla sinistra è rappresentata la sede centrale con il suo database del
personale ed i suoi servizi, sulla destra invece è rappresentato ePAS con i sui dati locali e la sue interazioni con il
portale servizi interni della sede centrale.
Il sistema ePAS è di tipo modulare (Figure 2). Il sistema si suddivide in tre componenti:
• ePAS Server
• ePAS Rest
• ePAS Stamping Client.
ePAS colleziona in un database locale dedicato tutte le informazioni relative ai dati gestiti dal sistema.
2
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Il modulo ePAS Server, realizzato in Java tramite il web application framework Play Framework!, utilizzando le
moderne tecnologie del Web (HTML5, CSS3, Bootstrap3, Javascript...) rende l'applicazione disponibile per la con-
sultazione da parte degli utenti tramite l'utilizzo dei principali browser Internet sia da postazione fissa che da device
mobile. Gli utenti del sistema possono consultare tramite web la propria situazione delle timbrature e delle assenze
ed i resoconti delle loro informazioni legate all'orario. Tramite questo modulo l'ufficio del personale può aggiornare e
tenere sotto controllo i dati di propria competenza.
Il modulo ePAS Rest, che utilizza ninjaframework, mette a disposizione le principali funzionalità di ePAS tramite
un'interfaccia RESTful ed è fondamentale per garantire l'integrazione di ePAS con gli eventuali altri sistemi presenti
localmente agli istituti. In particolare è tramite questo modulo che vengono inserite nel sistema le timbrature prelevate
da eventuali lettori badge o da altri sistemi di rilevazione delle presenze.
Il modulo ePAS Stamping Client, sono una serie di script in parte in Python, in parte in Java che si occupano di
interagire con i sistemi di rilevazione delle presenze, tipicamente con i lettori badge, estrarre dai lettori le informazioni
ed inviarle via Rest al modulo ePAS Rest per il loro salvataggio e trattamento.
Lo scopo principale di ePAS è l'acquisizione delle informazioni relative alle timbrature di ingresso/usciata del perso-
nale e quelle relative alle assenze giornalierre ed orario, otltre ad effettuare controlli di consistenza e coerenza delle
presene sulla base delle indicazioni del contratto nazionale CNR e delle sue circolari applicative.
Il sistema consente di:
• gestire le informazioni del personale dipendente e a contratto:
– dati anagrafici
– dati contrattuali
– contatti e riferimenti
– tipologia dell'orario di lavoro
• gestire le timbrature del personale dipendente, timbrature rilevate tramite sistemi di badge con banda
magnetica e/o sensore di prossimità e/o altri sistemi di rilevazione delle presenze
• gestire le ferie, i permessi, i recuperi e, in generale, i codici di assenza del personale
• gestire le competenze del personale dipendente: straordinari, reperibilità e turni
• gestire l'attribuzione dei buoni mensa e tener traccia delle ore di formazione del personale
• ottenere riepiloghi mensili e annuali, effettuare ricerche e resoconti sulle presenze, assenze e competenze
del personale dipendente.
Il sistema implementa un meccanismo per il controllo degli accessi basato su ruoli e permessi che permette:
• ai dipendenti
– di visualizzare, tramite interfaccia web, la propria situazione corrente e trascorsa in termini di timbrature,
assenze e relativi codici (numerici e descrittivi), il diritto al buono pasto, i riepiloghi orari comprensivi di
recuperi e straordinari, ecc.
– visualizzare vari riepiloghi tra i quali le assenze per mese/anno, le ferie fatte/residue per anno, le
competenze per mese/anno e il riepilogo ore di lavoro, straordinari e recuperi, le ore di formazione inserite
– ricevere segnalazioni via email in caso di incongruenza tra il loro orario di lavoro e le timbrature/assenze
• all’ufficio del personale
– di disporre delle funzionalità per la gestione delle tipologie di orario (tempo di lavoro che un dipendente
deve effettuare, tempo necessario per il diritto al buono pasto, tempo per l’intervallo pranzo, ecc.), la
gestione dei codici di assenza orari e giornalieri e la gestione dei dati del personale
– l’inserimento/modifica delle timbrature dei dipendenti (nel caso ad es. di malfunzionamenti nei sistemi
di rilevazione delle presenze, perdita o del badge, etc), per l’inserimento/la modifica dei codici e dei
giustificativi di assenza delle persone, oltre che per l’assegnazione delle competenze mensili
– disporre dei riepiloghi relativi alle presenze/assenze/competenze del personale e le funzionalità necessarie
per l’invio degli attestati di presenza e delle competenze alla sede centrale
ePAS (Electronic Personnel Attendance System) è un software per la rilevazione e gestione delle presenze del per-
sonale sviluppato dall'Istituto di Informatica e Telematica (IIT-CNR) per essere utilizzato dagli istituti del Consiglio
Nazionale delle Ricerche (CNR) Italiano. Questo documento descrive le principali funzionalità di ePAS sia dal punto
di vista del dipendente che dell'ufficio del personale che gestisce le presenze/assenze delle persone.
Il CNR è composto dalla sede centrale di Roma più 108 Istituti di Ricerca sparsi sul territorio italiano ed a sua volta
molti istituti hanno a loro volta diverse sedi distaccate. Ad oggi il CNR fornisce alla propria rete scientifica una serie
di servizi informatici centralizzati, tra cui l’anagrafica dei dipendenti, la gestione delle buste paga, i dati degli istituti,
le rendicontazioni dei progetti, etc.
Ogni istituto ha poi una parziale autonomia nella gestione del personale del proprio organico e delle attrezzature a sua
disposizione da cui ne deriva la necessità di gestire i dati delle rilevazioni delle presenze del personale, le giustificazioni
delle assenze, i flussi di lavoro interni per l’approvazione delle assenze, delle missioni all’estero, etc.
Scopo di ePAS è proprio la gestione dei dati locali agli istituti relativi al personale: rilevazione presenze, assenze,
competenze, buoni pasto, etc.
Il software può essere utilizzato dagli istituti del CNR che lo desiderano, ePAS è statto sviluppato nell’ambito della
collaborazione tra l'IIT e l’Ufficio Sistemi Informativi del CNR.
2.1 Inizializzazioni
Per poter correttamente utilizzare il sistema ePAS è necessario procedere con l'inizializzazione delle principali entità
che il sistema deve gestire: residui orari, buoni pasto, assenze. Per fare questo è sufficiente andare su Amministrazione
→ Dati iniziali. Si aprirà la seguente schermata:
In questa parte è possibile impostare il residuo orario relativo al monte ore anno passato (se disponibile) e al monte
ore anno corrente cliccando sul “+” in corrispondenza di ciascuna persona. Nella finestra che si apre, sarà importante
specificare inoltre la data a cui vorremo impostare l'inizializzazione; tale data determina infatti quale sarà il limite
temporale da cui ePAS dovrà iniziare a far partire i conteggi sulla base delle timbrature rilevate.
6
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Esempio: se inseriamo come data di inizializzazione il 31/12/2017 significa che i dati che stiamo inserendo sono
relativi a quel giorno specifico, ovvero al 31/12/2017 la situazione oraria del dipendente che stiamo inizializzando è
appunto quella che stiamo inserendo. Ciò significa che ePAS inizierà i propri conteggi sulla base delle timbrature a
partire dal 01/01/2018.
In questa schermata, raggingibile cliccando in alto alla voce Inizializzazione Buoni Pasto, è possibile inizializzare
il valore di buoni pasto residui a una certa data (di solito si tende a uniformare le date di inizializzazione di modo
da farle coincidere con l’inizio “ufficiale” dell'utilizzo del sistema ePAS) Anche in questo caso, cliccando sul “+” in
corrispondenza di ciascun dipendente si aprirà una schermata in cui occorrerà impostare la data di inizializzazione e il
valore dei buoni pasto residui a quella data.
2.1. Inizializzazioni 7
ePAS - Electronic Personnel Attendance System, Release 2.0.0
2.1. Inizializzazioni 8
ePAS - Electronic Personnel Attendance System, Release 2.0.0
• un'icona di download marrone che specifica che ci sono assenze che necessitano di dati da aggiungere su ePAS
per poter essere importate (sono i casi delle assenze di congedo parentale, ad esempio, che necessitano che
vengano inseriti su ePAS i figli del dipendente)
Inoltre, nell’ultima colonna, sarà disponibile un tasto arancione denominato “Importa” che, premuto, scaricherà
effettivamente le assenze su ePAS e permetterà l’allineamento tra i due sistemi.
Nella quarta scheda, Inizializzazione ferie e permessi, è possibile definire un’inizializzazione per i codici di assenza
di ferie (codici 31 e 32) e permessi (codice 94). Questa schermata, in fase di inizializzazione del sistema per la sede
per il CNR, è fortemente sconsigliata, poichè i dati relativi alle assenze vengono interamente reperiti dalla piattaforma
Attestati.
Per il CNR questa schermata può, al contrario, essere utilizzata quando si dovessero verificare dei disallineamenti tra i
quantitativi presenti su ePAS e quelli presenti su Attestati. Dal momento che Attestati è il “Master” delle informazioni
su assenze, competenze e quant’altro, attraverso questa schermata è possibile riallineare i due sistemi.
Il procedimento è del tutto analogo a quello effettuato per l’inizializzazione oraria: cliccando sul bottone “modifica”
in corrispondenza della persona di cui si vogliono inizializzare le ferie, comparirà una finestra in cui inserire la data
a cui si vuole inizializzare le ferie e i permessi, i giorni di ferie dell’anno passato utilizzati, i giorni di ferie dell’anno
corrente utilizzati e i permessi dell’anno corrente utilizzati.
2.1. Inizializzazioni 9
ePAS - Electronic Personnel Attendance System, Release 2.0.0
L’ultima scheda è relativa all’inizializzazione di altre tipologie di assenza. Si può selezionare la tipologia cliccando
sul menu a tendina a centro pagina, comparirà nell’ultima colonna il bottone “+” se non è presente una precedente
inizializzazione. A questo punto e, come nel caso delle ferie e dei permessi, cliccando sul bottone, sarà possibile
specificare la data di inizializzazione e le eventuali quantità (in giorni, ore e minuti...) a seconda della tipologia di
assenza che si intende inizializzare. Nella finestra è comunque presente una sorta di mini tutorial che guiderà l’utente
per una corretta inizializzazione.
La prima funzionalità che si incontra analizzando il sistema in modalità amministratore riguarda la possibilità di
inserire, modificare e, più in generale, gestire il personale. Dal menu Amministrazione → Lista Persone è possibile
aprire l'interfaccia di consultazione delle persone presenti in anagrafica.
In primo luogo si può notare come esistano due liste distine per il personale:
• La Lista del personale attivo contiene la lista di tutte le persone contrattualizzate e strutturate nella sede
• La Lista del personale non attivo che contiene la lista di tutte le persone che in passato sono state
contrattualizzate ma che al momento risultano non presenti nella lista del personale da inviare ad Attestati.
Entrambe le liste presentano gli stessi campi, ovvero:
• il nome e il cognome del dipendente (per privacy sono stati oscurati così come la matricola)
• la matricola
• il numero del badge
• le date di inizio e fine lavoro (la fine non è presente quando il contratto è a tempo indeterminato)
Nel caso si intenda inserire una nuova persona in anagrafica sarà per prima cosa necessario cliccare sul link in alto a
sinistra nella pagina: "Inserisci una nuova persona".
La pagina che si aprirà sarà come quella presentata nelle figure seguenti:
In queste due schermate sono presenti i campi da compilare (in grassetto quelli obbligatori) per poter inserire una
persona in anagrafica. Tutti i campi sono decisamente esplicativi, quelli particolari presentano una breve descrizione
che ne esplica il funzionamento. Inoltre, nella parte finale della schermata, dove occorre definire lo username con cui
tale dipendente potrà loggarsi su epas, è presente un campo autogenerante che popola lo username di default con i
valori nome e cognome del dipendente separati dal ".". Naturalmente questo valore è modificabile.
In caso si vogliano modificare i dati di una certa persona la schermata che potremo visualizzare sarà di questo tipo
Si può notare in alto la barra con le schede che separano la gestione di tutte le componenti relative al dipendente stesso:
• Dati anagrafici (quella aperta in avvio)
• Dati contrattuali
• Badge
• Figli
• Elimina
In ogni pannello (titolato) sono contenute informazioni referenti ad esso, rendendo così più intuitivo dove andare a
cercare l'informazione specifica che si richiede o che si intende modificare. Nel pannello relativo ai dati personali, è
possibile trovare alcune informazioni aggiuntive rispetto alla precedente versione. Difatti, esiste la possibilità di spe-
cificare se la persona in questione è Responsabile di un gruppo di lavoro (e in tal caso può usufruire della possibilità di
vedere le timbrature delle persone che afferiscono al proprio gruppo e la loro presenza giornaliera v. Amministrazione
→ Timbrature); è possibile inoltre specificare se la persona può/non può ricevere le mail per le informazioni circa la
propria situazione di timbrature e assenze (invio email). E' stato aggiunto inoltre un pannello relativo alle altre infor-
mazioni, contenente anche il campo in cui specificare l'eventuale eppn ovvero il campo utilizzato dalla piattaforma
Shibboleth (v. Decisioni implementative dal menu Documentazioni).
Nella tab “Dati contrattuali” è presente tutto quanto riguarda la gestione contrattuale del dipendente selezionato.
Nel pannello superiore è presente il riepologo relativo al contratto attuale, mentre nel pannello sottostante sono elencati
tutti i contratti che ha avuto il dipendente con la possibilità di gestirli attraverso il tasto “Gestisci”.
Cliccando sul tasto “Gestisci” in corrispondenza del contratto che si intende gestire si aprirà una finestra di questo
tipo:
Come si può notare nella parte alta sopra il pannello è presente una tab list contenente ogni informazione specifica
relativa al contratto adeguatamente separata:
• Date (attualmente visualizzata)
• Tipo orario
• Presenza automatica
• Elimina
La tab tipo orario, invece, contiene le informazioni all’orario di lavoro associato al contratto in essere. Nel pannello
in alto è presente la configurazione attuale dell’orario di lavoro associato al contratto. Mentre nel pannello in basso
è possibile specificare da quale data a quale data il dipendente utilizza un certo orario di lavoro (normale, maternità,
50%...)
La tab di presenza automatica consente all’amministratore di specificare se il dipendente può godere dell’autocer-
tificazione per la presenza a lavoro (orario giornaliero fissato al quantitativo orario giornaliero che per contratto il
dipendente deve effettuare) oppure no. Nel pannello in alto è presente la configurazione attuale, mentre in quello in
basso è possibile specificare date di inizio e fine di una nuova configurazione con timbratura automatica oppure no.
Selezionando la tipologia di timbratura dal menu a tendina (timbratura manuale / timbratura automatica) e specificando
il periodo per cui si vuole applicare tale modifica (leggendo accuratamente le istruzioni riportate nella finestra), il
sistema calcolerà le nuove impostazioni che saranno da subito visibili dal menu Timbrature.
La tab di eliminazione contratto consente di eliminare sia il contratto sia tutte le informazioni accessorie ad esso
collegate ed elencate in precedenza.
2.2.8 Badge
La tab di gestione dei badge associati ai dipendenti prevede una schermata in cui vengono elencati tutti i badge che
sono stati assegnati alla persona e su quale gruppo (e di conseguenza lettore badge) hanno diritto di poter essere
utilizzati. E’ possibile, per l’amministratore del personale, eliminare i badge presenti nella lista cliccando sul tasto
“Elimina” in corrispondenza del badge che si intende eliminare.
E’ inoltre possibile inserire un nuovo badge per il dipendente in questione cliccando in alto sul bottone “Nuovo badge
per <nome cognome dipendente>”.
In questa form si devono specificare il numero del badge che si intende associare, e il gruppo badge sul quale afferire
il badge stesso. Per una più dettagliata spiegazione sul significato di gruppo badge, consultare la documentazione per
Amministratore tecnico.
La tab di gestione dei figli del dipendente è molto importante poichè consente di avere dei riscontri circa la possibilità
di utilizzo di alcuni codici di assenza (malattia figlio ecc...). In questa schermata viene evidenziata la lista di figli che
ha un dipendente e fornita la possibilità di inserirne altri tramite il bottone “Inserisci figlio“.
Specificando nome, cognome e data di nascita, viene salvato il figlio del dipendente in anagrafica.
L’ultima tab presente è quella che consente l’eliminazione della persona dall’anagrafica del personale. Premendo su
“Elimina” il dipendente viene cancellato e con esso tutte le informazioni ad esso relative (contratti, piani ferie, residui
ecc...).
Gli orari di lavoro del personale sono una parte fondamentale dell'applicazione perché la loro definizione e la loro
associazione ai vari dipendenti determina il calcolo della “differenza” giornaliera ovvero della differenza tra i minuti
che un dipendente ha svolto in una determinata giornata ed i minuti che avrebbe dovuto svolgere in funzione del
proprio orario di lavoro. Dal menu Configurazione → orari di lavoro, l'amministratore potrà trovarsi di fronte una
schermata come questa:
Nella figura è riportato un esempio di timbrature di un dipendente e dei relativi calcoli in funzione del suo orario. Il
dipendente in questione ha un “Tipo Orario” denominato “Normale” e definito in configurazione del sistema come 7
ore e 12 dal lunedì al venerdì. Le timbrature registrate danno luogo ad un “Tempo di lavoro” effettuato dal dipendente
di 7 ore e 23 minuti. Dato che il suo orario prevedeva per quel giorno (il giovedì) 7 ore e 12, la “Differenza”
giornaliera è di 11 minuti. Il campo “Progressivo”, che nell'esempio è valorizzato a 11 minuti, rappresenta la somma
delle differenze di tutti i giorni del mese visualizzato e del giorno stesso, nell'esempio sopra essendo il primo giorno
del mese naturalmente il Progressivo è uguale alla Differenza del giorno stesso.
Visualizzazione degli orari di lavoro
La configurazione degli orari di lavoro è riservata all'amministrazione dell'istituto e l'accesso a questa funzionalità è
controllato con degli appositi permessi definiti all'interno dell'applicazione. Per accedere alla visualizzazione/azione
degli orari di lavoro si deve scegliere le voci di menu “Configurazione” → “Orari Lavoro”. La schermata “Orari
Lavoro” mostra un riepilogo degli orari di lavoro già definiti all'interno del sistema, gli orari sono suddivisi in due
tipologie:
• la tabella “Tipi orario CNR” riporta gli orari generici preimpostati dall'applicazione
• la tabella “Tipi Orario particolari attivi per . . . .” riporta invece quelli specifici per l'Istituto o per una sede
specifica nel caso l'istituto abbiamo più sedi
pannello nel quale dovranno essere specificati il nome dell'orario di lavoro (campo obbligatorio) e, giorno per giorno,
le eventuali quantità (da esprimere in minuti) relative al tempo di lavoro, al tempo di lavoro minimo per usufruire del
buono pasto e al tempo per la pausa pranzo.
Inoltre occorrerà specificare quali giorni dovranno essere considerati festivi.
Per l'amministratore è possibile controllare la situazione giornaliera/mensile di ogni dipendente afferente all'istituto.
Dalla schermata Amministrazione → Timbrature, è possibile verificare la situazione di ciascun dipendente
(selezionabile dal menu a tendina che compare in alto di fianco a mese e anno da consultare anch'essi selzionabili).
Nella pagina compaiono, oltre alle timbrature effettuate dal dipendente, tutta una serie di ulteriori informazioni ad
esempio, cliccando sul giorno interessato, è possibile vedere riassunta in tabella la situazione relativa alle modifiche
effettuate su quel giorno in termini di inserimento di assenze e timbrature con tanto di responsabile di tali modifiche.
La colonna "Buono mensa" riporta un'eventuale "x" nel caso in cui per quel giorno il dipendente non abbia raggiunto
il quantitativo di ore sufficienti a ottenere il buono pasto.
La colonna "Codice assenza" riporta l'eventuale codice d'assenza utilizzato dal dipendente per il giorno in questione. E'
modificabile dall'amministratore cliccando sulla riga del giorno in cui si vuol inserire il codice di assenza. Comparirà
una schermata di questo tipo:
Nel campo "codice" è possibile scrivere il codice di assenza che si intende assegnare al dipendente. In alternativa,
selezionandolo da uno dei due menu a tendina sulla destra, il codice verrà automaticamente inserito nel campo. La
sezione "fino a", se cliccata, genera un calendario che permette all'amministratore di specificare fino a quale giorno
si intende inserire il codice d'assenza per il dipendente (caso d'uso è l'inserimento di giorni di ferie consecutivi). E'
possibile inoltre allegare all'assenza un file pdf contenente il modulo cartaceo relativo all'assenza stessa, è il caso
questo di richiesta di giorni di ferie o di malattia, selezionandolo a partire dal campo "allegato". Nella parte bassa
della finestra, sono specificate alcune regole di comportamento per quanto riguarda codici di assenza speciali (FER).
Le colonne contenenti le timbrature mettono in ordine temporale e di tipo (ingresso/uscita) le timbrature effet-
tuate dal dipendente. Cliccando su ognuna di esse è possibile modificarla temporalmente (solo se sotto
richiesta esplicita di un responsabile o del direttore), modificarne la tipologia (da in-
gresso a uscita o viceversa), modificarne la causale (timbratura di servizio o no) o eliminarla (anche qui previa
autorizzazione di responsabile o direttore).
La colonna "inserisci timbratura" permette all'amministratore di inserire una timbratura manualmente. Cliccando
sui tre simboli '+' in corrispondenza del giorno in cui si intende apportare la modifica, si aprirà una finestra con le
informazioni da dover specificare:
• ore e minuti da poter inserire nel formato HHMM (quindi tipo: 0934)
• specificare se si tratta di un ingresso o di un'uscita
• specificare se si tratta o meno di una timbratura di servizio
• aggiungere o meno eventuali note alla timbratura
Le colonne, "Tempo lavoro", "Differenza", "Progressivo", sono quelle che concorrono alla formazione del residuo
mensile orario per il dipendente. In particolare nella colonna "Tempo lavoro" troviamo quante ore effettive di lavoro
sono state effettuate dal dipendente in un certo giorno, calcolate sulla base di quanto tempo è trascorso tra le timbrature
di ingresso e uscita effettuate. Nel caso ci trovassimo di fronte a un tempo di lavoro calcolato su giorno festivo, così
come da figura:
Sarà sufficiente per l'amministratore cliccare sulla scritta "Abilita" così da abilitare il tempo di lavoro per quel giorno.
Nella colonna "Differenza" troviamo invece la quantità oraria di differenza (positiva o negativa) rispetto a quante ore
il dipendente deve lavorare in quel giorno. La colonna "Progressivo", infine, contiene la somma algebrica di tutte
le differenze giornaliere accumulatesi fino al giorno in cui stiamo appunto guardando il progressivo. Le ultime due
colonne "Orario di lavoro" e "Note" contengono rispettivamente il tipo di orario di lavoro assegnato al dipendente e le
eventuali note riguardanti le timbrature del dipendente giorno per giorno.
Nella parte destra della pagina si possono notare alcuni pannelli, partendo dall'alto c'è il "Riepilogo ore" che contiene
un prospetto nel quale si possono notare:
• i giorni trascorsi a lavoro;
• il tempo disponibile per gli straordinari (calcolato sulla base della somma di tutte le differenze orarie POSITIVE
del mese in corso meno le eventuali ore di residuo negative accumulate fino a quel mese;
• il numero di riposi compensativi usati nell'anno (utile per i tecnologi che devono limitare l'utilizzo di giorni di
riposo compensativo);
• la possibilità di usufruire o meno delle ore di residuo derivate dall'anno precedente (parametro impostabile in
configurazione);
• lo schema contenente la ripartizione delle ore di residuo accumulate fino a quel mese per l'anno in corso
• lo schema contenente la ripartizione delle ore di residuo calcolate sull'anno in corso e sull'eventuale anno passato
(se ancora disponibili nel mese che si sta consultando).
Il secondo pannello che si incontra è quello relativo alla situazione dei buoni pasto dove si possono distinguere:
• i buoni pasto maturati;
• i buoni pasto eventualmente da restituire;
• il prospetto contenente la situazione dei buoni pasto consegnati e utilizzati dal dipendente (l'assegnazione dei
buoni si effettua nella pagina: "Gestione buoni pasto");
• la legenda che spiega la simbologia presente nella colonna "Buono mensa"
Il terzo pannello che si incontra è inizialmente chiuso ed è relativo alla simbologia associata alle timbrature.
Infine il quarto e ultimo pannello, anch'esso inizialmente chiuso, è relativo alle eventuali assenze effettuate nel mese
dal dipendente e contiene codice, descrizione e numero giorni di assenza per quel codice per ogni assenza effettuata.
All'interno di questa funzionalità è possibile specificare nomi e caratteristiche delle sedi di cui il proprio istituto di
appartenenza dispone, oltre che delle persone che saranno insignite dei diritti di amministrazione per poter gestire il
programma e il personale. Gli amministratori potranno essere designati sia completi (con diritto di modifica) o in sola
lettura, quindi con la possibilità di visualizzare le situazioni mensili del personale senza però poterle modificare. Dal
menu Configurazione → Sedi e amministratori l'amministratore si troverà di fronte la seguente schermata:
In particolare si può notare come l'istituto in questione presenti due sedi distinte. Chi detiene diritti di amministrazione
sulla sede, può modificare i parametri relativi alle informazioni di ubicazione della sede stessa cliccando sul nome. Per
ognuna delle sedi presenti, vengono visualizzati gli account corrispondenti ai lettori badge da cui timbrano i dipendenti
(sottolineati in verde) e presenti sia a livello di istituto che, più specificatamente, sulle sedi a cui sono effettivamente
associati.
Come si evince dalla schermata delle sedi e amministratori, è possibile associare ad ognuna delle sedi, se si hanno
diritti di amministrazione, eventuali altri amministratori. Sarà sufficiente cliccare sul link che permette l'aggiunta di
utenti amministratori e scegliere la persona dalla lista.
E' inoltre possibile, come si può notare dall'immagine ad inizio pagina, inserire delle tipologie di account di sistema.
Epas offre la possibilità di definire, tramite questa schermata, account di sistema quali BadgeReader e RestClient. I
primi devono essere associati con username e password ai client che si occupano di scaricare su ePAS le timbrature
prese dai lettori badge dai quali i dipendenti comunmente timbrano. I secondi, invece, sono account di tipo rest che
servono per chiamare i metodi rest che ePAS mette a disposizione di eventuali applicazioni che intendono interagire
con Epas stesso (v. Documentazioni -> Documentazione servizi rest).
Un aspetto importante per la gestione del sistema ePAS è il corretto utilizzo dei parametri. Dal menu Configurazione →
Parametri accediamo alla schermata della gestione dei parametri. Esistono due tipologie di parametri da configurare:
• I parametri generali
• I parametri annuali
Nella pagina relativa ai parametri generali possiamo modificare tutti quei valori che, si suppone, siano validi per
sempre come, ad esempio:
• il giorno della festa del patrono
• i parametri relativi alla connessione con il server della sede centrale che controlla gli attestati (di cui si parla
nella apposita sezione)
• il numero di colonne da visualizzare per la pagina delle timbrature
Tutti i parametri sono visualizzati per sede di appartenenza. È infatti possibile, cambiando il valore sopra i vari
pannelli, dove si vede scritto Sede, passare alla visualizzazione dei parametri relativi alle altre sedi associate all'istituto.
Ovviamente, i parametri sono modificabili se e solo se si hanno diritti di amministrazione totali sulla sede.
Anche i parametri annuali, come per quelli generali, sono associati alla sede di appartenenza e, come per i precedenti, è
possibile la modifica se e solo se si hanno diritti di amministrazione totali sulla sede. Nella pagina relativa ai parametri
annuali è possibile trovare tutti quei valori che si suppone possano essere modificati nel tempo e che, per comodità, si
assume possano avere valenza quantomeno annuale. Tra gli altri troviamo:
• Il giorno dell'anno entro cui usufruire delle ferie relative all'anno precedente
• Il limite massimo per l'utilizzo delle ore residue dell'anno precedente per i livelli 1-3 (ricercatori/ tecnologi)
• Il limite massimo per l'utilizzo delle ore residue dell'anno precedente per i livelli 4-8 (tecnici / amministrativi)
• Il numero massimo di giorni di riposo compensativo per i livelli 1-3 (ricercatori/ tecnologi)
• Il numero massimo di giorni di riposo compensativo per i livelli 4-8 (tecnici / amministrativi)
• Il limite orario massimo per la timbratura notturna (utile per i casi in cui ci siano timbrature a cavallo della
mezzanotte che debbano essere "spezzate" per i calcoli temporali tra giorno precedente e giorno attuale)
2.7 Assenze
Il sistema ePAS permette all'amministratore di poter verificare le assenze di tutto il personale attraverso vari livelli di
granularità. In particolare, dal menu Amministrazione → Assenze, accediamo alla schermata seguente:
In questa pagina è possibile controllare la tipologia delle assenze, raggruppate per codice, in un determinato mese. La
tabella, così come avviene nella tabella della lista del personale, è soggetta a dimensionamento, infatti in alto a sinistra
è presente un bottone che consente di decidere quanti elementi della lista visualizzare (di default impostato a 10, è
possibile comunque scegliere 25, 50 o tutti gli elementi). Sulla destra della tabella è inoltre presente un campo testuale
per la ricerca puntuale dei dipendenti. Qui è possibile scrivere il nome o il cognome del dipendente di cui si intende
2.7. Assenze 29
ePAS - Electronic Personnel Attendance System, Release 2.0.0
2.7. Assenze 30
ePAS - Electronic Personnel Attendance System, Release 2.0.0
verificare la situazione di assenze nel mese così da poterlo visualizzare senza tutti gli altri. In basso, sotto alla tabella,
è possibile vedere il numero di pagine in cui è stata suddivisa la lista di persone, che cambia naturalmente in base
a quanti elementi vengono selezionati in visualizzazione dalla form descritta in precedenza. E' possibile ordinare la
tabella per ciascuno dei campi presenti. Di default la tabella è ordinata in ordine alfabetico del personale, ma ciò non
toglie che, per esigenze personali, cliccando sull'intestazione della colonna, si decida di visualizzare la lista in ordine
ascendente o discendente rispetto a uno specifico campo (ad esempio in figura si può selezionare l'ordine discendente
dei codici di assenza "31" così da vedere chi nel mese ne ha presi di più).
Passando il mouse sopra il codice di assenza presente nell'intestazione della tabella, è possible anche vedere la descri-
zione del codice in questione. Inoltre, cliccando sul numero corrispondente al quantitativo di assenze fatte per quel
codice, verrà visualizzato un prospetto nel quale veriricare i giorni precisi del mese in cui quella persona ha usufruito
di quel codice di assenza. Nella parte superiore della pagina si trovano anche i menu a tendina relativi a mese e anno.
Selezionando il mese e l'anno desiderati si potranno verificare le situazioni di assenze mensili relative a quel periodo
temporale.
Cliccando poi sulla tab "Assenze annuali" si accede alla seguente schermata:
In questa sezione è possibile controllare la situazione delle assenze annuali relativa a una persona. Come nella pagina
delle assenze mensili, dal menu a tendina in alto è possibile selezionare l'anno di cui si intende verificare le assenze e
la persona di cui si vuol conoscere la situazione. Per ogni giorno dell'anno è riportato l'eventuale codice di assenza.
Una tabella riassuntiva al di sotto del tabellone, riporta la descrizione del codice utilizzato oltre a un totale di giorni in
cui si è usufruito di quel codice e al totale delle assenze effettuate nel corso dell'anno selezionato.
2.7. Assenze 31
ePAS - Electronic Personnel Attendance System, Release 2.0.0
La tab seguente è relativa agli allegati raggruppati per codice. Cliccando sulla voce di menu "Gestione allegati per
codice" si visualizza la seguente schermata:
In questa sezione è possibile verificare per quali codici di assenza sono stati inseriti degli allegati in formato pdf.
Cliccando sulla busta colorata di blu sarà possibile scaricare l'allegato relativo al codice situato di fianco.
Cliccando sulla tab "Gestione allegati per persona" si accede alla visualizzazione degli eventuali file allegati alle
assenze relativi a ogni singola persona.
In questa pagina è possibile selezionare, in alto, mese anno e persona di cui si intendono controllare eventuali allegati.
Il sistema caricherà la lista di tutti gli allegati disponibili per i parametri richiesti e, cliccando sulla figura a forma di
fermacarte di fianco alla data per cui è stato inserito l'allegato, sarà possibile scaricarli sul proprio pc.
L'ultima sezione navigabile è quella relativa alle assenze in periodo. Cliccando sull'ultima tab verrà caricata la seguente
schermata:
Selezionando il dipendente e il periodo temporale per cui si vogliono verificare le assenze e premendo su "invio",
verranno visualizate le tabelle relative a:
• la lista dei codici di assenza con relative date e descrizioni a sinistra della pagina
• un consuntivo raggruppato per tipologia di assenza (ferie, missione, malattia ecc...) sulla destra della pagina con
totale dei giorni per quella tipologia
2.7. Assenze 32
ePAS - Electronic Personnel Attendance System, Release 2.0.0
2.7. Assenze 33
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Il sistema ePAS fornisce all'amministratore anche una schermata in cui poter visualizzare la situazione relativa a ferie
e permessi di ciascun dipendente. Dal menu Amministrazione → Ferie e permessi è possibile visualizzare la seguente
schermata:
Come nella schermata relativa alla lista persone (v. Gestione e inserimento personale), anche in questo caso possiamo
notare come vengano listati di default 10 dipendenti. Grazie alla form in alto a sinistra è comunque possibile specificare
quanti elementi visualizzare. Anche qui è usabile la form di ricerca per visualizzare esclusivamente il dipendente
richiesto scrivendone il nome o il cognome nel riquadro in alto a destra rispetto alla tabella principale. Come descritto
per la lista persone, anche in questo caso si possono ordinare gli elementi cliccando sulla voce specifica che si intende
utilizzare. Di default l'ordinamento viene fatto per nome e cognome, ma cliccando sull'intestazione di una colonna
specifica è possibile ordinare in modo discendente o ascendente rispetto ad essa.
All'interno della tabella, si possono distinguere differenti voci:
• le ferie fatte l'anno precedente
• le ferie fatte l'anno corrente
• i permessi legge fatti
• le ferie residue dell'anno passato (contrassegnate da una "x" rossa se non più disponibili secondo quanto
specificato in configurazione (v. Gestione parametri)
• le ferie residue dell'anno in corso totali
• le ferie residue dell'anno in corso maturate
• i permessi residui totali
• i permessi residui maturati
Il sistema ePAS consente all'amministratore di gestire le competenze assegnabili a ciascuna persona afferente
all'istituto. Selezionando dal menu Amministrazione → Competenze, verrà visualizzata la seguente schermata:
Le competenze, come si evince dall'immagine, sono consultabili (e modificabili) per ogni persona in un certo anno e
in un certo mese (è sufficiente nel caso andare a selezionare anno e mese dal menu a tendina in alto). La schermata
principale presenta tre panelli:
• il pannello relativo all'assegnamento delle competenze (a sinistra nell'immagine), in cui troviamo il codice com-
petenza che si vuole assegnare (selezionabile dal menu a tendina), la lista dei nominativi a cui è stata assegnata
quella competenza suddivisi in pagine di 10 elementi ciascuna, e un box in cui poter ricercare dipendenti per
nome o cognome.
• il pannello relativo al riepilogo delle ore di straordinario pagate (a destra e in alto nell'immagine) nel mese in
questione, nell'anno in corso e il totale del monte ore usabile per gli straordinari assegnato all'istituto.
• il pannello relativo alle note per una corretta compilazione dei quantitativi orari/giornalieri delle competenze
Come nel caso dei parametri (v. Gestione parametri ), troviamo al di sopra dei pannelli un menu a tendina che specifica
per quale sede intendiamo assegnare le competenze. Naturalmente, sulla base dei privilegi che l'amministratore ha
assegnati (v. Gestione sedi e amministratori), sarà possibile modificare o meno le competenze per i dipendenti afferenti
alla propria sede o a quelle eventuali distaccate che fanno comunque parte del proprio istituto.
Nella tab "Abilita competenze" troviamo la lista del personale afferente all'istituto selezionato con di fianco tutte le
eventuali competenze assegnate a ciascun dipendente, contrassegnate con una spunta.
Come nelle precedenti due schermate di riepilogo e assegnamento di competenze, anche in questo caso è possibile
ricercare un dipendente per nome o cognome scrivendolo nell'apposito riquadro in alto a sinistra. Per modificare le
competenze o assegnarne di nuove, è sufficiente cliccare sul nominativo a cui si intende applicare la modifica. Si aprirà
una pagina di questo tipo:
Selezionando le competenze che si intende aggiungere al dipendente e premendo su "Ok", la pagina precedente verrà
ricaricata con i simboli di spunta in presenza delle competenze che sono state assegnate al dipendente.
La tab successiva è relativa alla configurazione del monte ore per gli straordinari
In questa schermata vengono riepilogate le aggiunte successive di ore per gli straordinari utilizzabili all'interno
dell'istituto (listate per data di aggiunta). In più è possibile specificare eventuali ulteriori ore di straordinario da
aggiungere (precedendo la quantità da inserire con il segno "+") o da togliere (precedendo la quantità da togliere con
il segno "-") rispetto al totale a cui ci troviamo.
La tab successiva che si incontra è quella relativa all'esportazione delle competenze. In particolare è possibile esportare
la situazione delle competenze assegnate a tutti i dipendenti in un determinato anno in formato csv
L'ultima tab è quella relativa alle competenze nell'anno, in particolare in questa tabella sono riportate tutte le compe-
tenze assegnate nell'anno. I risultati sono filtrabili solo per i tempi determinati o per tutti i dipendenti e per ciascuna
delle sedi su cui l'amministratore ha diritto di visualizzazione.
Il sistema ePAS permette all'amministratore di poter gestire i buoni pasto da attribuire a ciascun dipendente. Dal menu
Amministrazione → Gestione buoni pasto si arriva in questa schermata:
Come si può notare, la strutturazione della tabella ricalca quella della lista persone. Vengono, di default, visualizzate
10 persone ma dalla form in alto a sinistra è possibile specificare la visualizzazione di 25, 50 o di tutte le persone. E'
possibile la ricerca di una specifica persona usufruendo del riquadro di ricerca a destra in alto, scrivendo il nome o
il cognome della persona che si sta cercando. E' possibile l'ordinamento degli elementi su ciascuno dei campi della
tabella, è sufficiente cliccare sull'intestazione della colonna per ordinare in modo discendente o ascendente su quello
specifico campo.
Per ogni persona vengono visualizzati i buoni rimanenti dal mese precedente, quelli consegnati nel mese, quelli usati
nel mese e i rimanenti.
Cliccando sulla persona, si aprirà la form di inserimento dei ticket:
Il sistema ePAS consente all'amministratore di interfacciarsi con le funzionalità di sottomissione di assenze e compe-
tenze presenti sul sito https://attestati.rm.cnr.it/attestati Dal menu Amministrazione → Invio attestati, l'amministratore
si troverà di fronte a questa schermata:
A questo livello è possibile selezionare il mese e l'anno di cui si intende sottomettere, alla sede centrale, assenze e
competenze del personale (di default il sistema seleziona il mese precedente al mese attuale). Una volta selezionati i
valori che ci interessano è possibile fare la login al sistema cliccando su "login attestati".
Si entrerà a questo punto nell'area di login:
A questo livello viene posta all'attenzione dell'amministratore tutta la procedura da seguire per effettuare un corretto
invio degli attestati di presenza, a partire dallo stralcio dei dati fino alla spiegazione punto per punto di quel che farà
la procedura di ePAS una volta collegato al sistema centrale all'indirizzo https://attestati.rm.cnr.it/attestati
Le credenziali per l'accesso al sistema della sede centrale sono quelle relative agli account SIPER in dotazione a
ciascun dipendente del personale amministrativo.
Una volta effettuato l'accesso, l'amministratore si troverà di fronte a una schermata di questo tipo:
Per ogni dipendente registrato nella lista persone (v. Gestione e inserimento personale), si presenta:
• la matricola
• l'esito dell'elaborazione (nel caso un dipendente, dopo la procedura di stralcio, risulti non in CNR o non in lista
dipendenti, viene segnalato in questa colonna)
• i dati elaborati
• i problemi riscontrati
• la possibilità di elaborare singolarmente il dipendente
Al di sopra del pannello troviamo due bottoni, quello di ritorno al menu iniziale in cui impostare mese e anno per
l'elaborazione e il pulsante che permette l'elaborazione di tutta la lista del personale. Una volta premuto questo pul-
sante, ePAS inizierà l'elaborazione dei dati relativi a ciascun dipendente e, una volta terminato, apparirà una schermata
più o meno come questa:
Per ogni dipendente viene riassunta la situazione al termine dell'elaborazione. Se la riga si colora di verde, tutto è
andato a buon fine, altrimenti se si colora di rosso, ci sono stati errori durante l'elaborazione. In particolare, è possibile
per ciascun dipendente andare a controllare quali sono stati i dati elaborati cliccando in corrispondenza della voce
"dati" nella colonna Dati elaborati.
Si aprirà una finestra come questa:
Risultano visibili, all'interno della finestra:
• le assenze, rappresentate attraverso una terna di numeri che sono:
– il codice di assenza
– il giorno di inizio utilizzo del codice
– il giorno di fine utilizzo del codice
Il sistema ePAS consente all'amministratore di avere a disposizione delle schermate riepilogative relative a vari
argomenti. Dal menu Amministrazione → Timbrature mancanti si aprirà la seguente finestra:
In alto, dalla barra di menu, è possibile selezionare mese e anno per cui interessa vedere la situazione di timbrature
mancanti.
In finestra è possibile vedere, oltre alla lista del personale afferente alla sede, una serie di colonne che identificano:
• i giorni in cui non sono presenti, per la persona, nè timbrature nè codici di assenza
• i giorni in cui sono presenti timbrature disaccoppiate (ovvero esiste una timbratura di ingresso, ma manca la
corrispondente timbratura di uscita o viceversa) nei giorni feriali
• i giorni in cui sono presenti timbrature disaccoppiate per i giorni festivi
I giorni vengono colorati diversamente per far risaltare la gravità dell'"infrazione", dal rosso per quando non si hanno
nè timbrature nè codici di assenza, passando per il giallo quando non si ha una timbratura di ingresso o una di uscita
nei giorni lavorativi, per arrivare all'azzurro quando queste mancanze avvengono nei giorni festivi. Cliccando poi sul
nome, l'amministratore verrà reindirizzato alla pagina di gestione timbrature relativa al mese e all'anno selezionati dal
menu in alto.
Più in generale questa pagina agisce insieme a un cosiddetto "job", ovvero un programma che controlla giorno dopo
giorno questo genere di situazioni e invia, al dipendente interessato, una mail contenente la propria situazione relativa
alle varie infrazioni che può avere commesso con la raccomandazione di contattare il proprio ufficio del personale
per sistemare la propria situazione mensile di timbrature. La possibilità di inviare mail ai dipendenti è configurabi-
le da parte dell'amministratore, per farlo è sufficiente andare a modificare i parametri relativi a ciascun dipendente
nell'apposita pagina (v. Gestione e inserimento personale).
Le timbrature e i tempi di lavoro possono essere accompagnati da dei simboli (v. Gestione timbrature nella sezione
relativa ai pannelli delle note) così come la colonna relativa ai buoni pasto che presenta la stessa legenda riscontrabile
in Gestione timbrature nel pannello relativo ai buoni mensa. Come per le Timbrature mancanti, anche in questo caso
cliccando sul nome è possibile accedere alla schermata relativa alla situazione delle timbrature mensili della persona
selezionata.
in alto a sinistra nella pagina, selezionare il quantitativo di persone visibile: 10, 25, 50 o tutte. È altresì possibile
specificare il nome o il cognome della persona specifica che interessa, tramite la form a destra sopra la tabella, così
da circoscrivere la ricerca alla situazione della singola persona. Sempre come nel caso della lista persone, è possibile
ordinare gli elementi in tabella sul campo che più interessa (attualmente i dipendenti vengono ordinati per cognome).
Per ciascuno di essi viene visualizzato:
• nome e cognome
• il monte ore dell'anno passato
• il monte ore dell'anno corrente
• i buoni mensa residui
• il progressivo del mese
• le ore lavorate nel mese
• i giorni di riposo compensativo fatti nel mese
• le ore di straordinario pagate
Là dove i valori presenti nella cella risultassero negativi, verranno evidenziati dal fondo della cella di colore rosso, così
da rendere più evidente la situazione. Per quanto concerne i valori dell'ultima colonna, quella relativa agli straordinari
pagati, i quantitativi saranno disponibili e diversi da zero per coloro i quali hanno lo straordinario tra le competenze
assegnate E saranno stati assegnati secondo la logica di assegnamento (di solito all'inizio del mese successivo, per gli
straordinari relativi a un certo mese. Es.: gli straordinari di ottobre verranno assegnati a inizio novembre) (v. Gestione
competenze).
2.13 Utilità
2.13.1 Grafici
2.13. Utilità 48
ePAS - Electronic Personnel Attendance System, Release 2.0.0
2.13. Utilità 49
ePAS - Electronic Personnel Attendance System, Release 2.0.0
La sede centrale invia periodicamente (una volta l'anno) ai vari istituti lo "schedone", ovvero il resoconto di tutte
le assenze che i vari dipendenti dell'istituto in questione hanno effettutato nel corso dell'anno passato, così da poter
verificare eventuali incongruenze con quanto archiviato su ePAS e prendere le dovute contromisure.
Caricando il file che la sede centrale ha inviato (andandolo a scegliere dal file system attraverso il bottone "scegli file")
e premendo "Avanti", il sistema ePAS verificherà eventuali incongruenze tra quanto ha incamerato e quanto presente
nello schedone generando il seguente report:
In questa schermata è possibile verificare la lista di tutte le assenze che per qualche motivo non collimano con quanto
presente nello schedone. Si possono vedere infatti:
• la matricola del dipendente
• il nome e il cognome
• la data dell'assenza
• il codice di assenza utilizzato
• l'eventualità che una certa persona sia o non sia più presente in anagrafica mentre non sia o sia presente nello
schedone
• la motivazione relativa all'incongruenza riscontrata
• l'eventuale codice di assenza rilevato in anagrafica che risulta essere diverso da quello rilevato nello schedone
2.13. Utilità 50
ePAS - Electronic Personnel Attendance System, Release 2.0.0
2.13. Utilità 51
CAPITOLO 3
In questa documentazione verranno forniti gli strumenti e le informazioni necessarie all’amministratore tecnico per
configurare correttamente le sorgenti da cui prelevare le timbrature dei dipendenti (lettori badge) e i badge stessi da
associare ai dipendenti presenti nella sede gestita.
Il sistema ePAS consente all’amministratore tecnico (precedentemente assegnato) di configurare la sorgente da cui
prelevare le timbrature per l’ufficio su cui ha competenza. In realtà le sorgenti timbratura non sono altro che i lettori
badge su cui i dipendenti strisciano i loro badge per segnalare il loro ingresso o la loro uscita da lavoro. In sostanza,
quindi, una sorgente timbratura rappresenta un’astrazione del lettore badge su cui si vuole che i dipendenti siano
abilitati a timbrare.
In particolare, dal menu Configurazione → Sorgenti timbrature verrà visualizzata la seguente schermata:
Nella parte alta è visibile un avviso informativo volto a spiegare in che pagina ci si trova e cosa ci si appresta a
configurare/modificare. Sotto l’avviso è presente una lista delle sorgenti timbrature già definite.
Cliccando in alto a destra su Nuova sorgente timbrature si aprirà una nuova finestra:
Da questa finestra è possibile configurare una nuova sorgente timbrature, ovvero un'astrazione per il lettore badge che
dovrà inviare le timbrature che rileva ad ePAS.
• Nel campo Nome dovrà essere assegnato un nome univoco alla sorgente, possibilmente un nome che identifichi
in modo netto il lettore che si intende associare (es.: Lettore badge IIT Pisa);
• Nel campo descrizione potrà essere descritto brevemente il lettore, con le caratteristiche, il modello, la marca
ecc... (può comunque essere omesso);
• Nel campo location potrà essere descritto il luogo in cui è posizionato fisicamente il lettore (es.: "ingresso est"),
ma è un campo che può essere omesso;
52
ePAS - Electronic Personnel Attendance System, Release 2.0.0
• Nel campo sede responsabile occorrerà specificare quale sede sarà responsabile per quel lettore e quindi
quali dipendenti potranno timbrare da quel lettore (cliccando sul campo si aprirà una lista delle sedi per cui
l’amministratore tecnico è stato designato e che potranno essere associate al lettore);
• Nel campo username occorrerà specificare lo username con cui il lettore badge si collegherà ad ePAS via
basicAuth per inviare le timbrature;
• Nel campo password occorrerà specificare la password con cui il lettore badge si collegherà ad ePAS via
basicAuth per inviare le timbrature.
Una volta salvato, il nuovo lettore/sorgente di timbrature sarà visibile nella lista presente nella pagina principale.
Dalla pagina principale di Sorgenti timbrature, cliccando sul nome che identifica ognuna di queste, è possibile aprire
la seguente pagina:
Nella tab che si apre è possibile notare le informazioni di riepilogo relative alla sorgente timbrature selezionata. In
particolare sono considerati obbligatori i campi Nome e Sede Responsabile che identificano in maniera univoca la
sorgente timbratura e la sede che ne detiene i diritti. Nel pannello sottostante, invece, è presente la configurazione che la
sorgente timbrature deve avere per potersi collegare a ePAS e poter così inviare le timbrature al sistema. In particolare
è proposto lo username con il quale è stata salvata la sorgente timbrature e un campo password da (eventualmente)
modificare (qui presentato vuoto) per poter permettere alla sorgente timbrature di “autenticarsi” sul sistema ePAS,
farsi riconoscere e inviare le timbrature.
Nella seconda tab della lista presente in alto troviamo “Gruppi badge”. Cliccando sulla tab si aprirà la seguente
schermata:
Fig. 3.4: Schermata di configurazione dei gruppi badge da associare alla sorgente
In questa pagina troviamo i gruppi di badge associati alla sorgente timbrature, ovvero quei gruppi di badge che possono
timbrare su un certo lettore badge e che su di esso sono univocamente riconosciuti.
Al momento la pagina non presenta alcun gruppo associato al lettore badge, pertanto cliccando su Gestisci
associazione badge sarà possibile provvedere all’associazione:
In particolare è possibile notare come la sorgente di riferimento sia definita (lettore badge) e che a questo punto sia
sufficiente cliccare su Gruppi badge per poter definire quale/i gruppo/i badge associare a quel lettore. IMPORTANTE:
Se non fossero presenti gruppi di badge da associare al lettore, dovranno prima essere creati e poi, successivamente
tornare in questa schermata per provvedere all’associazione.
Per la creazione di un gruppo badge (v. Gruppi badge).
3.1.4 Elimina
In questa schermata è possibile associare un gruppo badge a una sorgente timbrature precedentemente creata.
Nella parte superiore della pagina è presente un avviso che spiega come sono associati i badge alla sorgente e quali
hanno diritto di timbrare su quella sorgente.
Sotto l'avviso si vede la lista dei gruppi badge già creati. Per ognuno degli elementi della lista è esplicitato il nome, la
sede su cui ha diritto e l’eventuale sorgente timbrature a cui è associato (viene visualizzata la scritta da configurare in
rosso se ancora non è stato associato ad alcuna sede).
Per inserire un nuovo gruppo di badge è sufficiente cliccare sul bottone verde sulla destra della pagina contrassegnato
dalla scritta: “Nuovo gruppo badge”:
A questo punto dovrà essere compilato ogni campo, assegnare un nome al gruppo badge (usare possibilmente un nome
particolarmente esplicativo di modo da rendersi bene conto a primo impatto CHI timbra in quel gruppo es.: Gruppo
badge IIT per lettore badge) e popolare la sede su cui quel gruppo badge sarà attivo selezionandola dalla lista che
compare cliccando sul campo obbligatorio Sede.
Una volta salvato il gruppo, questo dovrà essere associato a una sorgente di timbratura, per farlo v. Sorgenti timbratura.
Cliccando sul nome del gruppo badge presente nella lista, è possibile aprire il menu di configurazione dello stesso:
La prima pagina visualizzata è quella relativa al riepilogo del gruppo badge selezionato: vengono mostrate le informa-
zioni del lettore badge oltre a, se già associate, la lista delle sorgenti timbrature su cui quel gruppo badge è abilitato a
timbrare.
La seconda tab è quella relativa ai Badge:
A questo livello è possibile vedere la lista dei badge assegnati al lettore selezionato. Se non ci fossero ancora badge
associati al gruppo, è possibile farlo cliccando su Associa badge <nome gruppo> per <nome sorgente timbrature>:
n questa finestra si può associare alla singola persona, appartenente alla sede a cui il lettore badge può inviare le
timbrature, il numero badge che si desidera e che deve essere univoco (i controlli di univocità vengono fatti dal
sistema). Una volta selezionata la persona e inserito il numero di badge, questa associazione viene salvata e viene
creata una regola per cui la persona con il codice badge inserito appartiene al gruppo <Gruppo badge> che può
timbrare sul lettore <lettore badge>.
A questo punto, la lista di badge presenti nella schermata precedente viene popolata in questo modo:
Fig. 3.9: Pagina per la gestione dei gruppi di badge sui lettori
Fig. 3.11: Pagina per la associazione del singolo badge alla persona
Nel caso in cui si volessero configurare i numeri badge per tutti i dipendenti appartenenti a una certa sede, sarà
sufficiente cliccare sulla tab Avanzate:
ePAS fornisce la possibilità di utilizzare come numero univoco per il badge sia il numero di matricola (pannello
superiore), sia il vecchio codice “numero badge” nel caso in cui la lista persone presente nell’installazione di ePAS sia
precedente all’ultima modifica del codice (10/12/2015).
Nel primo caso, cliccando sul bottone Associa matricola il sistema si occuperà di associare a ciascuna persona presente
nella sede di appartenenza del gruppo la propria matricola. Evitando all’amministratore tecnico qualsiasi ulteriore step
aggiuntivo.
Nel secondo caso, cliccando sul bottone Associa tutti i vecchi codici il sistema associerà a ciascuna persona presente
nella sede (ed elencata come si vede in figura), il proprio vecchio codice (che veniva utilizzato come riferimento per
sapere chi aveva effettuato la timbratura sul lettore). Anche in questo caso l’amministratore tecnico non dovrà eseguire
ulteriori passi.
3.2.4 Elimina
L’ultima tab presente nel menu è quella relativa alla possibilità di eliminare un gruppo badge:
Sarà possibile eliminare un gruppo badge solo e soltanto se non è associato ad alcuna sorgente di timbratura v. Sorgenti
timbratura.
La prima schermata che compare una volta effettuato il login è relativa alla propria situazione mensile, ovvero tutto
ciò che riguarda presenze e assenze effettuate nel corso di un certo mese.
63
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Dal menu in alto alla pagina è possibile selezionare anno e mese di interesse (al momento del login verrà visualizzata la
schermata relativa a anno e mese attuali). Giorno dopo giorno è presentata la situazione del dipendente che comprende:
• la colonna buono mensa in cui viene specificato se il dipendente per il giorno in questione ha raggiunto o meno
il tempo utile a maturare il buono pasto;
• la colonna codice assenza, che contiene l'eventuale codice di assenza utilizzato dal dipendente per un certo
giorno (viene impostato dall'amministratore);
• le colonne relative alle entrate/uscite effettuate, con l'orario in cui è stata effettuata la timbratura
• la colonna tempo lavoro che contiene il quantitativo orario lavorato derivante dal conteggio effettuato sulle
eventuali entrate/uscite
• la colonna differenza che contiene la differenza tra il tempo di lavoro effettuato nella giornata e l'orario
giornaliero previsto dall'orario di lavoro assegnato al dipendente
• la colonna progressivo che contiene la progressione di tutte le differenze giornaliere
• la colonna orario di lavoro che contiene l'orario di lavoro assegnato al dipendente nel giorno specifico.
Passandoci sopra con il mouse il dipendente può controllare quali siano le caratteristiche ad esso associato:
– tempo di lavoro
– tempo per ottenere il buono pasto
– durata minima dell'intervallo pranzo
– la finestra temporale in cui esercitare la pausa pranzo
Nella parte destra della pagina, invece, sono presenti diversi pannelli (apribili e chiudibili cliccando sul titolo del
pannello). Nel primo che incontriamo è presente uno specchio relativo al riepilogo delle ore residue accumulate nel
corso dei mesi oltre ad una serie di informazioni aggiuntive circa i riposi compensativi utilizzati nel corso dell'anno
o il tempo disponibile per gli straordinari nel mese o i giorni lavorativi effettuati nel mese o, ancora, se è possibile
utilizzare i residui orari dell'anno precedente (parametro configurabile dall'amministratore nella apposita sezione dei
parametri).
Nel secondo pannello troviamo la situazione relativa ai buoni pasto che sono stati assegnati al dipendente (assegnabili
dall'amministratore nella apposita sezione "Gestione buoni pasto").
Ancora più sotto, inizialmente chiusi, troviamo:
• il pannello relativo alla legenda dei simboli che si trovano nella pagina della situazione mensile e che
accompagnano timbrature, orario di lavoro e situazione buono mensa
• il pannello relativo al riepilogo delle assenze che spiega il significato degli eventuali codici di assenza
utilizzati nel corso del mese.
In questa pagina il dipendente può trovare la propria situazione relativa ai codici di assenza che ha utilizzato all'interno
di un certo mese.
Come nel caso della situazione mensile anche qui è possibile selezionare anno e mese di cui si vuole visualizzare la
situazione delle assenze per quel mese. La schermata rappresenta la descrizione del codice di assenza, il codice stesso
e il numero di giorni in cui si è utilizzato quel codice. Cliccando sul numero di giorni in cui si è usato un certo codice,
si aprirà una finestra che contiene i giorni specifici in cui è stato usato quel codice.
In questa schermata il dipendente ha una percezione della propria situazione assenze nel corso dell'intero anno.
In questo caso, essendo una schermata di riepilogo annuale, l'unico parametro selezionabile dal menu in alto è l'anno.
E' possibile vedere una sorta di calendario che comprende tutti i giorni dell'anno e, in concomitanza di una giornata
contenente un'assenza, il codice viene riportato nella casella.
Al di sotto del calendario è presente un'ulteriore tabella che contiene una sorta di legenda relativa ai codici di assenza
utilizzati con le loro descrizioni e i giorni totali utilizzati per ciascun codice nell'arco dell'anno. Come ultima riga della
legenda è presente il TOTALE che somma tutti i codici utilizzati e dà la percezione di quante assenze siano state fatte
dal dipendente nell'arco dell'intero anno.
4.4 Ferie
In questa schermata è presente la situazione relativa alle ferie di cui il dipendente ha usufruito nel corso dell'anno
Anche in questo caso, essendo una schermata riepilogativa a base annuale, l'unico parametro modificabile nella barra
in alto è proprio l'anno.
Sono visibili tre pannelli:
• il pannello relativo alle Ferie che riepiloga:
– quanti sono stati i giorni di ferie dell'anno precedente totali (e maturati) e gli eventuali residui
– quanti sono i giorni di ferie dell'anno in corso totali (e maturati) e gli eventuali residui
Cliccando sul numero relativo alle quantità utilizzate si aprirà una finestra che specifica i giorni
dell'anno in cui si è goduto del codice di assenza per ferie (anno presente o passato).
4.4. Ferie 66
ePAS - Electronic Personnel Attendance System, Release 2.0.0
• il pannello relativo ai permessi legge in cui sono riepilogati i permessi legge totali (e maturati) e utilizzati
• il pannello relativo ai piani ferie associati al contratto in essere del dipendente: il piano ferie varia dopo 3
anni di contratto come da disposizioni cnr e le date sono specificate di fianco al piano ferie.
4.5 Competenze
Essendo una schermata a grana mensile, è possibile selezionare dalla barra in alto mese e anno di cui si intende
visualizzare le competenze.
Le competenze per i dipendenti vengono assegnate dall'amministratore nell'apposita schermata Competenze alla ta-
bella Abilita Competenze Tra le competenze assegnate c'è quella relativa agli straordinari che presenta, nella colonna
Quantità, il quantitativo orario massimo da utilizzare per poter prendere straordinari (il numero tra parentesi, che rap-
presenta il quantitavo di ore in più fatte dal dipendente nel corso del mese) e il quantitativo effettivamente assegnato
dall'amministratore (il numero fuori parentesi).
4.5. Competenze 67
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Questa schermata fornisce un riepilogo sulle principali voci interessanti per il dipendente raggruppate su base annuale
Essendo una schermata a grana annuale, il solo parametro modificabile dalla barra menu in alto è appunto l'anno.
Nella tabella si ritrovano, mese per mese diversi valori:
• le ore lavorate
• il monte ore a inizio mese suddiviso in:
– ore residuo anno passato
– ore residuo anno corrente
– totale
• il progressivo a fine mese, ovvero la somma di tutte le differenze giornaliere all'ultimo giorno del mese
• le ore di straordinario attribuite
• i riposi compensativi utilizzati (in giorni la quantità fra parentesi)
• il monte ore a fine mese suddiviso in:
– ore residuo anno passato
– ore residuo anno corrente
– totale
In questa schermata è possibile specificare, nel mese in cui ci si trova, la quantità di ore di formazione di cui si è
usufruito
Essendo a grana annuale, la schermata è modificabile solo nell'anno di riferimento. Per ogni mese presente nella
tabella si possono vedere:
• le ore di formazione (se inserite nei mesi precedenti all'attuale)
• il link per inserire ore di formazione per il mese in corso
• la colonna che contiene il resoconto dell'eventuale invio delle precedenti ore di fomazione inserite per i mesi
passati
Cliccando sul link per l'inserimento delle ore di formazione si aprirà una finesta come questa:
Seguendo le istruzioni per l'inserimento (visualizzabili cliccando sulla scritta Importante presente nel titolo del pan-
nello), occorrerà specificare il giorno di inizio, il giorno di fine e la quantità di ore di formazione che si è seguito.
Naturalmente per ogni mese è possibile specificare più di un intervallo temporale con le relative ore di formazione.
Una volta che il mese è trascorso, sarà compito dell'amministratore, inviando la situazione delle presenze tramite il
link "Invio Attestati" presente nel suo menu, inviare anche le ore di formazione per ciascun dipendente e, a quel punto,
nella colonna relativa all'approvazione delle ore per quel mese comparirà un segno di spunta.
Nel caso le ore del mese precedente non fossero ancora state approvate, è possibile modificarle cliccando sulla parte
bassa del pannello nell'apposito link.
In questa schermata è possibile, per il dipendente, modificare la propria password di accesso al sistema ePAS.
Come visibile dalla schermata, per il cambio password è richiesto di inserire la vecchia password, di specificarne una
nuova e, infine, di riscriverla per motivi di sicurezza.
72
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Al completamento del flusso per l'autorizzazione della missione, le informazioni sui giorni e gli orari di inizio e fine
missione verranno inviati ad ePAS che inserirà, sul cartellino mensile del dipendente, i giorni di assenza per missione
con l’opportuno codice di assenza: 92, 92M, 92NG (v. Regole del servizio per info per il dettaglio del comportamento
dei codici). Allo stesso modo, quando il dipendente inserirà la richiesta di rimborso missione, Missioni invierà ad
ePAS i dati relativi ai giorni e agli orari di inizio e fine missione. ePAS verificherà eventuali cambiamenti nei giorni
rispetto a quanto salvato in fase di ordine di missione ed effettuerà gli opportuni aggiornamenti dei codici di assenza
sul cartellino del dipendente.
5.2.1 Casistica
Qui di seguito è definito il comportamento che ePAS segue nell'inserire i codici di assenza sulla base delle informazioni
che Missioni invia:
Supponiamo di avere un intervallo (v. Configurazione del servizio per info) impostato in questo modo: Inizio: 08.30
/ Fine: 19:30 In base agli estremi impostati in questo intervallo, il sistema opererà il seguente controllo in fase di
inserimento dei codici di assenza:
• se l'orario di inizio missione è precedente all'inizio dell'attività lavorativa, ePAS inserirà un codice 92 a
giustificazione dell'intera giornata
• se l'orario di inizio missione è compreso tra l'inizio e la fine dell'attività lavorativa, ePAS inserirà:
– un 92 se la differenza tra l'orario di inizio missione e la fine della giornata lavorativa è superiore o uguale
all'orario di lavoro del dipendente in quel giorno (es.: se in quel giorno il dipendente parte alle 9 di mattina
e ha un orario di lavoro normale a 7 ore e 12 minuti, la differenza con la fine dell'orario lavorativo è
superiore alle 7 ore e 12 minuti quindi inserisco un 92).
– un 92M se la differenza tra l'orario di inizio missione e la fine della giornata lavorativa è inferiore all'orario
di lavoro del dipendente in quel giorno (es.: se in quel giorno il dipendente parte alle 17 e ha un orario di
lavoro normale, la differenza con la fine dell'orario lavorativo è di 2 ore e 30 minuti, quindi inserisco un
92M).
• se l’orario di inizio missione è successivo alla fine dell’attività lavorativa, ePAS inserirà un codice 92NG non
utile ai fini del riconoscimento di orario lavorativo
• se l'orario di fine missione è successivo alla fine dell'attività lavorativa, ePAS inserirà un codice 92 a
giustificazione dell'intera giornata
• se l'orario di fine missione è compreso tra l'inizio e la fine dell'attività lavorativa, ePAS inserirà:
– un 92 se la differenza tra l'orario di fine missione e l'inizio dell'attività lavorativa è superiore o uguale
all'orario di lavoro del dipendente in quel giorno (es.: se in quel giorno il dipendente arriva alle 18 e ha un
orario di lavoro normale a 7 ore e 12 minuti, la differenza con l'inizio dell'orario lavorativo è superiore alle
7 ore e e 12 minuti quindi inserisco un 92).
– un 92M se la differenza tra l'orario di fine missione e l'inizio della giornata lavorativa è inferiore all'orario
di lavoro del dipendente in quel giorno (es.: se in quel giorno il dipendente arriva alle 11 e ha un orario di
lavoro normale, la differenza con l'inizio dell'orario lavorativo è di 2 ore e 30 minuti, quindi inserisco un
92M).
• se l'orario di fine missione è precedente all'inizio dell'attività lavorativa, ePAS inserirà un codice 92NG non
utile ai fini del riconoscimento di orario lavorativo
Nei casi in cui viene inserito un 92M ePAS, in fase di invio dati ad Attestati, invierà:
• un 92HX dove X è la quantità oraria più prossima alla quantità giustificata dal codice 92M. Es.: se 92M giustifica
2 ore e 20 minuti, ePAS invierà ad Attestati un codice 92H2
Nei casi in cui viene inserito un 92NG, ePAS, in fase di invio dati ad Attestati, invierà:
• un 92. In questo caso ad Attestati interessa che venga inviato un codice che corrisponda all’inizio della missione
del dipendente, tuttavia ai fini del calcolo dell’orario di lavoro, il sistema invia il 92 solo per far corrispondere i
dati di Missioni con quelli di Attestati.
L’amministratore del personale potrà effettuare eventuali modifiche del cartellino del dipendente, aggiornando i codici
di assenza inseriti automaticamente per i singoli giorni di missione a seconda di eventuali informazioni aggiuntive che
il sistema non può conoscere quali ad esempio:
• la durata del trasferimento
• l'aggiunta di ore di lavoro in missione
• la destinazione della missione (nei casi, ad esempio, di missioni all’estero in altro continente, il volo di ritorno
potrebbe far terminare la missione la mattina presto. In questo caso, in accordo con l’USGTEP, potrebbe essere
possibile considerare l'inserimento del codice missione 92 anche per la giornata di arrivo.
Per poter permettere la corretta integrazione tra i due sistemi è stato necessario aggiungere un parametro di configura-
zione che permettesse al sistema ePAS di avere un riferimento orario in fase di inserimento dei codici di assenza per
missione oraria o giornaliera
Intervallo di attività lavorativa in sede per giorni missione (v. Configurazione del servizio per info). Per prima cosa
sono stati rivisti, di concerto con l’Ufficio Stato Giuridico e Trattamento Economico del Personale, i codici di assenza
da utilizzare:
• 92: codice di missione a completamento giornaliero (non è cambiato)
• 92M: codice di missione a giustificazione di ore e minuti. In fase di invio dati ad Attestati verrà inviato il codice
orario più prossimo alla quantità giustificata in ore e minuti
• 92NG: codice di missione per info circa il fatto che sia un giorno di missione ma con partenza successiva alla
fine dell'intervallo della giornata lavorativa o con arrivo precedente l'inizio della giornata lavorativa
Per poter spiegare nel modo migliore come funziona questa integrazione e cosa gli amministratori del personale (e i
dipendenti) troveranno sul cartellino mensile, abbiamo pensato che fosse più appropriato fornire una serie di esempi
pratici che rispecchiano situazioni che si possono verificare nella compilazione di ordini di missione o rimborsi.
Partiamo con lo stabilire che, per la nostra sede immaginaria, l'intervallo di attività lavorativa in sede per giorni di
missione (v. Configurazione del servizio per info) sarà: 08.30 - 19.30.
Supponiamo che il dipendente in esempio crei un ordine di missione che, una volta giunto a fine flusso di approvazione,
sia definito: dal 21 gennaio 2019 ore 15.45 al 24 gennaio 2019 ore 11.30.
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 21 gennaio un codice 92M che giustifica 3 ore e 45 minuti (in fase di invio dati ad Attestati verrà inviato un
92H3). In questo modo il dipendente dovrà completare la giornata lavorativa con le 3 ore e 27 minuti mancanti
al raggiungimento della totalità del suo orario di lavoro (se lavora con un orario di lavoro normale)
• il 22 gennaio un codie 92 che giustifica l'intera giornata
• il 23 gennaio un codice 92 che giustifica l'intera giornata
• il 24 gennaio un codice 92M che giustifica 3 ore (in fase di invio dati ad Attestati verrà inviato un 92H3). In que-
sto modo il dipendente dovrà completare la giornata lavorativa con 4 ore e 12 minuti mancanti al raggiungimento
della totalità dell'orario di lavoro (se lavora con un orario di lavoro normale).
Supponiamo che il dipendente in esempio crei un ordine di missione che, una volta giunto a fine flusso di approvazione,
sia così definito: dal 21 gennaio 2019 ore 10.45 al 21 gennaio 2019 ore 16.30.
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 21 gennaio un codice 92M che giustifica 5 ore e 45 minuti (in fase di invio dati ad Attestati verrà inviato un
92H5). In questo caso la quantità oraria da giustificare viene dedotta dagli orari di inizio e fine missione che
sono entrambi contenuti in un unico giorno (caso di missione oraria).
Supponiamo che il dipendente in esempio crei un ordine di missione che, una volta giunto a fine flusso di approvazione,
sia così definito: dal 21 gennaio 2019 ore 19.45 al 23 gennaio 2019 ore 06.30.
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 21 gennaio un codice 92NG che non giustifica niente (in fase di invio ad Attestati verrà inviato un 92). In
questo caso la partenza è successiva alla fine dell'attività lavorativa in sede pertanto non giustifico niente.
• il 22 gennaio un codice 92 che giustifica l'intera giornata
• il 23 gennaio un codice 92NG che non giustifica niente (in fase di invio ad Attestati verrà inviato un 92). In
questo caso l'arrivo è precedente all'inizio dell'attività lavorativa in sede pertanto non giustifico niente. E' sempre
possibile contattare l'USGTEP per concordare l'inserimento di un codice 92 che giustifichi l'intera giornata nel
caso ad esempio di voli di ritorno intercontinentali.
Supponiamo che il dipendente in esempio crei un ordine di missione che, una volta giunto a fine flusso di approvazione,
sia così definito: dal 21 gennaio 2019 ore 10.00 al 23 gennaio 2019 ore 19.00.
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 21 gennaio un codice 92 che giustifica l'intera giornata
• il 22 gennaio un codice 92 che giustifica l'intera giornata
• il 23 gennaio un codice 92 che giustifica l'intera giornata
Con riferimento alla situazione descritta nella sezione Primo caso ordine di missione supponiamo che il dipendente
crei un rimborso di missione che, una volta giunto a fine flusso di approvazione, determini:
• la partenza alle ore 14.45 invece che alle 15.45
• l'arrivo alle ore 13.30
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 21 gennaio un codice 92M che giustifica 4 ore e 45 minuti * il 22 gennaio un codice 92 che giustifica l'intera
giornata * il 23 gennaio un codice 92 che giustifica l'intera giornata * il 24 gennaio un codice 92M che giustifica
5 ore
Con riferimento alla situazione descritta nella sezione Secondo caso ordine di missione supponiamo che il dipendente
crei un rimborso di missione che, una volta giunto a fine flusso di approvazione, determini:
• la partenza alle ore 11.30
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 21 gennaio un codice 92M che giustifica 5 ore
Con riferimento alla situazione descritta nella sezione Terzo caso ordine di missione supponiamo che il dipendente
crei un rimborso di missione che, una volta giunto a fine flusso di approvazione, determini:
• la partenza alle ore 17.30
• l'arrivo alle 9.30
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 21 gennaio un codice 92M che giustifica 2 ore
• il 23 gennaio un codice 92M che giustifica 1 ora
Con riferimento alla situazione descritta nella sezione Quarto caso ordine di missione supponiamo che il dipendente
crei un rimborso di missione che, una volta giunto a fine flusso di approvazione, determini:
• la partenza il giorno 20 alle ore 18.30
• l'arrivo il giorno 22 alle ore 18.30
Con la nuova procedura di sincronizzazione con Missioni, ePAS riceverà quindi queste informazioni e, confrontandole
con il dato relativo all'intervallo di attività lavorativa in sede per giorni di missione, inserirà automaticamente sul
cartellino del dipendente queste assenze:
• il 20 gennaio un codice 92 che giustifica l'intera giornata poichè il 20 gennaio è domenica e quindi non
verrebbero effettuati calcoli sull'orario di lavoro
• il 21 gennaio un codice 92 che giustifica l'intera giornata
• il 22 gennaio un codice 92 che giustifica l'intera giornata * il 23 gennaio verrebbe rimosso il codice di missione
precedentemente inserito
ePAS comprende una API Rest che permette l'integrazione con altri software e servizi che possono aver bisogno delle
informazioni contenute in ePAS o che necessitano di integrarsi con le unzionalità fornite dal sistema. Le API rest
sono soggetto ad autenticazione di tipo Basic Auth ed l'accesso è autorizzato allo stesso meccanismo di controllo delle
autorizzazioni presente in ePAS. In particolare sono presenti due livelli di autenticazione per l'accesso alla API Rest:
• gli account per sede
– possono accedere solo ai dati della sede che li ha creati
– possono essere creati dagli amministratori tecnici delle singole sedi
• gli account di sistema
– possono accedere trasversalmente ai dati di tutte le sedi
– possono essere creati solo dagli admin dell'installazione di ePAS
Gli esempi sono per semplicità basati sulla httpie ed utilizzano la demo disponibile all'indirizzo https://epas-demo.
devel.iit.cnr.it .
Naturalmente gli stessi comandi che trovate di seguito possono essere eseguiti anche nella istanza di ePAS in
produzione del vostro ente.
Di seguito una breve spiegazione dell'API REST relativa alla consultazione ed inserimento delle assenze dei dipendenti
di una sede.
78
ePAS - Electronic Personnel Attendance System, Release 2.0.0
6.1.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Gestore Assenze
o Rest Client, oppure di Lettore Informazioni per le operazioni di sola lettura. I nuovi utenti possono essere definiti
dagli utenti che hanno il ruolo di amministratore tecnico.
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_absence_manager oppure istituto_xxx_personday_reader (cambiate il nome o in futuro andrà in conflitto con
quello di altri istituti) ed una volta creato l'utente assegnateli il ruolo Gestore Assenze.
Inoltre è possibile utilizzare un utente di sistema con ruolo di Gestore Assenze per accedere alle informazioni sulle
assenze di tutte le sedi. Questo utente è utiizzato per l'eventuale integrazione con sistemi esterni (per esempio di
rendicontazione) a livello di tutte le sedi. L'utente di sistema con ruolo di Gestore Assenze non può essere creato dalle
singole sedi ma può essere creato tra un utente con ruolo di Amministratore di ePAS.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
Le informazioni relative al assenze di un singolo dipendente in uno spefico intervallo temporatale anno sono disponibili
tramite una HTTP GET all'indirizzo /rest/absences/absencesInPeriod.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseoPersonId,
fiscalCode. Il periodo può essere specificato tramite le variabili begin ed end con data nel formato YYYY-MM-dd.
Negli esempi successivi viene utilizzato il parametro [email protected], cambiatelo con un utente
appropriato per la vostra sede.
$ http -a istituto_xxx_absence_manager
GET https://epas-demo.devel.iit.cnr.it/rest/absences/absencesInPeriod
[email protected] begin==2020-12-01 end==2021-12-31
[
{
"absenceCode": "37",
"date": "2020-12-21",
"description": "ferie anno precedente (dopo il 31/8)",
"hasAttachment": false,
"id": 107109,
"name": "Galileo",
"surname": "Galilei"
},
{
"absenceCode": "94",
"date": "2020-12-28",
"description": "festività soppresse (ex legge 937/77)",
"hasAttachment": false,
"id": 107110,
"name": "Galileo",
"surname": "Galilei"
}
]
È possibile verificare se è possibile inserire un'assenza per un dipendente senza effettuare l'effettivo inserimento.
Questa operazione è fruibile utilizzando l'endpoint /rest/absences/checkAbsence.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseoPersonId,
fiscalCode. Il periodo può essere specificato tramite le variabili begin ed end con data nel formato YYYY-MM-dd. Il
codice dell'assenza deve essere indicato con il parametro absenceCode.
$ http -a istituto_xxx_absence_manager
GET https://epas-demo.devel.iit.cnr.it/rest/absences/checkAbsence
[email protected] begin==2021-02-02 end==2021-02-03 absenceCode==31
Il risultato conterrà i giorni in cui sarebbe possibile inserire l'assenza, con un formato tipo il seguente:
[
{
"absenceCode": "31",
"date": "2021-02-02",
"isOk": true,
"reason": ""
},
{
"absenceCode": "31",
"date": "2021-02-03",
"isOk": true,
"reason": ""
}
]
Analogamente al metodo precedente per controllare un'assenza è possibile effettuare l'operazione di inserimento di
una assenza tramite una HTTP PUT all'endpoint /rest/absences/insertAbsence.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseoPersonId,
fiscalCode. Il periodo può essere specificato tramite le variabili begin ed end con data nel formato YYYY-MM-dd.
Il codice dell'assenza deve essere indicato con il parametro absenceCode. Nel caso di tratti di un'assenza oraria è
possibile indicare i campi hours and minutes.
$ http -a istituto_xxx_absence_manager
GET https://epas-demo.devel.iit.cnr.it/rest/absences/insertAbsence
[email protected] begin==2021-02-02 end==2021-02-03 absenceCode==31
Il risultato sarà un json contenente i codici effettivamente inseriti nel sistema nei vari giorni. Con un risultato tipo il
seguente:
[
{
"absenceCode": "31",
"date": "2021-02-02",
"isOk": true,
"reason": ""
},
{
"absenceCode": "31",
(continues on next page)
Per esempio nel caso di inserimento di giorni di ferie in un periodo che comprende giorni festivi il sistema inserirà i
codice relativi alle ferie solo nei giorni feriali.
Al fine di utilizzare la funzionalità già presente nell'interfacccia WEB di ePAS che calcola in autonomia il codice di
ferie più vantaggioso da inserire per il cliente (tra i 31, 32 e 94), è disponibile un metodo REST per l'inserimento
delle assenze di tipo ferie in cui non viene passato il codice da utilizzare. L'inserimento di una assenza di tipo ferie è
possibile tramite una HTTP PUT all'endpoint /rest/absences/insertVacation.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseoPersonId,
fiscalCode. Il periodo può essere specificato tramite le variabili begin ed end con data nel formato YYYY-MM-dd.
$ http -a istituto_xxx_absence_manager
GET https://epas-demo.devel.iit.cnr.it/rest/absences/insertVacation
[email protected] begin==2021-03-05 end==2021-03-08
Il risultato sarà un json contenente i codici effettivamente inseriti nel sistema nei vari giorni. Con un risultato tipo il
seguente.
[
{
"absenceCode": "31",
"date": "2021-03-05",
"description": "Ferie anno precedente",
"hasAttachment": false,
"id": 107159,
"name": "Galileo",
"surname": "Galilei"
},
{
"absenceCode": "31",
"date": "2021-03-08",
"description": "Ferie anno precedente",
"hasAttachment": false,
"id": 107160,
"name": "Galileo",
"surname": "Galilei"
}
]
Anche con questo metodo, nel caso di inserimento di giorni di ferie in un periodo che comprende giorni festivi, il
sistema inserirà i codice relativi alle ferie solo nei giorni feriali.
$ http -a istituto_xxx_absence_manager
GET https://epas-demo.devel.iit.cnr.it/rest/absences/delete
id==107109
È possibile cancellare più assenze di una persona che siano dello stesso tipo specificando i limiti temporali di ini-
zio e fine delle assenze da cancellare. Questa operazione può essere seguita con una HTTP DELETE all'endpoint
/rest/absences/deleteAbsencesInPeriod.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseoPersonId,
fiscalCode. Il periodo può essere specificato tramite le variabili begin ed end con data nel formato YYYY-MM-dd. Il
codice dell'assenze da cancellare deve essere indicato con il parametro absenceCode.
:: $ http -a istituto_iit_absence_manager DELETE https://epas-demo.devel.iit.cnr.it/rest/absences/
deleteAbsencesInPeriod [email protected] begin==2021-02-15 end==2021-02-16
absenceCode==31
Le assenze possono avere un allegato (per esempio un file PDF con dichiarazioni del dipendente o un file
con la certificazione di una visita medifica). L'allegato può essere scaricato con una HTTP GET all'indirizzo
/rest/absences/attachment.
Per individuare l'assenza di cui prelevare l'allegato si utilizza il parametro id dell'assenza.
$ http -a istituto_iit_absence_manager
GET https://epas-demo.devel.iit.cnr.it/rest/absences/attachment
id==107122
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="assenza-Galilei-Galileo-2021-02-12.pdf"
Content-Length: 410830
Content-Type: application/pdf
Date: Fri, 19 Feb 2021 10:28:47 GMT
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
Nel caso l'allegato non sia presente verrà restituito un codice HTTP 404.
Per inserire l'allegato è possibile utilizzare una HTTP POST all'indirizzo /rest/absences/addAttachment.
Per individuare l'assenza a cui associare l'allegato si utilizza il parametro id dell'assenza. La HTTP POST deve essere
di tipo Multipart/form-data e l'allegato deve essere passato con il nome file.
Esempio:
Nel caso sia già presente un allegato quello precedente viene sovrascritto.
Da notare che nell'esempio sopra si è utilizzata l'opzione --form ed il parametro file@assenza-Galilei-Galileo-2021-
02-15.pdf, dove file indica il nome utilizzato nella POST per passare allegato e @assenza-Galilei-Galileo-2021-02-
15.pdf il riferimento al file locale da caricare sul server tramite queste API.
Per eliminare l'allegato è possibile utilizzare una HTTP DELETE all'indirizzo /rest/absences/addAttachment.
Per individuare l'assenza di cui rimuovere l'allegato si utilizza il parametro id dell'assenza.
Esempio:
$ http -a istituto_iit_absence_manager
DELETE https://epas-demo.devel.iit.cnr.it/rest/absences/addAttachment
id==107122
Nel caso non fosse presente un'allegato viene restituito con codice HTTP 404, altrimenti un codice HTTP 200 se la
cancellazione va a buon fine.
Di seguito una breve spiegazione dell'API REST relativa alla consultazione della rendicontazione mensile delle assenze
/ competenze / buoni pasto / ore di formazione dei dipendenti di una sede.
6.2.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Lettore Informazioni
per la sede su cui si vuole effettuare le operazioni. I nuovi utenti possono essere definiti dagli utenti che hanno il ruolo
di amministratore tecnico.
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_person_day_reader (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta
creato l'utente assegnateli il ruolo Lettore informazioni.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v2/certifications/getMonthSituation
[email protected] year==2020 month==10
{
"absences": [
{
"code": "COVID19BP",
"from": "2020-12-01",
"justifiedTime": 432,
"justifiedType": "assign_all_day",
"to": "2020-12-02"
},
{
"code": "37",
"from": "2020-12-03",
"justifiedTime": 432,
"justifiedType": "all_day",
"to": "2020-12-03"
}
]
"competences": [
{
"code": "207",
"quantity": 3
},
{
"code": "208",
"quantity": 3
}
],
"fullName": "Galileo Galilei",
"mealTickets": [
{
"quantity": 10
}
],
"month": 12,
"number": "9802",
"trainingHours": [],
"year": 2020
}
Per ottenere lo stesso riepilogo ma per tutti i dipendenti di una sede è possibile utilizzare il metodo:
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v2/certifications/
˓→getMonthSituationByOffice
Il risultato sarà una lista dei riepilogi strutturati come quello dell'esempio precedente per il singolo dipendente.
Sono disponibili due metodi relativi ai servizi REST della parte certifications, questi metodi sono solamente un _pro-
xy_ rispetto ad Attestati nel senso che ePAS effettua le chiamate REST ad attestati per sapere se i cartellini sono stati
validati o meno.
QUESTI DUE METODI HANNO SENSO SOLO PER IL CNR DOVE E' PRESENTE IL SERVIZIO
ATTESTATI.
I due metodi sono:
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v2/certifications/
˓→getMonthValidationStatusByPerson
Questo metodo ritorna il valore true se l'attestato è stato validato, false altrimenti.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v2/certifications/
˓→getMonthValidationStatusByOffice
{
"allCertificationsValidated": false,
"notValidatedPersons": [
{
"email": "[email protected]",
"eppn": "[email protected]",
"fax": null,
"fiscalCode": "GLLGLL74P10G702B",
"id": 1234,
}
],
"validatedPersons": [
{
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "FBNLRD74P10G702G",
"fullname": "Fibonacci Leonardo",
"id": 1235,
"number": "9801"
}
]
}
ATTENZIONE QUESTO METODO PUO' ESSERE MOLTO LENTO, perché effettua una chiamata ad
Attestati per ogni dipendente
Di seguito una breve spiegazione dell'API REST relativa alla consultazione e gestione dei contratti che comprende i
metodi per la visualizzazione, la creazione, la modifica, la cancellazione e l'impostazione della continuità dei contratti.
6.3.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Gestore anagrafica
per la sede su cui si vuole effettuare le operazioni (lo stesso ruolo utilizzato per la gestione delle persone e dei gruppi).
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_registry_manager (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta creato
l'utente assegnateli il ruolo Gestore Anagrafica.
Inoltre è possibile utilizzare un utente di sistema con ruolo di Gestore anagrafica per accedere alle informazioni sulle
persone di tutte le sedi. Questo utente è utiizzato per l'eventuale integrazione con sistemi esterni (per esempio di
rendicontazione) a livello di tutte le sedi. L'utente di sistema con ruolo di Gestore anagrafica non può essere creato
dalle singole sedi ma può essere creato tra un utente con ruolo di Amministratore di ePAS.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
La lista dei contratti di una persona è fruibile tramite una HTTP GET all'indirizzo /rest/v2/contracts/byPerson.
La persona può essere individuata passando i soliti parametri identificativi delle persone: id, email, eppn,
perseoPersonId, fiscalCode.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/contracts/byPerson
[email protected]
[
{
"beginDate": "2018-12-27",
"endContract": null,
"endDate": null,
"externalId": null,
"id": 4284,
"onCertificate": true,
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"previousContract": null,
"workingTimeTypes": [
{
"beginDate": "2018-12-27",
"endDate": null,
"workingTimeType": {
"description": "Normale",
(continues on next page)
La visualizzazione dei dati di un contratto è possibile tramite una HTTP GET all'indirizzo /rest/v2/contracts/show.
Per individuare il contratto è possibile utilizzare solo il campo id.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/contracts/show
id==4284
{
"beginDate": "2018-12-27",
"endContract": null,
"endDate": null,
"externalId": null,
"id": 4284,
"onCertificate": true,
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 4222,
"number": "9802"
},
"previousContract": null,
"updatedAt": "2021-01-15T17:55:05.966788"
}
La stessa GET può essere effettuata passando l'id del contratto nel modo seguente:
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/contracts/show/4284
$ http -a istituto_xxx_registry_manager
https://epas-demo.devel.iit.cnr.it/rest/v2/contracts/update id=4284
beginDate=2018-12-27 endDate=2020-10-20 personId=1234
{
"beginDate": "2018-12-27",
"endContract": null,
"endDate": "2020-10-20",
"externalId": null,
"id": 4284,
"onCertificate": true,
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 4222,
"number": "9802"
},
"workingTimeTypes": [
{
"beginDate": "2018-12-27",
"endDate": null,
"workingTimeType": {
"description": "Normale",
"disabled": false,
"externalId": null,
"horizontal": true,
"id": 1,
"office": null
}
}
]
"previousContract": null,
"updatedAt": "2021-01-15T17:55:05.966788"
}
$ http -a istituto_xxx_registry_manager
POST https://epas-demo.devel.iit.cnr.it/rest/v2/contracts/create
beginDate=2020-10-21 personId=1234
{
"beginDate": "2020-10-21",
"endContract": null,
"endDate": null,
"externalId": null,
"id": 4678,
"onCertificate": true,
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 4222,
"number": "9802"
},
"workingTimeTypes": [
{
"beginDate": "2020-10-21",
"endDate": null,
"workingTimeType": {
"description": "Normale",
"disabled": false,
"externalId": null,
"horizontal": true,
"id": 1,
"office": null
}
}
]
"previousContract": null
}
Le uniche cosa da notare sono la necessità di indicare obbligatoriamente il campo personId (1234 nell'esempio) ed il
campo beginDate. È anche possibile impostare un campo workingTimeTypeId che contiene l'id che riferisce il tipo di
orario di lavoro del dipendente da associare a questo contratto. La lista dei tipi di orario di lavoro è ancora disponibile
con un apposito servizio REST. Se il campo workingTimeTypeId non viene passato il contratto viene creato con tipo
orario di lavoro "Normale", quello con 7:12 giornalieri.
Sia nella creazione che nell'aggiornamento sono presenti i controlli che le date del contratto non si intersechino con
quelle di altri contratti già esistenti.
È possibile impostare che un contratto è continuativo rispetto al precedente e che qundi ne erediti le ferie non godute
precedenti. Questa funzionalità è da utilizzare per esempio per alcune stabilizzazioni dove il dipendente mantiene dal
precedente contratto la situazione delle ferie non godute. Per impostare e rimuovere che un contratto è continuativo
rispetto al precedente è possibile utilizzare con un HTTP PUT i metodi:
• /rest/v2/contract/setPreviousContract
• /rest/v2/contract/unsetPreviousContract
$ http -a istituto_xxx_registry_manager
PUT https://epas-demo.devel.iit.cnr.it/rest/v2/contract/setPreviousContract?
˓→id=4678
$ http -a istituto_xxx_registry_manager
PUT https://epas-demo.devel.iit.cnr.it/rest/v2/contract/unsetPreviousContract?
˓→id=4678
$ http -a istituto_xxx_registry_manager
DELETE https://epas-demo.devel.iit.cnr.it/rest/v2/contract/delete?id=4678
Di seguito una breve spiegazione dell'API REST relativa alla consultazione e gestione dei gruppi e delle affiliazioni
del personale ai gruppi, comprende i metodi per la visualizzazione, la creazione, la modifica, la disattivazione e la
cancellazione dei gruppi ed i metodi per la gestione delle associazioni "temporizzate" delle persone ai gruppi.
Ogni sede potrà utilizzare l'API accedendo con un utente apposito opportunamente configurato ai soli dati della propria
sede.
Gli esempi sono per semplicità basati sulla httpie ed utilizzano la demo disponibile all'indirizzo https://epas-demo.
devel.iit.cnr.it .
6.4.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Gestore anagrafica
per la sede su cui si vuole effettuare le operazioni (lo stesso ruolo utilizzato per la gestione delle persone e dei gruppi).
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_registry_manager (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta creato
l'utente assegnateli il ruolo Gestore Anagrafica.
Inoltre è possibile utilizzare un utente di sistema con ruolo di Gestore anagrafica per accedere alle informazioni sulle
persone di tutte le sedi. Questo utente è utiizzato per l'eventuale integrazione con sistemi esterni (per esempio di
rendicontazione) a livello di tutte le sedi. L'utente di sistema con ruolo di Gestore anagrafica non può essere creato
dalle singole sedi ma può essere creato tra un utente con ruolo di Amministratore di ePAS.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
La creazione di una persona è possibile tramite una HTTP POST all'indirizzo /rest/v2/persons/create.
$ http -a istituto_xxx_registry_manager
POST https://epas-demo.devel.iit.cnr.it/rest/v2/groups/create
name="Gruppo Test" description="Gruppo di test" officeId=101
managerId=1234 externalId="gruppoTestExId"
{
"description": "Gruppo di test",
"endDate": null,
"externalId": "gruppoTestExId",
"id": 4,
"manager": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"name": "Gruppo Test",
"office": {
"code": "044000",
"codeId": "223400",
"id": 101,
"name": "IIT - Pisa"
},
"people": []
}
Le uniche cosa da notare sono la necessità di indicare il campo officeId (101 nell'esempio) ed il campo managerId (l'id
del responsabile del gruppo).
La visualizzazione dei dati di un gruppo è tramite una HTTP GET all'indirizzo /rest/v2/groups/show.
Per individuare il gruppo è possibile utilizzare solo il campo id.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/groups/show?id=101
{
"description": "Gruppo di di test",
"endDate": null,
"id": 4,
"externalId": "gruppoTestExId",
"manager": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"name": "Gruppo Test",
"office": {
"code": "074000",
"codeId": "225200",
"id": 201,
"name": "ISTI - Pisa"
},
(continues on next page)
La stessa GET può essere effettuata passando l'id del gruppo nel modo seguente:
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/groups/show/101
La lista dei gruppi di un ufficio è possibile tramite una HTTP GET all'indirizzo /rest/v2/groups/list.
Per individuare l'ufficio è possibile utilizzare una delle due chiavi candidate presenti sugli uffici:
• id, codeId (corrisponde al sede id di Attestati).
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/groups/list?id=101
[
{
"description": "Gruppo di test",
"endDate": null,
"id": 4,
"externalId": "gruppoTestExId",
"manager": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"name": "Gruppo Test"
}
]
$ http -a istituto_xxx_registry_manager
PUT https://epas-demo.devel.iit.cnr.it/rest/v2/groups/update?id=4
name="Gruppo Test" description="Gruppo di test" officeId=101 managerId=1235
˓→externalId="gruppoTestExId
$ http -a istituto_xxx_registry_manager
POST https://epas-demo.devel.iit.cnr.it/rest/v2/affiliations/create
groupId=4 personId=1235 percentage=80.0 beginDate=2020-10-12
{
"beginDate": "2020-10-12",
"endDate": null,
"externalId": null,
"group": {
"description": "Gruppo ISTI di test",
"endDate": null,
"id": 4,
"externalId": "gruppoTestExId",
"manager": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"name": "Gruppo Test"
},
"id": 4,
"percentage": 80.0,
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
(continues on next page)
Affiliation byGroup
http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/affiliations/byGroup
id==4 includeInactive==true
[
{
"beginDate": "2020-10-12",
"endDate": null,
"externalId": null,
"group": {
"description": "Gruppo di test",
"endDate": null,
"id": 4,
"externalId": "gruppoTestExId",
"manager": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"name": "Gruppo Test"
},
"id": 4,
"percentage": 80.0,
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "FBNLRD74P10G702G",
"fullname": "Fibonacci Leonardo",
"id": 1235,
"number": "9801"
}
}
]
Il parametro includeInactive è opzionale, se passato ed uguale a true mostra anche le affiliazioni che non sono più
attive alla data corrente.
Affiliation byPerson
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/affiliations/byPerson
id==4298
La persona può essere individuata passando i soliti parametri identificativi delle persone:
• id, email, eppn, perseoPersonId, fiscalCode.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/affiliations/show
id==4
$ http -a istituto_xxx_registry_manager
PUT https://epas-demo.devel.iit.cnr.it/rest/v2/affiliations/update
id==4 groupId=4 personId=1235 percentage=80.0 beginDate=2020-10-12 endDate=2021-
˓→01-31
$ http -a istituto_xxx_registry_manager
DELETE https://epas-demo.devel.iit.cnr.it/rest/v2/affiliations/delete
id==4
Di seguito una breve spiegazione dell'API REST relativa alla consultazione dei periodi di aspettativa del personale di
una sede.
6.5.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Lettore Informazioni
per la sede su cui si vuole effettuare le operazioni. I nuovi utenti possono essere definiti dagli utenti che hanno il ruolo
di amministratore tecnico.
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_person_day_reader (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta
creato l'utente assegnateli il ruolo Lettore informazioni.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
Le informazioni relative alle aspettative di un singolo dipendente in uno spefico anno sono disponibili tramite una
HTTP GET all'indirizzo /rest/v2/leaves/byPersonAndYear.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, per-
seoPersonId, fiscalCode, l'anno tramite il campo year. Negli esempi successivi viene utilizzato il parametro
[email protected], cambiatelo con un utente appropriato per la vostra sede.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v2/leaves/byPersonAndYear
[email protected] year==2020
Il JSON restituto contiene una lista con le eventuali aspettative del dipendente per l'anno selezionato
[
{
"person":
{
"id":9999,
"fullname":"Galileo Galilei",
"fiscalCode":null,
"email":"[email protected]",
"number":"9802",
"eppn":"[email protected]",
},
"code":"54A17",
"start":"2020-01-01",
"end":"2020-06-02"}
]
Per avere anche la lista delle assenze associate al periodo di aspettativa utilizzare nella chiamata REST il parametro
includeDetails=true, nel JSON di risposta sarà popolato per ogni periodo di aspettativa il campo absences con la lista
delle assenze nel periodo.
Analogamente ai metodi precedenti è possibile avere le informazioni annuali di tutte le aspettative dei dipendenti di
una sede tramite una HTTP GET all'indirizzo /rest/v2/leaves/byOfficeAndYear.
La sede è individuata tramite il parametro sedeId, per esempio per l'IIT corrisponde a 223400. Negli esempio
successivi sostituite 223400 con il sedeId della vostra sede.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v2/leaves/byOfficeAndYear
sedeId==223400 year==2020
Il JSON restituto contiene una lista con le eventuali aspettative di tutti i dipendenti della sede per l'anno selezionato.
[
{
"person":
{
"id" : 1234,
"fullname" : "Galileo Galilei",
"fiscalCode" : "GLLGLL74P10G702B",
(continues on next page)
Anche in questo caso per avere anche la lista delle assenze associate al periodo di aspettativa utilizzare nella chiamata
REST il parametro includeDetails=true, nel JSON di risposta sarà popolato per ogni periodo di aspettativa il campo
absences con la lista delle assenze nel periodo.
Di seguito una breve spiegazione dell'API REST relativa alla consultazione della situazione giornaliera delle presenze
e assenze dei dipendenti di una sede.
6.6.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Lettore Informazioni
per la sede su cui si vuole effettuare le operazioni. I nuovi utenti possono essere definiti dagli utenti che hanno il ruolo
di amministratore tecnico.
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_person_day_reader (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta
creato l'utente assegnateli il ruolo Lettore informazioni.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
Le informazioni di un singolo giorno sulle timbrature e assenze di una persona è fruibile tramite una HTTP GET
all'indirizzo /rest/v3/personDays/getDaySituation.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseo-
PersonId, fiscalCode, la data tramite il campo date. Negli esempi successivi viene utilizzato il parametro
[email protected], cambiatelo con un utente appropriato per la vostra sede.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v3/persondays/getdaysituation
[email protected] date==2020-10-28
Le informazioni mensili di una persona si ottengono in modo simile al precedente passando al posto del parametro
date i parametri year e month con un GET all'indirizzo /rest/v3/personDays/getMonthSituationByPerson.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v3/persondays/
˓→getMonthSituationByPerson
Analogamente ai metodi precedenti è possibile avere le informazioni giornaliere o mensili di tutti i dipendenti di una
sede. La sede è individuata tramite il parametro sedeId, per esempio per l'IIT corrisponde a 223400. Negli esempio
successivi sostituite 223400 con il sedeId della vostra sede.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v3/persondays/getdaysituationbyoffice
sedeId==223400 date==2020-10-28
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v3/persondays/
˓→getmonthsituationbyoffice
6.6.4 Timbrature per lavoro fuori sede o per motivi di servizio con luogo e/o
motivazione
Sono disponibili due endpoint per prelevare le informazioni relative alla timbrature per lavori fuori o per motivi di
servizio con impostato luogo e/o motivazione. Queste informazioni possono per esempio essere utilizzate da un
eventuale sistema esterno di rendicontazione dei progetti.
Per prelevare la lista delle giornate con timbrature per lavoro fuori sede o per motivi di servi-
zio con luogo e/o motivazione di un dipendente è possibile utilizzare una GET alll'endpoint /re-
st/v3/personDays/offSiteWorkByPersonAndMonth.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseoPersonId,
fiscalCode, i parametri year e month sono utilizzati per individuare l'anno ed il mese.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v3/personDays/
˓→offSiteWorkByPersonAndMonth
[
{
"absences": [],
"date": "2021-02-04",
"difference": -222,
"id": 363239,
"isHoliday": false,
"isTicketAvailable": false,
"progressive": -222,
"stampings": [
{
"date": "2021-02-04T09:00:00",
"id": 398918,
"markedByAdmin": false,
"markedByEmployee": false,
"note": null,
"place": "Torre di Pisa",
"reason": "Verificare ipotesi caduta dei gravi",
"stampType": "LAVORO_FUORI_SEDE",
"way": "in"
},
{
"date": "2021-02-04T12:30:00",
"id": 398919,
"markedByAdmin": false,
"markedByEmployee": false,
"note": null,
"place": "Torre di Pisa",
"reason": "Terminato esperimento caduta dei gravi",
"stampType": "LAVORO_FUORI_SEDE",
"way": "out"
}
],
"timeAtWork": 210
}
]
Analogamente è possibile ottenere le stesse informazioni ma per tutto il personale dipendente di una sede utilizzando
una GET all'indirizzo /rest/v3/personDays/offSiteWorkByOfficeAndMonth.
La sede è individuata tramite il parametro sedeId.
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v3/personDays/
˓→offSiteWorkByOfficeAndMonth
[
{
"absences": [],
"date": "2021-02-04",
"difference": -222,
"id": 363239,
"isHoliday": false,
(continues on next page)
Di seguito una breve spiegazione dell'API REST relativa alla gestione dei dati anagrafici dei dipendenti che comprende
i metodi per la visualizzazione, la creazione, la modifica e la cancellazione delle persone.
6.7.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Gestore anagrafica
per la sede su cui si vuole effettuare le operazioni (lo stesso ruolo utilizzato per la gestione delle persone e dei gruppi).
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_registry_manager (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta creato
l'utente assegnateli il ruolo Gestore Anagrafica.
Inoltre è possibile utilizzare un utente di sistema con ruolo di Gestore anagrafica per accedere alle informazioni sulle
persone di tutte le sedi. Questo utente è utiizzato per l'eventuale integrazione con sistemi esterni (per esempio di
rendicontazione) a livello di tutte le sedi. L'utente di sistema con ruolo di Gestore anagrafica non può essere creato
dalle singole sedi ma può essere creato tra un utente con ruolo di Amministratore di ePAS.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
La visualizzazione dei dati di una persona è tramite una HTTP GET all'indirizzo /rest/v2/persons/show.
Per individuare la persona è possibile utilizzare una delle cinque chiavi candidate presenti sulle persone:
• id, email, eppn, perseoPersonId, fiscalCode.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/persons/show?email=galileo.
˓→[email protected]
{
"badges": [
"15409"
],
"email": "[email protected]",
"eppn": "[email protected]",
"fax": null,
(continues on next page)
6.7. Consultazione e Gestione dati Anagrafici dei dipendenti via REST 101
ePAS - Electronic Personnel Attendance System, Release 2.0.0
La stessa GET può essere effettuata passando l'id della persona nei due modi seguenti:
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/persons/show/1234
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/persons/show/id=1234
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/persons/show?
˓→fiscalCode=GLLGLL74P10G702B
Nel caso vengano passati più parametri nella ricerca della persona l'ordine con cui viene cercata la persona è id, email,
eppn, perseoPersonId, fiscalCode.
La creazione di una persona è possibile tramite una HTTP POST all'indirizzo /rest/v2/persons/create.
$ http -a istituto_xxx_registry_manager
POST https://epas-demo.devel.iit.cnr.it/rest/v2/persons/create
number=99999 name=John surname=Doe [email protected] qualification=5
˓→officeId=101
L'unica cosa da notare è che per associare la persona è necessario indicare il campo officeId (201 nel caso di epas-
demo.devel.iit.cnr.it per ISTI - Pisa).
6.7. Consultazione e Gestione dati Anagrafici dei dipendenti via REST 102
ePAS - Electronic Personnel Attendance System, Release 2.0.0
La creazione di una persona è possibile tramite una HTTP PUT all'indirizzo /rest/v2/persons/update.
Per individuare la persona da aggiornare si utilizzano gli stessi parametri previsti per la show:
• id, email, eppn, perseoPersonId, fiscalCode.
$ http -a istituto_xxx_registry_manager
PUT https://epas-demo.devel.iit.cnr.it/rest/v2/persons/update?email=john.doe@isti.
˓→cnr.it
La cancellazione di una persona è possibile tramite una HTTP DELETE all'indirizzo /rest/v2/persons/delete.
Per individuare la persona da eliminare si utilizzano gli stessi parametri previsti per la show:
• id, email, eppn, perseoPersonId, fiscalCode.
$ http -a istituto_xxx_registry_manager
DELETE https://epas-demo.devel.iit.cnr.it/rest/v2/persons/delete?email=john.
˓→[email protected]
E' possibile avere la lista delle persone presenti nella sede tramite un HTTP GET all'indirizzo /rest/v2/persons/list.
Per individuare l'ufficio è possibile utilizzare una delle due chiavi candidate presenti sugli uffici:
• id, codeId (corrisponde al sede id di Attestati).
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/persons/list?id=101
Di seguito una breve spiegazione dell'API REST relativa alla consultazione e gestione dei figli e figlie dei dipenenti
che comprende i metodi per la visualizzazione, la creazione, la modifica e la la cancellazione dei figli/figlie.
6.8.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Gestore anagrafica
per la sede su cui si vuole effettuare le operazioni (lo stesso ruolo utilizzato per la gestione delle persone e dei gruppi).
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_registry_manager (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta creato
l'utente assegnateli il ruolo Gestore Anagrafica.
Inoltre è possibile utilizzare un utente di sistema con ruolo di Gestore anagrafica per accedere alle informazioni sulle
persone di tutte le sedi. Questo utente è utiizzato per l'eventuale integrazione con sistemi esterni (per esempio di
rendicontazione) a livello di tutte le sedi. L'utente di sistema con ruolo di Gestore anagrafica non può essere creato
dalle singole sedi ma può essere creato tra un utente con ruolo di Amministratore di ePAS.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
La lista dei figli/figlie di una persona è fruibile tramite una HTTP GET all'indirizzo /rest/v2/child/byPerson.
La persona può essere individuata passando i soliti parametri identificativi delle persone: id, email, eppn,
perseoPersonId, fiscalCode.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/child/byPerson
[email protected]
[
{
"bornDate": 1600-08-13,
"externalId": null,
"fiscalCode": "GLLVGN00M53G702I"
"id": 1236,
"name": "Virginia",
"surname": "Galilei",
"updatedAt": "2021-01-15T17:55:05.966788"
}
]
La visualizzazione dei dati di un figlio/figlia è possibile tramite una HTTP GET all'indirizzo /rest/v2/child/show.
Per individuare il figlio/figlia è possibile utilizzare solo il campo id.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/child/show
id==1236
{
"bornDate": 1600-08-13,
"externalId": null,
"fiscalCode": "GLLVGN00M53G702I"
"id": 1236,
"name": "Virginia",
"surname": "Galilei",
"updatedAt": "2021-01-15T17:55:05.966788"
}
La stessa GET può essere effettuata passando l'id del figlio/figlia nel modo seguente:
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it/rest/v2/child/show/1236
$ http -a istituto_xxx_registry_manager
https://epas-demo.devel.iit.cnr.it/rest/v2/child/update id=1236
name=Virginia surname=Galilei fiscalCode=GLLVGN00M53G702I
bornDate=1600-08-13 externalId=xyz
{
"bornDate": "1600-08-13",
"externalId": "xyz",
"fiscalCode": "GLLVGN00M53G702I",
"id": 1236,
"name": "Virginia",
"surname": "Galilei",
"updatedAt": "2021-01-15T17:55:05.966788"
}
La creazione di un figlio/figlia di una persona è possibile tramite una HTTP POST all'indirizzo /rest/v2/child/create.
$ http -a istituto_xxx_registry_manager
POST https://epas-demo.devel.iit.cnr.it/rest/v2/child/create
name=Vincenzio surname=Galilei fiscalCode=VNCGLL00M21G702U
bornDate=1606-08-21 externalId=xyzw
personId=1234
{
"bornDate": "1606-08-21",
"externalId": "xyzw",
"fiscalCode": "GLLVGN00M53G702I",
"id": 1237,
"name": "Vincenzio",
"surname": "Galilei",
"updatedAt": "2021-01-15T17:55:05.966788"
}
Le uniche cosa da notare sono la necessità di indicare obbligatoriamente il campo personId (1234 nell'esempio).
$ http -a istituto_xxx_registry_manager
DELETE https://epas-demo.devel.iit.cnr.it/rest/v2/child/delete?id=1237
Di seguito una breve spiegazione dell'API REST relativa alle operazioni sulle timbrature dei dipendenti di una sede.
Ogni sede potrà utilizzare l'API, accedendo con un utente apposito opportunamente configurato, ai soli dati della
propria sede. Questa è l'interfaccia WEB utilizzata dagli epas-client, per l'inserimento delle timbrature, se possibile,
è consigliato utilizzare uno degli ePAS client opensource disponibili:
• https://github.com/consiglionazionaledellericerche/epas-client
• https://github.com/consiglionazionaledellericerche/epas-client-sql
6.9.1 Permessi
Per poter accedere a questa interfaccia REST è necessario utilizzare le credenziali associate ad una Sorgente
Timbratura della propria sede. Eventualmente verificare nella documentazione di ePAS come creare le Sorgenti
Timbrature.
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare una nuova Sorgente Timbratura utente associato alla
vostra sede, con uno username tipo client_timbrature_sede_xxx.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
Per effettuare l'inserimento di una timbratura è necessario effettuare una HTTP POST all'endpoint /stam-
pingsfromclient/create. La POST deve contenere nel body un json con i campi della timbratura che
sono:
• operazione: è un numero obbligatorio. 0 indica un'entrata, 1 un uscita.
• causale: è una stringa opzionale. che contiene la causale della timbraura I valori attualmente gestiti sono
pausaPranzo, motiviDiServizio e lavoroFuoriSede.
• anno, mese, giorno, ora, minuti: sono tutti campi numerici obbligatori
• matricolaFirma: è una stringa obbligatoria. Indica il numero di badge
• terminale o lettore: è una stringa opzionale. Può contenere la zona di timbratura, utilizzata in alcuni rari casi
per gestire le timbrature continuative tra due zone definite
• note: è una stringa opzionale
• luogo: è una stringa opzionale
• motivazione: è una stringa opzionale
Un esempio è il seguente:
$ http -a client_timbrature_sede_xxx
POST https://epas-demo.devel.iit.cnr.it/stampingsfromclient/create
matricolaFirma=9802 operazione=0 anno=2021 mese=02 giorno=08 ora=08 minuti=10
˓→causale=lavoroFuoriSede luogo=Pisa motivazione='ero sotto la torre'
Il metodo restituisce una risposta vuota con uno dei seguenti codici HTTP di risposta:
• 200: timbratura inserita correttamente
• 400: body delle richiesta HTTP non presente
• 404: numero badge non trovato per la sorgente timbratura utilizzare per l'inserimento
• 409: in caso timbratura già presente (il sistema non ne inserisce un'altra uguale)
Dalla versione 3 dell'API è presente un nuovo metodo per l'inserimento di una timbratura. La nuova versione è
utilizzabile con una HTTP POST all'endpoint /rest/v3/stampings/create.
La POST deve contenere nel body un json con i campi della timbratura che sono:
• wayType: il campo è obbligatorio. I possibili valori sono in o out
• reasonType: è una stringa opzionale. che contiene la causale della timbraura I valori attualmente gestiti
sono pausaPranzo, motiviDiServizio e lavoroFuoriSede.
• dateTime: è un obbligatorio. Deve contenere la data e l'ora della timbratura in formato ISO, per esempio
2021-02-12T10:00
• badgeNumber: è una stringa obbligatoria. Indica il numero di badge
• zone: è una stringa opzionale. Può contenere la zona di timbratura, utilizzata in alcuni rari casi per gestire
le timbrature continuative tra due zone definite
• note: è una stringa opzionale
• place: è una stringa opzionale
• reason: è una stringa opzionale
Per esempio:
$ http -a client_timbrature_sede_xxx
POST https://epas-demo.devel.iit.cnr.it/rest/v3/stampings/create
badgeNumber=9802 dateTime='2021-02-12T08:20' wayType=in note='Note eccezionali
˓→veramente'
{
"date": "2021-02-12T08:20:00",
"id": 398946,
"markedByAdmin": false,
"markedByEmployee": false,
"note": "Note eccezionali veramente",
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"place": null,
"reason": null,
"stampType": null,
"stampingZone": null,
"way": "in"
}
La visualizzazione dei dati di una timbratura è tramite una HTTP GET all'indirizzo /rest/v3/stampings/show.
Per individuare la timbratura è possibile utilizzare solo il campo id.
$ http -a client_timbrature_sede_xxx
POST https://epas-demo.devel.iit.cnr.it/rest/v3/stampings/show id==398946
Il risultato sarà uguale a quello dell'esempio riportato sopra come risposta all'inserimento di una timbratura
$ http -a client_timbrature_sede_xxx
PUT https://epas-demo.devel.iit.cnr.it/rest/v3/stampings/update/398946
wayType=in place=='Torre di Pisa' reason=='Esperimento caduta gravi'
˓→reasonType=lavoroFuoriSede
La cancellazione di una timbratura è possibile tramite una HTTP DELETE all'indirizzo /rest/v2/stampings/delete
Per individuare la timbratura da eliminare si utilizza lo stesso parametro previsti per la show: id.
$ http -a istituto_xxx_registry_manager
DELETE https://epas-demo.devel.iit.cnr.it/rest/v2/stampings/delete?id=398946
Di seguito una breve spiegazione dell'API REST relativa alla consultazione della situazione delle ferie residue e
maturate dei dipendenti di una sede.
6.10.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Lettore Informazioni
oppure di Gestore Assenze per la sede su cui si vuole effettuare le operazioni. I nuovi utenti possono essere definiti
dagli utenti che hanno il ruolo di amministratore tecnico.
Su https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_person_day_reader (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta
creato l'utente assegnateli il ruolo Lettore informazioni (oppure Gestore Assenze).
Inoltre è possibile utilizzare un utente di sistema con ruolo di Gestore Assenze per accedere alle informazioni sulle
assenze di tutte le sedi. Questo utente è utiizzato per l'eventuale integrazione con sistemi esterni (per esempio di
rendicontazione) a livello di tutte le sedi. L'utente di sistema con ruolo di Gestore Assenze non può essere creato dalle
singole sedi ma può essere creato tra un utente con ruolo di Amministratore di ePAS.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
Le informazioni relative al assenze di un singolo dipendente in uno spefico intervallo temporatale anno sono disponibili
tramite una HTTP GET all'indirizzo /rest/v3/vacations/byPersonAndYear.
La persona può essere individuata passando i parametri identificativi delle persone: id, email, eppn, perseoPersonId,
fiscalCode. Il periodo può essere specificato tramite il parametro year. Il parametro year è opzionale, nel caso non
venga specificato viene mostrata la situazione dell'anno corrente.
Nell'esempio successivo viene utilizzato il parametro [email protected], cambiatelo con un utente
appropriato per la vostra sede.
6.10. Consultazione situazione ferie e permessi dei dipendenti via REST 109
ePAS - Electronic Personnel Attendance System, Release 2.0.0
$ http -a istituto_xxx_person_day_reader
GET https://epas-demo.devel.iit.cnr.it/rest/v3/vacations/byPersonAndYear
[email protected] year==2021
[
{
"contract": {
"beginDate": "2018-12-27",
"endContract": null,
"endDate": null,
"externalId": null,
"id": 4284,
"onCertificate": true,
"person": {
"email": "[email protected]",
"eppn": "[email protected]",
"fiscalCode": "GLLGLL74P10G702B",
"fullname": "Galilei Galileo",
"id": 1234,
"number": "9802"
},
"previousContract": null,
"updatedAt": "2021-01-15T17:55:05.966788"
},
"currentYear": {
"accrued": 4,
"total": 28,
"usable": 28,
"usableTotal": 28,
"used": 0,
"year": 2021
},
"date": "2021-02-18",
"lastYear": {
"accrued": 28,
"total": 28,
"usable": 12,
"usableTotal": 12,
"used": 16,
"year": 2020
},
"permissions": {
"accrued": 1,
"total": 4,
"usable": 4,
"usableTotal": 4,
"used": 0,
"year": 2021
},
"year": 2021
}
]
La lista restituita contiene tutti i contratti della persona selezionata nell'anno richiesto. Per ogni contratto sono mostrate
le ferie dell'anno selezionato, dell'anno precedente ed i permessi legge dell'anno selezionato.
6.10. Consultazione situazione ferie e permessi dei dipendenti via REST 110
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Di seguito una breve spiegazione dell'API REST relativa alla consultazione delle tipologie di orario di lavoro
configurate per una sede.
6.11.1 Permessi
Per poter accedere a queste interfaccie REST è necessario utilizzare un utente che abbia il ruolo di Gestore anagrafica
per la sede su cui si vuole effettuare le operazioni (lo stesso ruolo utilizzato per la gestione delle persone e dei gruppi).
u https://epas-demo.devel.iit.cnr.it potete per esempio creare un nuovo utente associato alla vostra sede tipo istitu-
to_xxx_registry_manager (cambiate il nome o in futuro andrà in conflitto con quello di altri istituti) ed una volta creato
l'utente assegnateli il ruolo Gestore Anagrafica.
Inoltre è possibile utilizzare un utente di sistema con ruolo di Gestore anagrafica per accedere alle informazioni sulle
persone di tutte le sedi. Questo utente è utiizzato per l'eventuale integrazione con sistemi esterni (per esempio di
rendicontazione) a livello di tutte le sedi. L'utente di sistema con ruolo di Gestore anagrafica non può essere creato
dalle singole sedi ma può essere creato tra un utente con ruolo di Amministratore di ePAS.
L'autenticazione da utilizzare è come per gli altri servizi REST quella Basic Auth.
Ogni sede ha la possibilità di visualizzare la lista delle tipologie di orario di lavoro definite per la propria sede tramite
una HTTP GET all'endopoint /rest/v2/workingtimetypes/list.
Per individuare l'ufficio è possibile utilizzare una delle due chiavi candidate presenti sugli uffici:
• id, codeId (corrisponde al sede id di Attestati).
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it//rest/v2/workingtimetypes/list
codeId==223400
[
{
"description": "Normale",
"disabled": false,
"externalId": null,
"horizontal": true,
"id": 1,
"office": null,
"updatedAt": "2021-02-03T09:49:05.231072"
},
{
"description": "50%",
"disabled": false,
"externalId": null,
"horizontal": true,
"id": 4,
"office": null,
"updatedAt": "2021-02-03T09:49:05.231072"
}
]
Si può visualizzare i dettagli della configurazione di una tipologia di orario di lavoro tramite una HTTP GET
all'endopoint /rest/v2/workingtimetypes/show.
Per individuare la tipologia di orario di lavoro è necessario passare il campo id.
$ http -a istituto_xxx_registry_manager
GET https://epas-demo.devel.iit.cnr.it//rest/v2/workingtimetypes/show
id==1
{
"description": "Normale",
"disabled": false,
"externalId": null,
"horizontal": true,
"id": 1,
"office": null,
"updatedAt": "2021-02-03T09:49:05.231072",
"workingTimeTypeDays": [
{
"breakTicketTime": 30,
"dayOfWeek": 1,
"holiday": false,
"id": 1,
"ticketAfternoonThreshold": 0,
"ticketAfternoonWorkingTime": 0,
"timeMealFrom": 0,
"timeMealTo": 0,
"updatedAt": "2021-02-03T09:49:05.279608",
"workingTime": 432
},
{
"breakTicketTime": 30,
"dayOfWeek": 2,
"holiday": false,
"id": 2,
"ticketAfternoonThreshold": 0,
"ticketAfternoonWorkingTime": 0,
"timeMealFrom": 0,
"timeMealTo": 0,
"updatedAt": "2021-02-03T09:49:05.279608",
"workingTime": 432
},
{
"breakTicketTime": 30,
"dayOfWeek": 3,
"holiday": false,
"id": 3,
"ticketAfternoonThreshold": 0,
"ticketAfternoonWorkingTime": 0,
"timeMealFrom": 0,
"timeMealTo": 0,
"updatedAt": "2021-02-03T09:49:05.279608",
"workingTime": 432
},
(continues on next page)
I log in ePAS sono gestiti tramite la Log4J e la loro configurazione può essere effettuata tramite alcuni parametri
impostabili nel docker_compose.yml.
È possibile utilizzare quattro tipo di appender diversi a cui inviare i log: stdout, stderr, file e graylog2.
Tramite il docker compose è possibile configurare il livello dei log, gli appender da utilizzare e gli eventuali parametri
per l'invio dei log ad un graylog server esterno.
# [...]
- environment:
# [...]
# - LOG_LEVEL= # Opzionale. default: INFO -- (OFF,
˓→FATAL,ERROR,WARN,INFO,DEBUG,TRACE,ALL)
˓→graylog
Se non specificato tramite la variabile APPENDERS gli appender abilitati di default sono stdout e stderr che inviano
i log sullo standard output e standard error a seconda del livello di log (ERROR e FATAL vanno su stderr).
Gli appender possono essere combinati tra di loro, nel senso che possono essere abilitati più appender contempo-
ranemente, per utilizzare più appender scrivere i nomi degli appender separati da virgola (es.: APPENDERS=file,
graylog2).
114
ePAS - Electronic Personnel Attendance System, Release 2.0.0
Gli appender di tipo stdout e stderr inviano i log sullo standard output e standard error a seconda del livello di log
(ERROR e FATAL vanno su stderr).
La configurazione specifica per questi appender da impostare nel file log4j.prod.properties è la seguente:
log4j.appender.stdout.filter.a=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.stdout.filter.a.LevelMin=DEBUG
log4j.appender.stdout.filter.a.LevelMax=WARN
log4j.appender.stderr.filter.a=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.stderr.filter.a.LevelMin=ERROR
log4j.appender.stderr.filter.a.LevelMax=FATAL
Nel caso si utilizzi l'appender di tipo file i log vengono salvati all'interno del container nel file log/epas.log, si consiglia
quindi di effettuare all'interno del docker-compose.yml un mapping del volume tipo:
# [...]
volumes:
- ${PWD}/logs:/home/epas/epas/logs
I log sono di tipo DailyRollingFileAppender, quindi vengono ruotati automaticamente ogni giorno.
La configurazione specifica per questo appender da impostare nel file log4j.prod.properties è la seguente:
log4j.appender.file.Threshold=DEBUG
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=logs/epas.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%p](%c) - %m
˓→%n
Le informazioni sull'host graylog a cui inviare i log sono configurabili tramite i parametri: GRAYLOG_HOST,
GRAYLOG_PORT e GRAYLOG_ORIGIN_HOST, vedere i commenti nel docker-compose.yml per maggiori
informazioni.
La configurazione specifica per questo appender da impostare nel file log4j.prod.properties è la seguente:
Appendice
8.1 Autori
117