consiglionazionaledellericerche / epas

ePAS - Electronic Personnel Attendance System
GNU Affero General Public License v3.0
17 stars 6 forks source link

Api: Person Create non si riesce a creare un nuovo impiegato con qualification superire a 10 #174

Closed lucanatalegov closed 2 months ago

lucanatalegov commented 2 months ago

Nostante sia stata inserita con successo una nuova "Qualifica del personale" con un un id maggire di 10 e con livello compreso tra 1 e 10 quando in fase di creazione di un ipiegato con questa qualifica ( es. qualification=35) l'insert falllisce

il codice che va in errore è if (personDto.getQualification() != null) { person.setQualification( ((Qualification) Qualification.findAll().stream() .filter(q -> ((Qualification) q).getQualification() == personDto.getQualification().intValue()) .findFirst().get())); }

del file PersonCreateDto.java

Modificando il body della richiesta e cambiando solo la qualification=5 la rest non va in errore.

criluc commented 2 months ago

Le qualifiche sono delle entità presenti in ePAS che hanno delle relazioni e deve essere presenti nel sistema per essere assegnate al personale, nel body della richiesta per la creazione della persona deve essere passato il Livello della qualifica, non il suo id (per le prime 10 i due campi corrispondono), stai passando "qualification": 35 ?

@lucanatalegov ho aggiornato il commento perché non avevo letto accuratamente l'inizio della descrizione della issue.

lucanatalegov commented 2 months ago

Quindi non posso inserire con le rest una impiegato che ha una nuova qualifica ( inserita dalle gui)?

criluc commented 2 months ago

Quindi non posso inserire con le rest una impiegato che ha una nuova qualifica ( inserita dalle gui)? Si che può inserire un dipendente con una qualifica inserita via GUI, quello che non puoi fare è inserire la qualifica via REST ma solo via GUI.

Nell'inserimento stai passando nel json "qualification": 35 ?

Nelle prove che abbiamo fatto, dopo aver creato un nuova qualifica con Livello = 35, a noi funziona correttamente con dei dati tipo questi:

$ http -a istituto_xxx_registry_manager POST :9000/rest/v2/persons/create surname=Doe name=John officeId=1 qualification=35 number=123457 email=john.doe@cnr.it

lucanatalegov commented 2 months ago

Il problema è scaturito dal fatto che le qualifiche nuove hanno un livello compreso tra i 1 10 mentre l'id si incrementava .

In fase di inserimento di un nuovo impiegato ho utilizzato l'id della qualifica ma non il livello.

Dall' issue #12 avevo capito che per avere una corretta gestione di epas delle varie funzionalità occorresse che le nuove qualifiche avessero il campo livello valorizzato tra 1 e 10 ( di cui i livelli I-III sono livelli dirigenziali).

Se inserisco un nuova qualifica con livello 11 epas mi consente una corretta gestione dei flussi di approvazione delle ferie, permessi ....?

criluc commented 2 months ago

Vedi #177