diff --git a/data/ddl/package/FORMULE_UBO/body.sql b/data/ddl/package/FORMULE_UBO/body.sql
index ab88674505c7f37c5ca571e54240bdbf9b4a2bf5..d03caab6a6b5bfe3261b2bdd657d73a6eafffdda 100644
--- a/data/ddl/package/FORMULE_UBO/body.sql
+++ b/data/ddl/package/FORMULE_UBO/body.sql
@@ -14,6 +14,7 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
   TYPE t_colls IS TABLE OF t_coll INDEX BY VARCHAR2(50);
   feuille t_colls;
 
+  debugActif BOOLEAN DEFAULT TRUE;
   debugLine NUMERIC;
 
 
@@ -64,7 +65,7 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
 
     feuille(c).cells(l).enCalcul := true;
     val := calcCell( c, l );
-    IF ose_formule.debug_actif THEN
+    IF debugActif THEN
       dbgCell( c, l, val );
     END IF;
     feuille(c).cells(l).valeur := val;
@@ -113,7 +114,7 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
     ELSE
       raise_application_error( -20001, 'La formule "' || fncName || '" n''existe pas!');
     END CASE;
-    IF ose_formule.debug_actif THEN
+    IF debugActif THEN
       dbgCalc(fncName, c, val );
     END IF;
     feuille('__' || fncName || '__' || c || '__').cells(1).valeur := val;
@@ -192,40 +193,14 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
 
 
 
-    -- =SI(I9=0;2/3;SI(I8="Oui";1                                                                       ;SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35)))))
-    -- I8= TP vaut TD
-    -- I9 = i.heures_service_statutaire
-    -- I15 = i.service_du
-    -- I26:I35 = Somme des CM I=CM, J=TD, K=TP
-    -- K26:K35 = Somme des TP
-    WHEN c = 'tauxTPService' AND v >= 1 THEN
-      IF i.heures_service_statutaire = 0  OR LOWER(i.param_2)='oui' THEN
-        RETURN 2/3;
-      ELSE
-        -- SI(I8="Oui";SI(SOMME(I26:K35)=0;1;(2+(I15/((1,5*SOMME(I26:I35))+SOMME(J26:K35))))/3);SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35))))
-        IF LOWER(i.param_1)='oui' THEN
-          RETURN 1;
-        ELSE
-          -- SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35)))
-          IF cell('sTP') <= 384 THEN
-            RETURN 1;
-          ELSE
-            --(384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35)
-            RETURN (384+((cell('sTP')-384)*(2/3)))/cell('sTP');
-          END IF;
-        END IF;
-      END IF;
-
-
-
     -- =SI(I9=0;2/3;SI(I8="Oui";SI(SOMME(I26:K35)=0;1;(2+(I15/((1,5*SOMME(I26:I35))+SOMME(J26:K35))))/3);SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35)))))
     -- I8= TP vaut TD
     -- I9 = i.heures_service_statutaire
     -- I15 = i.service_du
     -- I26:I35 = Somme des CM I=CM, J=TD, K=TP
     -- K26:K35 = Somme des TP
-    WHEN c = 'tauxTPCompl' AND v >= 1 THEN
-      IF i.heures_service_statutaire = 0  OR LOWER(i.param_2)='oui' THEN
+    WHEN c = 'tauxTP' AND v >= 1 THEN
+      IF i.heures_service_statutaire = 0 THEN
         RETURN 2/3;
       ELSE
         -- SI(I8="Oui";SI(SOMME(I26:K35)=0;1;(2+(I15/((1,5*SOMME(I26:I35))+SOMME(J26:K35))))/3);SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35))))
@@ -252,7 +227,7 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
 
     WHEN c = 'tauxServiceDu' AND v >= 1 THEN
       IF vh.type_intervention_code = 'TP' THEN
-        RETURN cell('tauxTPService');
+        RETURN cell('tauxTP');
       ELSE
         RETURN vh.taux_service_du;
       END IF;
