import org.lilie.services.eliot.absences.parametrage.general.PasDeDecompteEnum
import org.lilie.services.eliot.parametrages.calendrier.JourFerieInfo
import org.lilie.services.eliot.absences.PreferencesEtablissementAbsences
-import org.lilie.services.eliot.scolarite.Calendrier
+import org.lilie.services.eliot.scolarite.StructureEnseignement
class CalendrierAbsencesService extends CalendrierService {
/**
* Calcule les statistiques sur les plages horaires
- * @param preferencesEtablissementAbsences
- * @return StatsAllPlageHoraires
*/
- StatsAllPlageHoraires calculeStatsPlagesHoraires(
- PreferencesEtablissementAbsences preferencesEtablissementAbsences){
+ StatsAllPlageHoraires calculeStatsPlagesHoraires(PreferencesEtablissementAbsences pref,
+ Date debut,
+ Date fin){
StatsAllPlageHoraires result = new StatsAllPlageHoraires(
- preferencesEtablissementAbsences.plageHoraires.toList()
+ pref.plageHoraires.toList()
)
- Calendrier calendrier = calendrierService.getCalendrierForEtablissement(
- preferencesEtablissementAbsences.etablissement
- )
Calendar curseur = Calendar.getInstance()
+ curseur.setTime(debut)
+
Calendar calFin = Calendar.getInstance()
- calFin.setTime(calendrier.dernierJour)
- curseur.setTime(calendrier.premierJour)
+ calFin.setTime(fin)
+
while(curseur <= calFin){
result.addOccurenceJourSemaine(curseur.get(Calendar.DAY_OF_WEEK))
curseur.add(Calendar.DAY_OF_YEAR, 1)
}
List<JourFerieInfo> jourFerieInfos = calendrierService.
- getJourFeriesInfoForPreferenceEtablissement(preferencesEtablissementAbsences)
+ getJourFeriesInfoForPreferenceEtablissement(pref)
+
Calendar calUtil = Calendar.getInstance()
- jourFerieInfos.each {
- JourFerieInfo jourFerieInfo ->
+
+ jourFerieInfos.each {JourFerieInfo jourFerieInfo ->
+
calUtil.clear()
calUtil.setTime(jourFerieInfo.date)
+
if(!jourFerieInfo.etat.isOuvertMatin()){
result.retireMatinJourSemaine(calUtil.get(Calendar.DAY_OF_WEEK))
}
+
if(!jourFerieInfo.etat.isOuvertApresMidi()){
result.retireApresMidiJourSemaine(calUtil.get(Calendar.DAY_OF_WEEK))
}