diff --git a/CHANGELOG.md b/CHANGELOG.md
index 292f02777269b94a62da5a5ef0a39183be8443e0..5ef7ec32a48ec6f04c317007217dfb1f6e86f0bf 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,7 @@ author: Laurent Lécluse - DSI - Unicaen
 ## Nouveautés
 
 * Ajout d'un nouveau contrôle lors des demandes de mise en paiement : il n'est plus possible de payer plus d'heures que d'HETD même si des HETD ont déjà été payées à tort
+* La vue matérialisée MV_EXT_SERVVICE a été créée pour être exploitée pour alimenter des outils de pilotage (BO, etc).
 
 # OSE 8.2.2
 
diff --git a/data/ddl.php b/data/ddl.php
index 7d8879f7bffa225bc99e64e7ed430043b3afe325..3a030951d62deee54ed77d1c965f23990479273d 100644
--- a/data/ddl.php
+++ b/data/ddl.php
@@ -27412,6 +27412,7 @@ END UNICAEN_TBL;',
                                                    AND vh.histo_destruction IS NULL
                                                    AND vh.heures <> 0
                                                    AND vh.type_volume_horaire_id = tvh.id
+                                                   AND vh.motif_non_paiement_id IS NULL
 
                  JOIN v_volume_horaire_etat     vhe ON vhe.volume_horaire_id = vh.id
 
@@ -28552,7 +28553,7 @@ END UNICAEN_TBL;',
           JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id
           LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
           LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id
-          LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
+               JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
         WHERE
           s.histo_destruction IS NULL) tv
       WHERE
@@ -30276,12 +30277,14 @@ WITH t AS ( SELECT
   vh.periode_id                     periode_id,
   vh.type_intervention_id           type_intervention_id,
   NULL                              fonction_referentiel_id,
+  NULL                              motif_non_paiement_id,
 
   s.description                     service_description,
 
   vh.heures                         heures,
   0                                 heures_ref,
   0                                 heures_non_payees,
+  null                              motif_non_paiement,
   frvh.service_fi                   service_fi,
   frvh.service_fa                   service_fa,
   frvh.service_fc                   service_fc,
@@ -30316,12 +30319,14 @@ SELECT
   vh.periode_id                     periode_id,
   vh.type_intervention_id           type_intervention_id,
   NULL                              fonction_referentiel_id,
+  mnp.id                            motif_non_paiement_id,
 
   s.description                     service_description,
 
   vh.heures                         heures,
   0                                 heures_ref,
   1                                 heures_non_payees,
+  mnp.libelle_court                 motif_non_paiement,
   0                                 service_fi,
   0                                 service_fa,
   0                                 service_fc,
@@ -30340,9 +30345,9 @@ FROM
   JOIN service                     s ON s.id = vh.service_id
   JOIN v_volume_horaire_etat     vhe ON vhe.volume_horaire_id = vh.id
   JOIN formule_resultat           fr ON fr.intervenant_id = s.intervenant_id AND fr.type_volume_horaire_id = vh.type_volume_horaire_id AND fr.etat_volume_horaire_id = vhe.etat_volume_horaire_id
+  JOIN motif_non_paiement        mnp ON mnp.id = vh.motif_non_paiement_id
 WHERE
-  vh.motif_non_paiement_id IS NOT NULL
-  AND vh.histo_destruction IS NULL
+  vh.histo_destruction IS NULL
   AND s.histo_destruction IS NULL
 
 UNION ALL
@@ -30360,12 +30365,14 @@ SELECT
   NULL                              periode_id,
   NULL                              type_intervention_id,
   sr.fonction_id                    fonction_referentiel_id,
+  NULL                              motif_non_paiement_id,
 
   NULL                              service_description,
 
   0                                 heures,
   vhr.heures                        heures_ref,
   0                                 heures_non_payees,
+  null                              motif_non_paiement,
   0                                 service_fi,
   0                                 service_fa,
   0                                 service_fc,
@@ -30400,12 +30407,14 @@ SELECT
   NULL                              periode_id,
   NULL                              type_intervention_id,
   NULL                              fonction_referentiel_id,
+  NULL                              motif_non_paiement_id,
 
   NULL                              service_description,
 
   0                                 heures,
   0                                 heures_ref,
   0                                 heures_non_payees,
+  null                              motif_non_paiement,
   0                                 service_fi,
   0                                 service_fa,
   0                                 service_fc,
@@ -30451,75 +30460,83 @@ GROUP BY
   ep.id
 )
 SELECT
