import org.lilie.services.eliot.impression.donnees.tableauimpression.cellules.CelluleTableau
import org.lilie.services.eliot.absences.PreferencesEtablissementAbsences
import org.lilie.services.eliot.applications.absences.PriseEnCompteMotif
-import org.lilie.services.eliot.absences.statistiques.periode.StatsPeriodes
+import org.lilie.services.eliot.applications.absences.statistiques.periode.StatsPeriodes
import org.lilie.services.eliot.impression.donnees.tableauimpression.cellules.CelluleI18n
import org.lilie.services.eliot.scolarite.etablissement.PreferencesEtablissementAbsencesService
import org.lilie.services.eliot.annuaire.SecuriteSession
import org.lilie.services.eliot.applications.absences.parametrage.motifs.MotifService
-import org.lilie.services.eliot.absences.statistiques.mensuelle.StatsMensuellesParams
-import org.lilie.services.eliot.absences.statistiques.mensuelle.ModeCalcul
+import org.lilie.services.eliot.applications.absences.statistiques.mensuelle.StatsMensuellesParams
+import org.lilie.services.eliot.applications.absences.statistiques.mensuelle.ModeCalcul
import org.lilie.services.eliot.applications.absences.statistiques.Type
-import org.lilie.services.eliot.absences.statistiques.periode.StatsPeriodesLigne
-import org.lilie.services.eliot.absences.statistiques.periode.StatsPeriodesService
+import org.lilie.services.eliot.applications.absences.statistiques.periode.StatsPeriodesLigne
+import org.lilie.services.eliot.applications.absences.statistiques.periode.StatsPeriodesService
/**
* Récupération des données de vie scolaire pour la synthèse
* @param synthese synthèse en cours d'impression
* @return informations concernant la vie scolaire
*/
- public void listeVieScolaire(
+ public List<CelluleTableau> listeVieScolaire(
Synthese synthese,
List<CelluleTableau> tableau,
SecuriteSession securiteSession) {
StatsPeriodes statsPeriodesAbsences =
calculeAbsencesTotales(synthese, preferencesEtablissementAbsences, motifIds)
- statsPeriodesAbsences.lignes.each { statsPeriodesLigne ->
+ tableau = copieAbsences(statsPeriodesAbsences, tableau)
+
+ StatsPeriodes statsPeriodesRetards =
+ calculeRetards(synthese, preferencesEtablissementAbsences, motifIds)
+
+ tableau = copieRetards(statsPeriodesRetards, tableau)
+
+ StatsPeriodes statsPeriodesDepartsAnticipes =
+ calculeDepartsAnticipes(synthese, preferencesEtablissementAbsences, motifIds)
+
+ return copieDepartAnticipe(statsPeriodesDepartsAnticipes, tableau)
+
+ }
+
+ /**
+ * Copie les informations de départ anticipé dans le tableau
+ */
+ private List<CelluleTableau> copieDepartAnticipe(StatsPeriodes statsPeriodesDepartsAnticipes, List<CelluleTableau> tableau) {
+ statsPeriodesDepartsAnticipes.lignes.each { statsPeriodesLigne ->
if (statsPeriodesLigne.tableauStatsPeriodes.valeurs.size() == 0) {
tableau << new CelluleI18n(
enteteLigne: statsPeriodesLigne.personne.nomAffichage(),
- entete1: 'eliot.notes.libelle.abs',
+ entete1: 'eliot.notes.libelle.departsAnticipes',
entete2: "",
entete3: "",
entete4: "",
finLigne: "",
- index: POSITION_ABSENCES,
+ index: POSITION_DEPARTS_ANTICIPES,
valeur: "",
pied1: "",
pied2: "",
statsPeriodesLigne.tableauStatsPeriodes.valeurs.each { statsPeriodesValeur ->
tableau << new CelluleI18n(
enteteLigne: statsPeriodesLigne.personne.nomAffichage(),
- entete1: 'eliot.notes.libelle.abs',
+ entete1: 'eliot.notes.libelle.departsAnticipes',
entete2: "",
entete3: "",
entete4: "",
finLigne: "",
- index: POSITION_ABSENCES,
+ index: POSITION_DEPARTS_ANTICIPES,
valeur: statsPeriodesValeur.valeurBrute?.intValue(),
pied1: "",
pied2: "",
}
}
- StatsPeriodes statsPeriodesRetards =
- calculeRetards(synthese, preferencesEtablissementAbsences, motifIds)
+ return tableau
+ }
+ /**
+ * Copie les informations de retards dans le tableau
+ */
+ private List<CelluleTableau> copieRetards(StatsPeriodes statsPeriodesRetards, List<CelluleTableau> tableau) {
statsPeriodesRetards.lignes.each { statsPeriodesLigne ->
if (statsPeriodesLigne.tableauStatsPeriodes.valeurs.size() == 0) {
tableau << new CelluleI18n(
}
}
- StatsPeriodes statsPeriodesDepartsAnticipes =
- calculeDepartsAnticipes(synthese, preferencesEtablissementAbsences, motifIds)
+ return tableau
+ }
- statsPeriodesDepartsAnticipes.lignes.each { statsPeriodesLigne ->
+ /**
+ * Copie les informations d'absences dans le tableau
+ */
+ private List<CelluleTableau> copieAbsences(StatsPeriodes statsPeriodesAbsences, List<CelluleTableau> tableau) {
+ statsPeriodesAbsences.lignes.each { statsPeriodesLigne ->
if (statsPeriodesLigne.tableauStatsPeriodes.valeurs.size() == 0) {
tableau << new CelluleI18n(
enteteLigne: statsPeriodesLigne.personne.nomAffichage(),
- entete1: 'eliot.notes.libelle.departsAnticipes',
+ entete1: 'eliot.notes.libelle.abs',
entete2: "",
entete3: "",
entete4: "",
finLigne: "",
- index: POSITION_DEPARTS_ANTICIPES,
+ index: POSITION_ABSENCES,
valeur: "",
pied1: "",
pied2: "",
statsPeriodesLigne.tableauStatsPeriodes.valeurs.each { statsPeriodesValeur ->
tableau << new CelluleI18n(
enteteLigne: statsPeriodesLigne.personne.nomAffichage(),
- entete1: 'eliot.notes.libelle.departsAnticipes',
+ entete1: 'eliot.notes.libelle.abs',
entete2: "",
entete3: "",
entete4: "",
finLigne: "",
- index: POSITION_DEPARTS_ANTICIPES,
+ index: POSITION_ABSENCES,
valeur: statsPeriodesValeur.valeurBrute?.intValue(),
pied1: "",
pied2: "",
}
}
}
-
+ return tableau
}
/**