import org.lilie.services.eliot.applications.absences.StatPunitions
import org.lilie.services.eliot.applications.absences.StatSanctions
import org.lilie.services.eliot.applications.absences.SanctionService
+import org.lilie.services.eliot.impression.ImpressionInfoGenerale
/**
* Cette classe a pour but de rechercher les données associées aux demandes d'impression
Map params = new JSONObject(argsJSON)
String elevesSelectionnes = params.elevesSelectionnes
- List elevesId = elevesSelectionnes.findAll(/\d+/).collect {it.toLong()}
+ elevesSelectionnes = elevesSelectionnes.replace('[', '')
+ elevesSelectionnes = elevesSelectionnes.replace(']', '')
+ elevesSelectionnes = elevesSelectionnes.replace('"', '')
+ List eleveId = elevesSelectionnes.split(',')
PublipostageAbsencesParams parametresSelectionPublipostage =
new PublipostageAbsencesParams(
dateFin: params.dateFin,
limitAbsence: params.limitAbsence ? Integer.parseInt(params.limitAbsence) : 0,
limit: params.limit ? Integer.parseInt(params.limit) : 0,
- elevesSelectionnes: elevesId,
+ elevesSelectionnes: eleveId,
classesId: params.classesId,
groupeDeMotifId: params.groupeDeMotifId,
motifId: params.motifId,
(Set) Autorite.getAll(criteres.eleveIds)
)
+ ImpressionInfoGenerale impressionInfoGenerale = new ImpressionInfoGenerale(
+ allEleves: eleves,
+ adresseResponsableEnum: selectionAdresseResponsableEnum,
+ etablissement: etablissement,
+ elevesIds: criteres.eleveIds,
+ typesResponsables: criteres.typesResponsables
+ )
List<EleveImpressionInfo> eleveImpressionInfos =
impressionRequetageService.findAllInfoGeneralesEleve(
securiteSession,
- eleves,
- etablissement,
- selectionAdresseResponsableEnum
+ impressionInfoGenerale,
)
-
eleveImpressionInfos = findAllInfoRetardDepartEleve(
criteres,
eleveImpressionInfos,
Boolean ajouteDetailsAbsences = true
) {
- if (log.infoEnabled) {log.info "findAllInfoForAbsences"}
+ if (log.infoEnabled) {
+ log.info "findAllInfoForAbsences"
+ }
List<Personne> eleves = localPersonneService.findAllPersonneBySetAutorite(
(Set) Autorite.getAll(criteres.eleveIds)
)
- if (log.infoEnabled) {log.info "Liste des élèves récupérée."}
+
+ if (log.infoEnabled) {
+ log.info "Liste des élèves récupérée."
+ }
+
+ ImpressionInfoGenerale impressionInfoGenerale = new ImpressionInfoGenerale(
+ allEleves: eleves,
+ elevesIds: criteres.eleveIds,
+ adresseResponsableEnum: SelectionAdresseResponsableEnum.ADRESSE_RESPONSABLE1,
+ etablissement: etablissement,
+ typesResponsables: criteres.typesResponsables
+ )
List<EleveImpressionInfo> eleveImpressionInfos =
impressionRequetageService.findAllInfoGeneralesEleve(
securiteSession,
- eleves,
- etablissement,
- selectionAdresseResponsableEnum
+ impressionInfoGenerale
)
- if (log.infoEnabled) {log.info "informations générales récupérées"}
+
+ if (log.infoEnabled) {
+ log.info "informations générales récupérées"
+ }
eleveImpressionInfos = findAllInfoAbsenceEleve(
etablissement,
criteres,
eleveImpressionInfos
)
- if (log.infoEnabled) {log.info "findAllInfoForAbsences terminé"}
+
+ if (log.infoEnabled) {
+ log.info "findAllInfoForAbsences terminé"
+ }
eleveImpressionInfos = findAllInfoPunitionEleve(
securiteSession,
criteres,
eleveImpressionInfos
)
- if (log.infoEnabled) {log.info "findAllInfoPunitionEleve terminé"}
+
+ if (log.infoEnabled) {
+ log.info "findAllInfoPunitionEleve terminé"
+ }
eleveImpressionInfos = findAllInfoSanctionEleve(
securiteSession,
criteres,
eleveImpressionInfos
)
- if (log.infoEnabled) {log.info "findAllInfoSanctionEleve terminé"}
+
+ if (log.infoEnabled) {
+ log.info "findAllInfoSanctionEleve terminé"
+ }
remplisDatesAbsences(eleveImpressionInfos)
- if (log.infoEnabled) {log.info("remplisDatesAbsences terminé")}
+
+ if (log.infoEnabled) {
+ log.info("remplisDatesAbsences terminé")
+ }
impressionRegroupementAbsencesService.fusionnePeriodesEleves(
etablissement,
criteres.dateFin.getTime()
)
- if (log.infoEnabled) {log.info "fusion périodes absences terminé"}
+ if (log.infoEnabled) {
+ log.info "fusion périodes absences terminé"
+ }
impressionRequetageService.triEleves(eleveImpressionInfos)
return eleve
}
-
+ /**
+ * Lecture des données au moment du publipostage
+ */
public List<EleveImpressionInfo> lectureDonneesEleve(
PublipostageAbsencesParams parametresSelectionPublipostage,
ImpressionRequetageSelection requetageSelection,
List<EleveImpressionInfo> eleveImpressionInfos = []
PublipostageCriteresRecherche criteres
+ SelectionAdresseResponsableEnum typeResponsable = SelectionAdresseResponsableEnum.valueOf(
+ SelectionAdresseResponsableEnum.class,
+ parametresSelectionPublipostage.adresseId
+ )
+
if (requetageSelection.infoAbsences || requetageSelection.infoDetailAbsences) {
+
criteres =
parseCriteriaAbsences(
parametresSelectionPublipostage
criteres.eleveIds =
localAutoriteService.getAllAutoriteActuerForAllPersonne(
- parametresSelectionPublipostage.elevesSelectionnes
+ parametresSelectionPublipostage.elevesSelectionnesId()
)*.id
+ criteres.typesResponsables =
+ parametresSelectionPublipostage.responsablesElevesSelectionnes(typeResponsable)
+
criteres.nbLimit = parametresSelectionPublipostage.limitAbsence
eleveImpressionInfos =
securiteSession,
etablissement,
criteres,
- SelectionAdresseResponsableEnum.valueOf(
- SelectionAdresseResponsableEnum.class,
- parametresSelectionPublipostage.adresseId
- ),
+ typeResponsable,
requetageSelection.infoDetailAbsences
)
}
criteres.eleveIds =
localAutoriteService.getAllAutoriteActuerForAllPersonne(
- parametresSelectionPublipostage.elevesSelectionnes
+ parametresSelectionPublipostage.elevesSelectionnesId()
)*.id
+ criteres.typesResponsables =
+ parametresSelectionPublipostage.responsablesElevesSelectionnes(typeResponsable)
+
criteres.nbLimit = parametresSelectionPublipostage.limitAbsence
List<EleveImpressionInfo> eleveImpressionInfosRetard = findAllInfoForRetardsAndDepartAnticipes(
securiteSession,
etablissement,
criteres,
- SelectionAdresseResponsableEnum.valueOf(
- SelectionAdresseResponsableEnum.class,
- parametresSelectionPublipostage.adresseId
- ),
+ typeResponsable,
requetageSelection.infoDetailRetards
)
eleveImpressionInfos = fusionneInfosAbsencesEtRetardsDeparts(