diff --git a/ms-ente/src/main/java/it/pa/repdgt/ente/repository/EnteSedeProgettoFacilitatoreRepository.java b/ms-ente/src/main/java/it/pa/repdgt/ente/repository/EnteSedeProgettoFacilitatoreRepository.java index 03743b3b6..beeb40ec2 100644 --- a/ms-ente/src/main/java/it/pa/repdgt/ente/repository/EnteSedeProgettoFacilitatoreRepository.java +++ b/ms-ente/src/main/java/it/pa/repdgt/ente/repository/EnteSedeProgettoFacilitatoreRepository.java @@ -32,7 +32,8 @@ public interface EnteSedeProgettoFacilitatoreRepository extends JpaRepository (:idProgetto, :idEnte, :idSede)\n" + "AND RUOLO_UTENTE = :codiceRuolo\n" + - "AND id_facilitatore = :codiceFiscaleUtente\n", + "AND id_facilitatore = :codiceFiscaleUtente\n" + + "AND stato_utente <> 'TERMINATO'", nativeQuery = true) List findAltreAssociazioni(Long idProgetto, Long idEnte, Long idSede, String codiceFiscaleUtente, String codiceRuolo); diff --git a/ms-ente/src/main/java/it/pa/repdgt/ente/service/EnteSedeProgettoFacilitatoreService.java b/ms-ente/src/main/java/it/pa/repdgt/ente/service/EnteSedeProgettoFacilitatoreService.java index 688293506..34319b5df 100644 --- a/ms-ente/src/main/java/it/pa/repdgt/ente/service/EnteSedeProgettoFacilitatoreService.java +++ b/ms-ente/src/main/java/it/pa/repdgt/ente/service/EnteSedeProgettoFacilitatoreService.java @@ -267,6 +267,23 @@ public void cancellaOTerminaAssociazioneFacilitatoreOVolontarioAEnteSedeProgetto enteSedeProgettoFacilitatore.getRuoloUtente() ); } + + // Controllo se l'utente è FAC o VOL(a seconda del codiceRuolo che mi viene + // passato) su altri gestori progetto oltre a questo + boolean unicaAssociazione = this.enteSedeProgettoFacilitatoreRepository + .findAltreAssociazioni(enteSedeProgettoFacilitatore.getId().getIdProgetto(), + enteSedeProgettoFacilitatore.getId().getIdEnte(), + enteSedeProgettoFacilitatore.getId().getIdSede(), + enteSedeProgettoFacilitatore.getId().getIdFacilitatore(), + enteSedeProgettoFacilitatore.getRuoloUtente()) + .isEmpty(); + + /*Se la condizione sopra è vera allora insieme all'associazione del referente al gestore progetto + * imposterò a cancellato anche l'associazione dell'utente al ruolo + */ + if(unicaAssociazione) { + this.ruoloService.cancellaRuoloUtente(enteSedeProgettoFacilitatore.getId().getIdFacilitatore(), enteSedeProgettoFacilitatore.getRuoloUtente()); + } } @@ -322,16 +339,6 @@ public void cancellaAssociazioniFacilitatoriOVolontariAEnteSedeProgetto( public void cancellaAssociazioneFacilitatore(Long idEnte, Long idSede, Long idProgetto, String codiceFiscaleUtente, String codiceRuolo) { EnteSedeProgettoFacilitatoreKey id = new EnteSedeProgettoFacilitatoreKey(idEnte, idSede, idProgetto, codiceFiscaleUtente); this.enteSedeProgettoFacilitatoreRepository.deleteById(id); - - //Controllo se l'utente è FAC o VOL(a seconda del codiceRuolo che mi viene passato) su altri gestori progetto oltre a questo - boolean unicaAssociazione = this.enteSedeProgettoFacilitatoreRepository.findAltreAssociazioni(idProgetto,idEnte, idSede, codiceFiscaleUtente, codiceRuolo).isEmpty(); - - /*Se la condizione sopra è vera allora insieme all'associazione del referente al gestore progetto - * imposterò a cancellato anche l'associazione dell'utente al ruolo - */ - if(unicaAssociazione) { - this.ruoloService.cancellaRuoloUtente(codiceFiscaleUtente, codiceRuolo); - } } @LogMethod