-  t.id                            id,
-  t.service_id                    service_id,
-  i.id                            intervenant_id,
-  ti.id                           type_intervenant_id,
-  i.annee_id                      annee_id,
-  his.histo_modification          service_date_modification,
-  t.type_volume_horaire_id        type_volume_horaire_id,
-  t.etat_volume_horaire_id        etat_volume_horaire_id,
-  etab.id                         etablissement_id,
-  saff.id                         structure_aff_id,
-  sens.id                         structure_ens_id,
+  t.id                              id,
+  t.service_id                      service_id,
+  i.id                              intervenant_id,
+  si.id                             statut_intervenant_id,
+  ti.id                             type_intervenant_id,
+  i.annee_id                        annee_id,
+  t.type_volume_horaire_id          type_volume_horaire_id,
+  t.etat_volume_horaire_id          etat_volume_horaire_id,
+  etab.id                           etablissement_id,
+  saff.id                           structure_aff_id,
+  sens.id                           structure_ens_id,
+  gtf.id                            groupe_type_formation_id,
+  tf.id                             type_formation_id,
   ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, etp.niveau ) niveau_formation_id,
-  etp.id                          etape_id,
-  ep.id                           element_pedagogique_id,
-  t.periode_id                    periode_id,
-  t.type_intervention_id          type_intervention_id,
-  t.fonction_referentiel_id       fonction_referentiel_id,
+  etp.id                            etape_id,
+  ep.id                             element_pedagogique_id,
+  t.periode_id                      periode_id,
+  t.type_intervention_id            type_intervention_id,
+  t.fonction_referentiel_id         fonction_referentiel_id,
+  di.id                             intervenant_discipline_id,
+  de.id                             element_discipline_id,
+  t.motif_non_paiement_id           motif_non_paiement_id,
 
   tvh.libelle || \' \' || evh.libelle type_etat,
-  i.source_code                   intervenant_code,
-  i.nom_usuel || \' \' || i.prenom  intervenant_nom,
-  i.date_naissance                intervenant_date_naissance,
-  si.libelle                      intervenant_statut_libelle,
-  ti.code                         intervenant_type_code,
-  ti.libelle                      intervenant_type_libelle,
-  g.source_code                   intervenant_grade_code,
-  g.libelle_court                 intervenant_grade_libelle,
-  di.source_code                  intervenant_discipline_code,
-  di.libelle_court                intervenant_discipline_libelle,
-  saff.libelle_court              service_structure_aff_libelle,
-
-  sens.libelle_court              service_structure_ens_libelle,
-  etab.libelle                    etablissement_libelle,
-  gtf.libelle_court               groupe_type_formation_libelle,
-  tf.libelle_court                type_formation_libelle,
-  etp.niveau                      etape_niveau,
-  etp.source_code                 etape_code,
-  etp.libelle                     etape_libelle,
-  ep.source_code                  element_code,
+  his.histo_modification            service_date_modification,
+
+  i.source_code                     intervenant_code,
+  i.nom_usuel || \' \' || i.prenom    intervenant_nom,
+  i.date_naissance                  intervenant_date_naissance,
+  si.libelle                        intervenant_statut_libelle,
+  ti.code                           intervenant_type_code,
+  ti.libelle                        intervenant_type_libelle,
+  g.source_code                     intervenant_grade_code,
+  g.libelle_court                   intervenant_grade_libelle,
+  di.source_code                    intervenant_discipline_code,
+  di.libelle_court                  intervenant_discipline_libelle,
+  saff.libelle_court                service_structure_aff_libelle,
+
+  sens.libelle_court                service_structure_ens_libelle,
+  etab.libelle                      etablissement_libelle,
+  gtf.libelle_court                 groupe_type_formation_libelle,
+  tf.libelle_court                  type_formation_libelle,
+  etp.niveau                        etape_niveau,
+  etp.source_code                   etape_code,
+  etp.libelle                       etape_libelle,
+  ep.source_code                    element_code,
   COALESCE(ep.libelle,to_char(t.service_description)) element_libelle,
