NotesPeriodeService notesPeriodeService
NotesSousServiceService notesSousServiceService
- /**
- * Get relations
- */
- List<RelPeriodeService> getRels(Periode periode, Integer ordre) {
- return RelPeriodeService.withCriteria {
- eq('periode', periode)
- eq('ordre', ordre)
- }
- }
-
/**
* Change l'ordre d'un service.
* Gére le reordonencement si necessaire.
} else {
rel.ordre = ordre
}
- rel.save(failOnError: true, flush: true)
+
+ rel.save(failOnError: true)
return ordreChange
}
rel.option = notesPeriodeParams.option
}
- if (notesPeriodeParams.evaluable != null && notesPeriodeParams.evaluable==false) {
+ if (notesPeriodeParams.evaluable != null && notesPeriodeParams.evaluable == false) {
// service n'est plus evaluable, son ordre doit etre mis a null
rel.ordre = null
notesPeriodeParams.ordre = null
internalChangeOrdre(rel, notesPeriodeParams.ordre)
recharger = true // changement d'ordre - il faut recharger la grille
}
- rel.save()
+
+ rel.save(failOnError: true, flush: true)
return new ModifieRelPeriodeServiceResultat(
recharger: recharger,
/**
* Les paramètres ordre, evaluable et option sont définis sur le FO de façon
* agrégée pour toutes les périodes de notation (ce n'est pas le cas pour le param coeff).
- * Leurs valeurs doivent donc être les mêmes pour toutes les période de notation.
+ * Leurs valeurs doivent donc être les mêmes pour toutes les période de notation d'une même classe.
* Si ce n'est pas le cas la base n'est pas dans état cohérent. La méthode permet de
* corriger cette incohérence en copiant les valeurs des ces paramètres du 1er période
* sur toutes les autres périodes de notation.
List<RelPeriodeService> rels =
service.relPeriodeServices.findAll {it.periode.isPeriodeNotation()}.toList()
- rels.sort{it.periode}
- RelPeriodeService relPremierPeriode = rels.first()
-
Boolean evaluabiliteChange = false
Boolean optionChange = false
- rels.each {
- if (it.ordre != relPremierPeriode.ordre) {
- it.ordre = relPremierPeriode.ordre
- it.save(failOnError: true)
- }
+ rels.groupBy {it.periode.classeId}.each {classeId, List<RelPeriodeService> relsParClasse ->
- if (it.evaluable != relPremierPeriode.evaluable) {
- evaluabiliteChange = true
- it.evaluable = relPremierPeriode.evaluable
- it.save(failOnError: true)
- }
+ relsParClasse.sort{it.periode}
+ RelPeriodeService relPremierPeriode = relsParClasse.first()
+
+ relsParClasse.each {
+ if (it.ordre != relPremierPeriode.ordre) {
+ it.ordre = relPremierPeriode.ordre
+ it.save(failOnError: true)
+ }
+
+ if (it.evaluable != relPremierPeriode.evaluable) {
+ evaluabiliteChange = true
+ it.evaluable = relPremierPeriode.evaluable
+ it.save(failOnError: true)
+ }
- if (it.option != relPremierPeriode.option) {
- optionChange = true
- it.option = relPremierPeriode.option
- it.save(failOnError: true)
+ if (it.option != relPremierPeriode.option) {
+ optionChange = true
+ it.option = relPremierPeriode.option
+ it.save(failOnError: true)
+ }
}
}