@@ -261,7 +236,7 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
 
     WHEN c = 'tauxServiceCompl' AND v >= 1 THEN
       IF vh.type_intervention_code = 'TP' THEN
-        RETURN cell('tauxTPCompl');
+        RETURN cell('tauxTP');
       ELSE
         RETURN vh.taux_service_compl;
       END IF;
@@ -879,11 +854,7 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
 
     -- us=SI($I$13="Oui";SOMME(I182:AU182);0)
     WHEN c = 'us' AND v >= 1 THEN
-      IF NOT ose_formule.intervenant.depassement_service_du_sans_hc THEN
-        RETURN cell('t131',l) + cell('t132',l);
-      ELSE
-        RETURN 0;
-      END IF;
+      RETURN cell('t131',l) + cell('t132',l);
 
 
 
@@ -943,10 +914,6 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
   BEGIN
     feuille.delete;
 
-    IF ose_formule.intervenant.depassement_service_du_sans_hc THEN -- HC traitées comme du service
-      ose_formule.intervenant.service_du := ose_formule.intervenant.heures_service_statutaire + ose_formule.intervenant.heures_service_modifie;
-    END IF;
-
     -- transmission des résultats aux volumes horaires et volumes horaires référentiel
     FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
       ose_formule.volumes_horaires.items(l).service_fi               := mainCell('Service FI', 'rs',l);
@@ -961,41 +928,4 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
     END LOOP;
   END;
 
-
-
-  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
-  BEGIN
-    RETURN '
-    SELECT
-      fi.*,
-      CASE WHEN si.code IN (''ENS_CH'',''ASS_MI_TPS'',''ENS_CH_LRU'',''DOCTOR'') THEN ''oui'' ELSE ''non'' END param_1,
-	    CASE WHEN si.code IN (''LECTEUR'',''ATER'') THEN ''oui'' ELSE ''non'' END param_2,
-      NULL param_3,
-      NULL param_4,
-      NULL param_5
-    FROM
-      V_FORMULE_INTERVENANT fi
-      JOIN intervenant i ON i.id = fi.intervenant_id
-      JOIN statut si ON si.id = i.statut_id
-    ';
-  END;
-
-
-
-  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
-  BEGIN
-    RETURN '
-    SELECT
-      fvh.*,
-      NULL param_1,
-      NULL param_2,
-      NULL param_3,
-      NULL param_4,
-      NULL param_5
-    FROM
-      V_FORMULE_VOLUME_HORAIRE fvh
-    ORDER BY
-      ordre';
-  END;
-
 END FORMULE_UBO;
\ No newline at end of file
diff --git a/data/ddl/package/FORMULE_UBO/definition.sql b/data/ddl/package/FORMULE_UBO/definition.sql
index b92c9493eb4595a4d5ce1fcabaf93ec1a2176622..e65098ca34aa3a4b3055ea6027452efbae19480f 100644
--- a/data/ddl/package/FORMULE_UBO/definition.sql
+++ b/data/ddl/package/FORMULE_UBO/definition.sql
@@ -4,7 +4,4 @@ CREATE OR REPLACE PACKAGE "FORMULE_UBO" AS
 
   FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
 
-  FUNCTION INTERVENANT_QUERY RETURN CLOB;
-  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
-
 END FORMULE_UBO;
\ No newline at end of file
diff --git a/data/ddl/package/OSE_PAIEMENT/definition.sql b/data/ddl/package/OSE_PAIEMENT/definition.sql
index 62dc7f3456ea76797262f2b0a3065a44af14c0e6..09d6c8fed4e0548805982b53fb1ee0003347896f 100644
--- a/data/ddl/package/OSE_PAIEMENT/definition.sql
+++ b/data/ddl/package/OSE_PAIEMENT/definition.sql
@@ -1,16 +1,15 @@
 CREATE OR REPLACE PACKAGE "OSE_PAIEMENT" AS
 
