diff --git a/data/ddl/package/UNICAEN_TBL/body.sql b/data/ddl/package/UNICAEN_TBL/body.sql
index 5e4b5fcf31bec07ff07f4688c4ef920a847e6886..2b911551ee1290fdee75e73a0c5fb457d6e53d92 100644
--- a/data/ddl/package/UNICAEN_TBL/body.sql
+++ b/data/ddl/package/UNICAEN_TBL/body.sql
@@ -1421,7 +1421,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
                       tbl_piece_jointe_demande  pjd
             LEFT JOIN tbl_piece_jointe_fournie  pjf ON pjf.code_intervenant = pjd.code_intervenant
                                                    AND pjf.type_piece_jointe_id = pjd.type_piece_jointe_id
-                                                   AND pjd.annee_id BETWEEN pjf.annee_id AND COALESCE(pjf.date_archive - 1,(pjf.annee_id + pjf.duree_vie - 1))
+                                                   AND pjd.annee_id BETWEEN pjf.annee_id AND COALESCE(pjf.date_archive - 1,pjf.date_validite, (pjf.annee_id + pjf.duree_vie - 1))
           WHERE
             1=1
             /*@INTERVENANT_ID=pjd.intervenant_id*/
@@ -1659,7 +1659,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
           --CASE WHEN MIN(COALESCE(tpjs.duree_vie,1)) IS NULL THEN 1 ELSE MIN(COALESCE(tpjs.duree_vie,1)) END duree_vie,
           --CASE WHEN MIN(COALESCE(tpjs.duree_vie,1)) IS NULL THEN i.annee_id+1 ELSE MIN(i.annee_id+COALESCE(tpjs.duree_vie,1)) END date_validite,
           MIN(COALESCE(tpjs.duree_vie,1)) duree_vie,
-          MIN(COALESCE(tpjs.annee_fin_id+1, i.annee_id+COALESCE(tpjs.duree_vie,1))) date_validite,
+          MIN(COALESCE(tpjs.annee_fin_id, i.annee_id+COALESCE(tpjs.duree_vie,1))) date_validite,
           pj.date_archive date_archive
         FROM
                     piece_jointe          pj
diff --git a/data/ddl/view/V_TBL_PIECE_JOINTE.sql b/data/ddl/view/V_TBL_PIECE_JOINTE.sql
index 0d6ab305c54b8e6e212659120cd89903f061538c..f530e2c853f0cdc81b17c977bf41ee29324f957e 100644
--- a/data/ddl/view/V_TBL_PIECE_JOINTE.sql
+++ b/data/ddl/view/V_TBL_PIECE_JOINTE.sql
@@ -13,7 +13,7 @@ WITH t AS (
               tbl_piece_jointe_demande  pjd
     LEFT JOIN tbl_piece_jointe_fournie  pjf ON pjf.code_intervenant = pjd.code_intervenant
                                            AND pjf.type_piece_jointe_id = pjd.type_piece_jointe_id
-                                           AND pjd.annee_id BETWEEN pjf.annee_id AND COALESCE(pjf.date_archive - 1,(pjf.annee_id + pjf.duree_vie - 1))
+                                           AND pjd.annee_id BETWEEN pjf.annee_id AND COALESCE(pjf.date_archive - 1,pjf.date_validite,(pjf.annee_id + pjf.duree_vie - 1))
   WHERE
     1=1
     /*@INTERVENANT_ID=pjd.intervenant_id*/
diff --git a/data/ddl/view/V_TBL_PIECE_JOINTE_FOURNIE.sql b/data/ddl/view/V_TBL_PIECE_JOINTE_FOURNIE.sql
index 0ec074559d230b601ea6cde15222944f63be7c35..26999cfa2ba95e89fa5c2c21b24b0dc6e8f6b11b 100644
--- a/data/ddl/view/V_TBL_PIECE_JOINTE_FOURNIE.sql
+++ b/data/ddl/view/V_TBL_PIECE_JOINTE_FOURNIE.sql
@@ -10,7 +10,7 @@ SELECT
 --  CASE WHEN MIN(COALESCE(tpjs.duree_vie,1)) IS NULL THEN 1 ELSE MIN(COALESCE(tpjs.duree_vie,1)) END duree_vie,
   --CASE WHEN MIN(COALESCE(tpjs.duree_vie,1)) IS NULL THEN i.annee_id+1 ELSE MIN(i.annee_id+COALESCE(tpjs.duree_vie,1)) END date_validite,
   MIN(COALESCE(tpjs.duree_vie,1)) duree_vie,
-  MIN(COALESCE(tpjs.annee_fin_id+1, i.annee_id+COALESCE(tpjs.duree_vie,1))) date_validite,
+  MIN(COALESCE(tpjs.annee_fin_id, i.annee_id+COALESCE(tpjs.duree_vie,1))) date_validite,
 
   pj.date_archive date_archive
 FROM