1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| public Integer save(ScalarHabilitation scalarHabilitation, ScalarPersonne scalarPersonne,
ScalarSociete scalarSociete)//, Integer societeId)
throws ServiceException, RegleGestionException, TechniqueException {
IPersonneService personneService = ServiceFactory.getInstance().getPersonneService();
ISocieteService societeService = ServiceFactory.getInstance().getSocieteService();
Habilitation uneHabilitation = new Habilitation();
// Si l'habilitation n'est pas nouvelle, elle doit être modifiable
if (scalarHabilitation.getId() != 0) {
Habilitation habilitationStockee = this.rechercherParId(scalarHabilitation.getId());
{
if (!this.isModifiable(habilitationStockee)){
//, CezarSecuriteFonctionnelleManager.getInfosUser()){//societeId)) {
}
throw new AccessForbiddenException("Vous n'êtes pas habilité à modifier cette habilitation");
}
//Mise à jour de la personne
if (uneHabilitation.getPersonne() == null) {
uneHabilitation.setPersonne(new Personne());
}
scalarPersonne.saveToValueObject(uneHabilitation.getPersonne());
personneService.save(uneHabilitation.getPersonne());
// Si l'habilitation est nouvelle, la personne
//Mise à jour de la société
if (uneHabilitation.getEmployeur() != null) {
scalarSociete.saveToValueObject(uneHabilitation.getEmployeur());
societeService.save(uneHabilitation.getEmployeur());
}
//Enregistrement final de l'habilitation
// Si habilitation nouvelle
// Recherche compte habilitations valides pour cette personne
// SI > 0 leve reglegestionexception "deja une en cours"
if (scalarHabilitation.getId() == 0) {
if (!personneService.isHabilitable(uneHabilitation.getPersonne().getId())) {
throw new RegleGestionException(
InitManager.getRegleGestion("rg.habilitationservice.personne_non_habilitable"));
}
}
}
this.save(uneHabilitation);
return uneHabilitation.getId();
} |