-  de.source_code                  element_discipline_code,
-  de.libelle_court                element_discipline_libelle,
-  fr.libelle_long                 fonction_referentiel_libelle,
-  ep.taux_fi                      element_taux_fi,
-  ep.taux_fc                      element_taux_fc,
-  ep.taux_fa                      element_taux_fa,
-  t.service_ref_formation         service_ref_formation,
-  t.commentaires                  commentaires,
-  p.libelle_court                 periode_libelle,
+  de.source_code                    element_discipline_code,
+  de.libelle_court                  element_discipline_libelle,
+  fr.libelle_long                   fonction_referentiel_libelle,
+  ep.taux_fi                        element_taux_fi,
+  ep.taux_fc                        element_taux_fc,
+  ep.taux_fa                        element_taux_fa,
+  t.service_ref_formation           service_ref_formation,
+  t.commentaires                    commentaires,
+  p.libelle_court                   periode_libelle,
   CASE WHEN ponds.ponderation_service_compl = 1 THEN NULL ELSE ponds.ponderation_service_compl END element_ponderation_compl,
-  src.libelle                     element_source_libelle,
-
-  t.heures                        heures,
-  t.heures_ref                    heures_ref,
-  t.heures_non_payees             heures_non_payees,
-  si.service_statutaire           service_statutaire,
-  fi.heures_service_modifie       service_du_modifie,
-  t.service_fi                    service_fi,
-  t.service_fa                    service_fa,
-  t.service_fc                    service_fc,
-  t.service_referentiel           service_referentiel,
-  t.heures_compl_fi               heures_compl_fi,
-  t.heures_compl_fa               heures_compl_fa,
-  t.heures_compl_fc               heures_compl_fc,
-  t.heures_compl_fc_majorees      heures_compl_fc_majorees,
-  t.heures_compl_referentiel      heures_compl_referentiel,
-  t.total                         total,
-  t.solde                         solde,
-  v.histo_modification            date_cloture_realise
+  src.libelle                       element_source_libelle,
+
+  t.heures                          heures,
+  t.heures_ref                      heures_ref,
+  t.heures_non_payees               heures_non_payees,
+  t.motif_non_paiement              motif_non_paiement,
+  si.service_statutaire             service_statutaire,
+  fi.heures_service_modifie         service_du_modifie,
+  t.service_fi                      service_fi,
+  t.service_fa                      service_fa,
+  t.service_fc                      service_fc,
+  t.service_referentiel             service_referentiel,
+  t.heures_compl_fi                 heures_compl_fi,
+  t.heures_compl_fa                 heures_compl_fa,
+  t.heures_compl_fc                 heures_compl_fc,
+  t.heures_compl_fc_majorees        heures_compl_fc_majorees,
+  t.heures_compl_referentiel        heures_compl_referentiel,
+  t.total                           total,
+  t.solde                           solde,
+  v.histo_modification              date_cloture_realise
 
 FROM
   t
@@ -33774,7 +33791,7 @@ FROM
   JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id
   LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
   LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id
-  LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
+       JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
 WHERE
   s.histo_destruction IS NULL',
     ),
