* Retourne une Map de la forme suivante :
* [
* id de l'autorité de l'élève : [
- * liste des appels lignes avec des absences journée de l'élève
+ * liste des appelLigne liées à une absenceJournée inclus dans les plages
+ * horaires de l'appel
* ]
* ]
*/
Calendar dateAppel = Calendar.getInstance()
dateAppel.setTime(appel.dateHeureDebut)
+ List<PlageHoraire> plagesOrdonneesAppel = getPlagesOrdonneesAppel(appel)
+ PlageHoraire premierePlageAppel = plagesOrdonneesAppel.first()
+ PlageHoraire dernierePlageAppel = plagesOrdonneesAppel.last()
+
List<Autorite> eleves = localStructureEnseignementService.
findAllElevesForStructure(
structure
Map params = [
listeEleves: eleves,
dateAppel: (DateUtil.getDebutJour(dateAppel)).getTime(),
- heureDebutAppel: DateUtil.getHeure(appel.dateHeureDebut),
- heureFinAppel: DateUtil.getHeure(appel.dateHeureFin)
+ heureDebutAppel: DateUtil.getHeure(premierePlageAppel.debut),
+ heureFinAppel: DateUtil.getHeure(dernierePlageAppel.fin)
]
if (eleves.size() > 0) {
it.heureDebut
}
- // On modifie l'appel ligne en une absence
- lignes[0].heureDebut = null
- lignes[0].heureFin = null
- lignes[0].dateSaisie = null
- lignes[0].absenceJournee = null
- lignes[0].appel = appel
- lignes[0] = enregistreAppelLigne(lignes[0], false)
-
- // Supprimes les appels lignes non utilisés
+ // On lie le dernier appel ligne contenu dans les plages de l'appel
+ // à l'appel
+ AppelLigne appelLigneAModifier = lignes.last()
+ appelLigneAModifier.heureDebut = null
+ appelLigneAModifier.heureFin = null
+ appelLigneAModifier.dateSaisie = null
+ appelLigneAModifier.absenceJournee = null
+ appelLigneAModifier.appel = appel
+ appelLigneAModifier = enregistreAppelLigne(appelLigneAModifier, false)
+
+ // On supprime les autres appelLigne
List idsAppelLignes = lignes*.id
- idsAppelLignes.remove(0)
+ idsAppelLignes.remove(idsAppelLignes.size() - 1)
appelLigneService.supprimeAppelLignes(idsAppelLignes)
}
}