Personne eleve = Personne.get(paramsInfo.eleveId)
- StructureEnseignement classeEleve
+ List<StructureEnseignement> structuresEleve = []
if (paramsInfo.structureEnseignementId) {
- classeEleve = StructureEnseignement.get(
+ structuresEleve << StructureEnseignement.get(
paramsInfo.structureEnseignementId
)
-
}
else {
Map classes = localStructureEnseignementService.
findAllClassesForAllEleves((Set) [eleve])
- classeEleve = (StructureEnseignement) classes.get(eleve)
+ structuresEleve =
+ localStructureEnseignementService.findAllStructuresForClasse(
+ (StructureEnseignement) classes.get(eleve)
+ )
}
CalendrierHebdo calendrierHebdo = saisieHebdomadaireService.findAbsencesInfoForEleveAndPeriode(
preferencesEtablissementCourant,
dateSelectionnee,
eleve,
- classeEleve
+ structuresEleve
)
SimpleDateFormat sdf = new SimpleDateFormat(
PreferencesEtablissementAbsences pref,
Date dateDebut,
Personne eleve,
- StructureEnseignement classeEleve) {
+ List<StructureEnseignement> structuresEleve) {
Calendar calDebut = Calendar.getInstance()
calDebut.setTime(dateDebut)
DateUtil.setDebutJour(calDebut)
List<PlageHoraire> plages = plageHoraireService.getPlageHoraires(pref)
- List appelsDatas = findAppelsDatasForClasseAndPeriode(
- classeEleve,
+ List appelsDatas = findAppelsDatasForClassesAndPeriode(
+ structuresEleve,
calDebut.getTime(),
calFin.getTime()
)
}
/**
- * Cherche en base les appels effectués pour la période et la classe
+ * Cherche en base les appels effectués pour la période et les classe et groupes
* @return une liste de liste contenant :
* - id de la plage horaire
* - id de l'appel
* - date et heure de début de l'appel
*/
- private List findAppelsDatasForClasseAndPeriode(StructureEnseignement classe,
+ private List findAppelsDatasForClassesAndPeriode(List<StructureEnseignement> structures,
Date dateDebut,
Date dateFin) {
return Appel.executeQuery(SaisieHebdomadaireServiceHql.HQL_GET_APPEL_DATAS, [
- classe: classe,
+ structures: structures,
dateFin: dateFin,
dateDebut: dateDebut
])
select p.id, a.id, a.dateHeureDebut
from Appel a
inner join a.plageHoraires p
- where a.evenement.agendaMaitre.structureEnseignement = :classe
+ where a.evenement.agendaMaitre.structureEnseignement in (:structures)
and a.dateHeureDebut < :dateFin
and a.dateHeureFin > :dateDebut
"""