// On les enlève des demandes de modification
allModifieLigneAppel.removeAll(allAppelLigneInfoSanctionPunition)
- // une absence sera lié à l'appel seulement si l'élève fait partie de la structure
- // de l'appel. Sinon, l'absence sera lié à une absence journée. Voir doc
+ // une absence sera liée à l'appel seulement si l'élève fait partie de la structure
+ // de l'appel. Sinon, l'absence sera liée à une absence journée. Voir doc
// Prise en compte des appels
AbsenceJournee absenceJournee = absenceJourneeService.findOrCreateAbsenceJournee(
pref.etablissement,
private static final String SQL_SUPPRIME_APPELS_LIGNES = """
WITH appelLignesSupprimes AS (
DELETE FROM enttemps.appel_ligne al
- USING enttemps.absence_journee aj, enttemps.appel ap
- WHERE (al.absence_journee_id = aj.id OR
- al.appel_id = ap.id)
- AND al.id IN (:idsAppelLignes)
- RETURNING al.operateur_saisie_id AS operateur_saisie_id,
+ WHERE al.id IN (:idsAppelLignes)
+ RETURNING
+ al.id,
+ al.absence_journee_id,
+ al.appel_id,
+ al.operateur_saisie_id AS operateur_saisie_id,
al.autorite_id AS eleve_id,
- aj.date AS date,
al.heure_debut AS heure_debut,
- al.heure_fin AS heure_fin,
- ap.date_heure_debut AS date_heure_debut,
- ap.date_heure_fin AS date_heure_fin)
-
+ al.heure_fin AS heure_fin
+)
SELECT als.operateur_saisie_id AS operateurSaisieId,
als.eleve_id AS eleveId,
-als.date AS absenceJourneeDate,
+aj.date AS absenceJourneeDate,
als.heure_debut AS absenceJourneeHeureDebut,
als.heure_fin AS absenceJourneeHeureFin,
-als.date_heure_debut AS apDateHeureDebut,
-als.date_heure_fin AS apDateHeureFin
+ap.date_heure_debut AS apDateHeureDebut,
+ap.date_heure_fin AS apDateHeureFin
FROM appelLignesSupprimes als
+LEFT OUTER JOIN enttemps.absence_journee aj ON als.absence_journee_id = aj.id
+LEFT OUTER JOIN enttemps.appel ap ON als.appel_id = ap.id
"""
/**