@@ -34343,302 +34360,7 @@ WHERE
     'MV_EXT_SERVICE' => 
     array (
       'name' => 'MV_EXT_SERVICE',
-      'definition' => 'WITH t AS ( SELECT
-  vh.id                             volume_horaire_id,
-  null                              volume_horaire_ref_id,
-  s.id                              service_id,
-  null                              service_referentiel_id,
-  s.intervenant_id                  intervenant_id,
-  vh.type_volume_horaire_id         type_volume_horaire_id,
-  fr.etat_volume_horaire_id         etat_volume_horaire_id,
-  s.element_pedagogique_id          element_pedagogique_id,
-  s.etablissement_id                etablissement_id,
-  NULL                              structure_aff_id,
-  NULL                              structure_ens_id,
-  vh.periode_id                     periode_id,
-  vh.type_intervention_id           type_intervention_id,
-  NULL                              fonction_referentiel_id,
-
-  s.description                     service_description,
-
-  vh.heures                         heures,
-  0                                 heures_ref,
-  0                                 heures_non_payees,
-  frvh.service_fi                   service_fi,
-  frvh.service_fa                   service_fa,
-  frvh.service_fc                   service_fc,
-  0                                 service_referentiel,
-  frvh.heures_compl_fi              heures_compl_fi,
-  frvh.heures_compl_fa              heures_compl_fa,
-  frvh.heures_compl_fc              heures_compl_fc,
-  frvh.heures_compl_fc_majorees     heures_compl_fc_majorees,
-  0                                 heures_compl_referentiel,
-  frvh.total                        total,
-  fr.solde                          solde,
-  NULL                              service_ref_formation,
-  NULL                              commentaires
-FROM
-  formule_resultat_vh                frvh
-  JOIN formule_resultat                fr ON fr.id = frvh.formule_resultat_id
-  JOIN volume_horaire                  vh ON vh.id = frvh.volume_horaire_id AND vh.motif_non_paiement_id IS NULL AND vh.histo_destruction IS NULL
-  JOIN service                          s ON s.id = vh.service_id AND s.intervenant_id = fr.intervenant_id AND s.histo_destruction IS NULL
-
-UNION ALL
-
-SELECT
-  vh.id                             volume_horaire_id,
-  null                              volume_horaire_ref_id,
-  s.id                              service_id,
-  null                              service_referentiel_id,
-  s.intervenant_id                  intervenant_id,
-  vh.type_volume_horaire_id         type_volume_horaire_id,
-  vhe.etat_volume_horaire_id        etat_volume_horaire_id,
-  s.element_pedagogique_id          element_pedagogique_id,
-  s.etablissement_id                etablissement_id,
-  NULL                              structure_aff_id,
-  NULL                              structure_ens_id,
-  vh.periode_id                     periode_id,
-  vh.type_intervention_id           type_intervention_id,
-  NULL                              fonction_referentiel_id,
-
-  s.description                     service_description,
-
-  vh.heures                         heures,
-  0                                 heures_ref,
-  1                                 heures_non_payees,
-  0                                 service_fi,
-  0                                 service_fa,
-  0                                 service_fc,
-  0                                 service_referentiel,
-  0                                 heures_compl_fi,
-  0                                 heures_compl_fa,
-  0                                 heures_compl_fc,
-  0                                 heures_compl_fc_majorees,
-  0                                 heures_compl_referentiel,
-  0                                 total,
-  fr.solde                          solde,
-  NULL                              service_ref_formation,
-  NULL                              commentaires
-FROM
-  volume_horaire                  vh
-  JOIN service                     s ON s.id = vh.service_id
-  JOIN v_volume_horaire_etat     vhe ON vhe.volume_horaire_id = vh.id
-  JOIN formule_resultat           fr ON fr.intervenant_id = s.intervenant_id AND fr.type_volume_horaire_id = vh.type_volume_horaire_id AND fr.etat_volume_horaire_id = vhe.etat_volume_horaire_id
-WHERE
-  vh.motif_non_paiement_id IS NOT NULL
-  AND vh.histo_destruction IS NULL
-  AND s.histo_destruction IS NULL
-
-UNION ALL
-
-SELECT
-  null                              volume_horaire_id,
-  vhr.id                            volume_horaire_ref_id,
-  null                              service_id,
-  sr.id                             service_referentiel_id,
-  sr.intervenant_id                 intervenant_id,
-  fr.type_volume_horaire_id         type_volume_horaire_id,
-  fr.etat_volume_horaire_id         etat_volume_horaire_id,
-  NULL                              element_pedagogique_id,
-  OSE_PARAMETRE.GET_ETABLISSEMENT   etablissement_id,
-  NULL                              structure_aff_id,
-  sr.structure_id                   structure_ens_id,
-  NULL                              periode_id,
-  NULL                              type_intervention_id,
-  sr.fonction_id                    fonction_referentiel_id,
-
-  NULL                              service_description,
-
-  0                                 heures,
-  vhr.heures                        heures_ref,
-  0                                 heures_non_payees,
-  0                                 service_fi,
-  0                                 service_fa,
-  0                                 service_fc,
-  frvr.service_referentiel          service_referentiel,
-  0                                 heures_compl_fi,
-  0                                 heures_compl_fa,
-  0                                 heures_compl_fc,
-  0                                 heures_compl_fc_majorees,
-  frvr.heures_compl_referentiel     heures_compl_referentiel,
-  frvr.total                        total,
-  fr.solde                          solde,
-  sr.formation                      service_ref_formation,
-  sr.commentaires                   commentaires
-FROM
-  formule_resultat_vh_ref       frvr
-  JOIN formule_resultat           fr ON fr.id = frvr.formule_resultat_id
-  JOIN volume_horaire_ref        vhr ON vhr.id =  frvr.volume_horaire_ref_id
-  JOIN service_referentiel        sr ON sr.id = vhr.service_referentiel_id AND sr.intervenant_id = fr.intervenant_id AND sr.histo_destruction IS NULL
-
-UNION ALL
-
-SELECT
-  null                              volume_horaire_id,
-  null                              volume_horaire_ref_id,
-  null                              service_id,
-  null                              service_referentiel_id,
-  i.id                              intervenant_id,
-  tvh.id                            type_volume_horaire_id,
-  evh.id                            etat_volume_horaire_id,
-  NULL                              element_pedagogique_id,
-  OSE_PARAMETRE.GET_ETABLISSEMENT   etablissement_id,
-  NULL                              structure_aff_id,
-  NULL                              structure_ens_id,
-  NULL                              periode_id,
-  NULL                              type_intervention_id,
-  NULL                              fonction_referentiel_id,
-
-  NULL                              service_description,
-
-  0                                 heures,
-  0                                 heures_ref,
-  0                                 heures_non_payees,
-  0                                 service_fi,
-  0                                 service_fa,
-  0                                 service_fc,
-  0                                 service_referentiel,
-  0                                 heures_compl_fi,
-  0                                 heures_compl_fa,
-  0                                 heures_compl_fc,
-  0                                 heures_compl_fc_majorees,
-  NULL                              heures_compl_referentiel,
-  0                                 total,
-  0                                 solde,
-  NULL                              service_ref_formation,
-  NULL                              commentaires
-FROM
-  intervenant i
-  JOIN statut_intervenant si ON si.id = i.statut_id
-  JOIN etat_volume_horaire evh ON evh.code IN (\'saisi\',\'valide\')
-  JOIN type_volume_horaire tvh ON tvh.code IN (\'PREVU\',\'REALISE\')
-  LEFT JOIN modification_service_du msd ON msd.intervenant_id = i.id AND msd.histo_destruction IS NULL
-  LEFT JOIN motif_modification_service mms ON mms.id = msd.motif_id
-WHERE
-  i.histo_destruction IS NULL
-  AND si.service_statutaire > 0
-GROUP BY
-  i.id, si.service_statutaire, evh.id, tvh.id
-HAVING
-  si.service_statutaire + SUM(msd.heures * mms.multiplicateur) = 0
-
-
-), ponds AS (
-SELECT
-  ep.id                                          element_pedagogique_id,
-  MAX(COALESCE( m.ponderation_service_du, 1))    ponderation_service_du,
-  MAX(COALESCE( m.ponderation_service_compl, 1)) ponderation_service_compl
-FROM
-            element_pedagogique ep
-  LEFT JOIN element_modulateur  em ON em.element_id = ep.id
-                                  AND em.histo_destruction IS NULL
-  LEFT JOIN modulateur          m ON m.id = em.modulateur_id
-WHERE
-  ep.histo_destruction IS NULL
-GROUP BY
-  ep.id
-)
-SELECT
-  i.annee_id                      annee_id,
-  t.type_volume_horaire_id        type_volume_horaire_id,
-  t.etat_volume_horaire_id        etat_volume_horaire_id,
-  t.volume_horaire_id             volume_horaire_id,
-  t.volume_horaire_ref_id         volume_horaire_ref_id,
-  t.service_id                    service_id,
-  t.service_referentiel_id        service_referentiel_id,
-  i.id                            intervenant_id,
-  ti.id                           type_intervenant_id,
-  his.histo_modification          service_date_modification,
-  etab.id                         etablissement_id,
-  saff.id                         structure_aff_id,
-  sens.id                         structure_ens_id,
-  ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, etp.niveau ) niveau_formation_id,
-  etp.id                          etape_id,
-  ep.id                           element_pedagogique_id,
-  t.periode_id                    periode_id,
-  t.type_intervention_id          type_intervention_id,
-  t.fonction_referentiel_id       fonction_referentiel_id,
-
-  di.id                           discipline_intervenant_id,
-  de.id                           discipline_enseignement_id,
-
-  tvh.libelle || \' \' || evh.libelle type_etat,
-  i.source_code                   intervenant_code,
-  i.nom_usuel || \' \' || i.prenom  intervenant_nom,
-  i.date_naissance                intervenant_date_naissance,
-  si.libelle                      intervenant_statut_libelle,
-  ti.code                         intervenant_type_code,
-  ti.libelle                      intervenant_type_libelle,
-  g.source_code                   intervenant_grade_code,
-  g.libelle_court                 intervenant_grade_libelle,
-  di.source_code                  intervenant_discipline_code,
-  di.libelle_court                intervenant_discipline_libelle,
-  saff.libelle_court              service_structure_aff_libelle,
-
-  sens.libelle_court              service_structure_ens_libelle,
-  etab.libelle                    etablissement_libelle,
-  gtf.libelle_court               groupe_type_formation_libelle,
-  tf.libelle_court                type_formation_libelle,
-  etp.niveau                      etape_niveau,
-  etp.source_code                 etape_code,
-  etp.libelle                     etape_libelle,
-  ep.source_code                  element_code,
-  COALESCE(ep.libelle,to_char(t.service_description)) element_libelle,
-  de.source_code                  element_discipline_code,
-  de.libelle_court                element_discipline_libelle,
-  fr.libelle_long                 fonction_referentiel_libelle,
-  ep.taux_fi                      element_taux_fi,
-  ep.taux_fc                      element_taux_fc,
-  ep.taux_fa                      element_taux_fa,
-  t.service_ref_formation         service_ref_formation,
-  t.commentaires                  commentaires,
-  p.libelle_court                 periode_libelle,
-  CASE WHEN ponds.ponderation_service_compl = 1 THEN NULL ELSE ponds.ponderation_service_compl END element_ponderation_compl,
-  src.libelle                     element_source_libelle,
-
-  t.heures                        heures,
-  t.heures_ref                    heures_ref,
-  t.heures_non_payees             heures_non_payees,
-  si.service_statutaire           service_statutaire,
-  fi.heures_service_modifie       service_du_modifie,
-  t.service_fi                    service_fi,
-  t.service_fa                    service_fa,
-  t.service_fc                    service_fc,
-  t.service_referentiel           service_referentiel,
-  t.heures_compl_fi               heures_compl_fi,
-  t.heures_compl_fa               heures_compl_fa,
-  t.heures_compl_fc               heures_compl_fc,
-  t.heures_compl_fc_majorees      heures_compl_fc_majorees,
-  t.heures_compl_referentiel      heures_compl_referentiel,
-  t.total                         total,
-  t.solde                         solde,
-  v.histo_modification            date_cloture_realise
-
-FROM
-  t
-  JOIN intervenant                        i ON i.id     = t.intervenant_id AND i.histo_destruction IS NULL
-  JOIN statut_intervenant                si ON si.id    = i.statut_id
-  JOIN type_intervenant                  ti ON ti.id    = si.type_intervenant_id
-  JOIN etablissement                   etab ON etab.id  = t.etablissement_id
-  JOIN type_volume_horaire              tvh ON tvh.id   = t.type_volume_horaire_id
-  JOIN etat_volume_horaire              evh ON evh.id   = t.etat_volume_horaire_id
-  LEFT JOIN histo_intervenant_service   his ON his.intervenant_id = i.id AND his.type_volume_horaire_id = tvh.id AND his.referentiel = 0
-  LEFT JOIN grade                         g ON g.id     = i.grade_id
-  LEFT JOIN discipline                   di ON di.id    = i.discipline_id
-  LEFT JOIN structure                  saff ON saff.id  = i.structure_id AND ti.code = \'P\'
-  LEFT JOIN element_pedagogique          ep ON ep.id    = t.element_pedagogique_id
-  LEFT JOIN discipline                   de ON de.id    = ep.discipline_id
-  LEFT JOIN structure                  sens ON sens.id  = NVL(t.structure_ens_id, ep.structure_id)
-  LEFT JOIN periode                       p ON p.id     = t.periode_id
-  LEFT JOIN source                      src ON src.id   = ep.source_id OR (ep.source_id IS NULL AND src.code = \'OSE\')
-  LEFT JOIN etape                       etp ON etp.id   = ep.etape_id
-  LEFT JOIN type_formation               tf ON tf.id    = etp.type_formation_id AND tf.histo_destruction IS NULL
-  LEFT JOIN groupe_type_formation       gtf ON gtf.id   = tf.groupe_id AND gtf.histo_destruction IS NULL
-  LEFT JOIN v_formule_intervenant        fi ON fi.intervenant_id = i.id
-  LEFT JOIN ponds                     ponds ON ponds.element_pedagogique_id = ep.id
-  LEFT JOIN fonction_referentiel         fr ON fr.id    = t.fonction_referentiel_id
-  LEFT JOIN type_validation              tv ON tvh.code = \'REALISE\' AND tv.code = \'CLOTURE_REALISE\'
-  LEFT JOIN validation                    v ON v.intervenant_id = i.id AND v.type_validation_id = tv.id AND v.histo_destruction IS NULL',
+      'definition' => 'SELECT * FROM V_EXPORT_SERVICE',
     ),
     'TBL_NOEUD' => 
     array (