static transactional = true
+ private static String MODE_CREATION = 'creation'
+ private static String MODE_MODIFICATION = 'modification'
+
private static final String SQL_PUNITION_TOUS = """
with pps_dernier_debut as (
* Crée une nouvelle punition en vérifiant les droits
* @return une Punition
*/
- Punition creePunition(PunitionParams punitionParams) throws PunitionException {
+ Punition creePunition(PunitionParams punitionParams,
+ boolean isAutoriseSaisieRetenue) throws PunitionException {
Punition punition = new Punition()
- initialisePunition(punition, punitionParams)
+ initialisePunition(punition, punitionParams, MODE_CREATION, isAutoriseSaisieRetenue)
internalSave(punition)
internalSupprimeAbsencesExistantes(punition)
* @return la Punition
*/
Punition modifiePunition(Punition punitionAModifier,
- PunitionParams punitionParams) throws PunitionException {
+ PunitionParams punitionParams,
+ boolean isAutoriseUDRetenue) throws PunitionException {
- initialisePunition(punitionAModifier, punitionParams)
+ initialisePunition(punitionAModifier, punitionParams, MODE_MODIFICATION, isAutoriseUDRetenue)
internalSave(punitionAModifier)
+ return punitionAModifier
+ }
+
+ public modifieAbsences(Punition punitionAModifier,
+ PunitionParams punitionParams) {
internalSupprimeAbsencesExistantes(punitionAModifier)
// TOREFACT : appel méthode protected à partir d'une classe externe
punitionParams.operateurSaisie,
punitionAModifier
)
-
- return punitionAModifier
}
private initialisePunition(Punition punitionAModifier,
- PunitionParams punitionParams) {
+ PunitionParams punitionParams,
+ String mode,
+ Boolean isAutorisationAccordeeRetenue) {
punitionAModifier.date = punitionParams.date
punitionAModifier.typePunition = punitionParams.type
punitionAModifier.effectue = punitionParams.isPunitionEffectuee
punitionAModifier.etablissement = punitionParams.etablissement
punitionAModifier.preferencesEtablissementAbsences = punitionParams
.preferences
- punitionAModifier.absenceLiee = punitionParams.isAbsenceLiee
- punitionAModifier.debutAbsence = punitionParams.debutAbsence
- punitionAModifier.finAbsence = punitionParams.finAbsence
- punitionAModifier.motif = punitionParams.motif
+ punitionAModifier.absenceLiee =
+ isAutorisationAccordeeRetenue ? punitionParams.isAbsenceLiee : (punitionAModifier.absenceLiee != null ? punitionAModifier.absenceLiee : false)
+ punitionAModifier.debutAbsence =
+ isAutorisationAccordeeRetenue ? punitionParams.debutAbsence : punitionAModifier.debutAbsence
+ punitionAModifier.finAbsence =
+ isAutorisationAccordeeRetenue ? punitionParams.finAbsence : punitionAModifier.finAbsence
+ punitionAModifier.motif =
+ isAutorisationAccordeeRetenue ? punitionParams.motif : punitionAModifier.motif
+ punitionAModifier.auteur =
+ (mode == MODE_CREATION) ? punitionParams.operateurSaisie : punitionAModifier.auteur
}
/**
punition.save(flush: true, failOnError: true)
}
catch (Exception e) {
+ log.error(e.message)
throw new PunitionException(e.message)
}
}
}
}
- public void changeStatutPunition(Long punitionId, Boolean effectuee){
- Punition punition = Punition.findById(punitionId)
+ public void changeStatutPunition(Punition punition, Boolean effectuee){
punition.effectue = effectuee
punition.save(failOnError:true)
}