-    PROCEDURE check_bad_paiements(formule_res_service_id NUMERIC DEFAULT NULL,
-                                  formule_res_service_ref_id NUMERIC DEFAULT NULL);
+  PROCEDURE CHECK_BAD_PAIEMENTS( FORMULE_RES_SERVICE_ID NUMERIC DEFAULT NULL, FORMULE_RES_SERVICE_REF_ID NUMERIC DEFAULT NULL );
 
-    PROCEDURE set_mois_extraction_paie(mois_extraction_paie VARCHAR2);
+  PROCEDURE set_mois_extraction_paie(mois_extraction_paie VARCHAR2);
 
-    PROCEDURE set_annee_extraction_paie(annee_extraction_paie VARCHAR2);
+  PROCEDURE set_annee_extraction_paie(annee_extraction_paie VARCHAR2);
 
-    FUNCTION get_mois_extraction_paie RETURN VARCHAR2;
+  FUNCTION get_mois_extraction_paie RETURN VARCHAR2;
 
-    FUNCTION get_annee_extraction_paie RETURN VARCHAR2;
+  FUNCTION get_annee_extraction_paie RETURN VARCHAR2;
 
-    FUNCTION get_format_mois_du RETURN VARCHAR2;
+  FUNCTION get_format_mois_du RETURN VARCHAR2;
 
 END ose_paiement;
\ No newline at end of file
diff --git a/data/ddl/package/OSE_WORKFLOW/body.sql b/data/ddl/package/OSE_WORKFLOW/body.sql
index 01b816c86fb6fe6f7cd8cdba4d3602f527992b47..22b18d4cf9285ed355f1723426d9181ae7986a35 100644
--- a/data/ddl/package/OSE_WORKFLOW/body.sql
+++ b/data/ddl/package/OSE_WORKFLOW/body.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE PACKAGE BODY OSE_WORKFLOW AS
+CREATE OR REPLACE PACKAGE BODY     OSE_WORKFLOW AS
   TYPE t_dep_bloquante IS RECORD (
     id NUMERIC,
     to_delete BOOLEAN DEFAULT TRUE
@@ -558,6 +558,7 @@ CREATE OR REPLACE PACKAGE BODY OSE_WORKFLOW AS
             WHEN e.code = ''PJ_VALIDATION'' THEN pj.demandees
           END                                                       objectif,
           CASE
+			WHEN pj.obligatoire = 0 THEN 1
             WHEN e.code = ''PJ_SAISIE'' THEN pj.fournies
             WHEN e.code = ''PJ_VALIDATION'' THEN pj.validees
           END                                                       realisation
@@ -567,13 +568,13 @@ CREATE OR REPLACE PACKAGE BODY OSE_WORKFLOW AS
             intervenant_id,
             SUM(demandee) demandees,
             SUM(fournie)  fournies,
-            SUM(validee)  validees
+            SUM(validee)  validees,
+			MIN(obligatoire) obligatoire
           FROM
             tbl_piece_jointe
           WHERE
             ' || unicaen_tbl.MAKE_WHERE(param, VALUE) || '
             AND demandee > 0
-            AND obligatoire = 1
           GROUP BY
             annee_id,
             intervenant_id
diff --git a/data/ddl/package/UNICAEN_TBL/body.sql b/data/ddl/package/UNICAEN_TBL/body.sql
index 9bfffbf37675808b8af869ba9cc988a0baf4114a..53425aefc72cdb2590a669039226527a7c2699ae 100644
--- a/data/ddl/package/UNICAEN_TBL/body.sql
+++ b/data/ddl/package/UNICAEN_TBL/body.sql
@@ -1,4 +1,4 @@
-create or replace PACKAGE BODY "UNICAEN_TBL" AS
+CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
   TYPE t_dems_values IS TABLE OF BOOLEAN INDEX BY VARCHAR2(80);
   TYPE t_dems_params IS TABLE OF t_dems_values INDEX BY VARCHAR2(30);
   TYPE t_dems IS TABLE OF t_dems_params INDEX BY VARCHAR2(30);