private SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss",
Locale.FRANCE)
+ private final String NOM_FICHIER_EXPORT = "Notes_Suivi par eleve"
LocalStructureEnseignementService localStructureEnseignementService
CalendrierService calendrierService
render recherche(params) as JSON
}
- def exporteDonnees = {
+ def exporteDonneesCourrier = {
verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_PUBLIPOSTAGE)
// vérifier les colonnes sélectionnées pour l'affichage
List<Integer> colonnesSelectionneesIds = mapParams.colonnes?.toList()
boolean colonneDateHeureSelectionnee = colonnesSelectionneesIds ?
- colonnesSelectionneesIds.contains(SuiviEleveColonnesEnum.DATE_HEURE.id) : true
+ colonnesSelectionneesIds.contains(SuiviEleveCourrierColonnesEnum.DATE_HEURE.id) : true
boolean colonneNomSelectionnee = colonnesSelectionneesIds ?
- colonnesSelectionneesIds.contains(SuiviEleveColonnesEnum.NOM.id) : true
+ colonnesSelectionneesIds.contains(SuiviEleveCourrierColonnesEnum.NOM.id) : true
boolean colonneClasseSelectionnee = colonnesSelectionneesIds ?
- colonnesSelectionneesIds.contains(SuiviEleveColonnesEnum.CLASSE.id) : true
+ colonnesSelectionneesIds.contains(SuiviEleveCourrierColonnesEnum.CLASSE.id) : true
boolean colonneSupportSelectionnee = colonnesSelectionneesIds ?
- colonnesSelectionneesIds.contains(SuiviEleveColonnesEnum.SUPPORT.id) : true
+ colonnesSelectionneesIds.contains(SuiviEleveCourrierColonnesEnum.SUPPORT.id) : true
boolean colonneModeleSelectionnee = colonnesSelectionneesIds ?
- colonnesSelectionneesIds.contains(SuiviEleveColonnesEnum.MODELE.id) : true
+ colonnesSelectionneesIds.contains(SuiviEleveCourrierColonnesEnum.MODELE.id) : true
// définir les colonnes en créant une liste de String contenant le nom de chaque colonne
if (colonneDateHeureSelectionnee){
donneesPourExportCSV.colonnes << message(code: 'eliot.notes.libelle.dateHeure', default: 'Date heure')
donneesPourExportCSV.colonnes << message(code: 'eliot.notes.libelle.modele', default: 'Modèle')
}
// formater les données du tableau tel que pour chaque ligne, on a une liste de valeurs, dans l'ordre des colonnes du tableau
+ SimpleDateFormat sdf = new SimpleDateFormat('dd/MM/yyyy HH:mm:ss', Locale.FRANCE)
donneesDuTableau.data.each{
List ligne = []
- if (colonneDateHeureSelectionnee) ligne.add(it.date)
- if (colonneNomSelectionnee) ligne.add(it.nom)
- if (colonneClasseSelectionnee) ligne.add(it.classe)
- if (colonneSupportSelectionnee) ligne.add(it.type)
- if (colonneModeleSelectionnee) ligne.add(it.modele)
+ if (colonneDateHeureSelectionnee) {ligne.add(sdf.format(new Date(it.date.getTime())))}
+ if (colonneNomSelectionnee) {ligne.add(it.nom)}
+ if (colonneClasseSelectionnee) {ligne.add(it.classe)}
+ if (colonneSupportSelectionnee) {ligne.add(it.type)}
+ if (colonneModeleSelectionnee) {ligne.add(it.modele)}
donneesPourExportCSV.lignes << ligne
}
// réaliser l'export
- sendCsvFile(response, donneesPourExportCSV, "Suivi par élève")
+ sendCsvFile(response, donneesPourExportCSV, NOM_FICHIER_EXPORT)
}
+ def exporteDonneesSMS = {
+
+ verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_PUBLIPOSTAGE)
+
+ // créer un objet DonneesPourExportCSV
+ DonneesPourExportCSV donneesPourExportCSV = new DonneesPourExportCSV()
+ // parser les paramètres
+ Map mapParams = (Map) JSON.parse(params.params)
+ // recalculer le tableau
+ Map donneesDuTableau = recherche(params)
+ // vérifier les colonnes sélectionnées pour l'affichage
+ List<Integer> colonnesSelectionneesIds = mapParams.colonnes?.toList()
+ boolean colonneDateHeureSelectionnee = colonnesSelectionneesIds ?
+ colonnesSelectionneesIds.contains(SuiviEleveSMSColonnesEnum.DATE_HEURE.id) : true
+ boolean colonneNomPrenomSelectionnee = colonnesSelectionneesIds ?
+ colonnesSelectionneesIds.contains(SuiviEleveSMSColonnesEnum.NOM_PRENOM.id) : true
+ boolean colonneClasseSelectionnee = colonnesSelectionneesIds ?
+ colonnesSelectionneesIds.contains(SuiviEleveSMSColonnesEnum.CLASSE.id) : true
+ boolean colonneResponsableSelectionnee = colonnesSelectionneesIds ?
+ colonnesSelectionneesIds.contains(SuiviEleveSMSColonnesEnum.RESPONSABLE.id) : true
+ boolean colonneTelPortSelectionnee = colonnesSelectionneesIds ?
+ colonnesSelectionneesIds.contains(SuiviEleveSMSColonnesEnum.TEL_PORT.id) : true
+ boolean colonneNomSMSSelectionnee = colonnesSelectionneesIds ?
+ colonnesSelectionneesIds.contains(SuiviEleveSMSColonnesEnum.NOM_SMS.id) : true
+ boolean colonneStatutSelectionnee = colonnesSelectionneesIds ?
+ colonnesSelectionneesIds.contains(SuiviEleveSMSColonnesEnum.STATUT.id) : true
+ // définir les colonnes en créant une liste de String contenant le nom de chaque colonne
+ if (colonneDateHeureSelectionnee){
+ donneesPourExportCSV.colonnes << message(code: 'absences.publipostage.libelle.date', default: 'Date heure')
+ }
+ if (colonneNomPrenomSelectionnee){
+ donneesPourExportCSV.colonnes << message(code: 'absences.publipostage.libelle.nom', default: 'Nom Prénom')
+ }
+ if (colonneClasseSelectionnee){
+ donneesPourExportCSV.colonnes << message(code: 'absences.publipostage.libelle.classe', default: 'Classe')
+ }
+ if (colonneResponsableSelectionnee){
+ donneesPourExportCSV.colonnes << message(code: 'absences.libelle.responsable', default: 'Responsable')
+ }
+ if (colonneTelPortSelectionnee){
+ donneesPourExportCSV.colonnes << message(code: 'absences.libelle.portable', default: 'Tél. Port.')
+ }
+ if (colonneNomSMSSelectionnee){
+ donneesPourExportCSV.colonnes << message(code: 'absences.libelle.nomSms', default: 'Nom du SMS')
+ }
+ if (colonneStatutSelectionnee){
+ donneesPourExportCSV.colonnes << message(code: 'absences.libelle.statut', default: 'Statut')
+ }
+ // formater les données du tableau tel que pour chaque ligne, on a une liste de valeurs, dans l'ordre des colonnes du tableau
+ SimpleDateFormat sdf = new SimpleDateFormat('dd/MM/yyyy HH:mm:ss', Locale.FRANCE)
+ donneesDuTableau.data.each{
+ List ligne = []
+ if (colonneDateHeureSelectionnee) {ligne.add(sdf.format(new Date(it.date.getTime())))}
+ if (colonneNomPrenomSelectionnee) {ligne.add(it.nom)}
+ if (colonneClasseSelectionnee) {ligne.add(it.classe)}
+ if (colonneResponsableSelectionnee) {ligne.add(it.responsable)}
+ if (colonneTelPortSelectionnee) {ligne.add(it.portable)}
+ if (colonneNomSMSSelectionnee) {ligne.add(it.modele)}
+ if (colonneStatutSelectionnee) {ligne.add(it.statut)}
+ donneesPourExportCSV.lignes << ligne
+ }
+ // réaliser l'export
+ sendCsvFile(response, donneesPourExportCSV, NOM_FICHIER_EXPORT)
+ }
+
private Map recherche(GrailsParameterMap params){
int start
case TypeMedia.SMS.getCode():
start = params.start as int ?: 0
- sortInfo = params.sort ? [field: params.sort, direction: params.dir] : [:]
+ sortInfo = mapParams.sort ? [field: mapParams.sort, direction: mapParams.dir] : [:]
statuts = mapParams.statuts ? mapParams.statuts.collect {SmsStatut[it]} : []
break
}