diff --git a/module/Contrat/src/Processus/ContratProcessus.php b/module/Contrat/src/Processus/ContratProcessus.php
index e8e019d6e997d28aa404d05b72691afa81789c70..f2385a0c03addeff1ad6f51a7cb03ea72cdd02d6 100755
--- a/module/Contrat/src/Processus/ContratProcessus.php
+++ b/module/Contrat/src/Processus/ContratProcessus.php
@@ -142,8 +142,20 @@ class ContratProcessus extends AbstractProcessus
         $contrat->setStructure($structure);
 
         $contrat->setTotalHetd($volumeHoraire['hetdTotal']);
-        $contrat->setDebutValidite($volumeHoraire['dateDebut']);
-        $contrat->setFinValidite($volumeHoraire['dateFin']);
+        try {
+            $dateDebut = new \DateTime($volumeHoraire['dateDebut']);
+
+        } catch (\Exception $e) {
+            $dateDebut = null;
+        }
+        $contrat->setDebutValidite($dateDebut);
+
+        try {
+            $dateFin = new \DateTime($volumeHoraire['dateFin']);
+        } catch (\Exception $e) {
+            $dateFin = null;
+        }
+        $contrat->setFinValidite($dateFin);
         $contrat->setTypeContrat($this->getServiceTypeContrat()->getByCode($volumeHoraire['typeContratCode']));
         if ($volumeHoraire['contratParentId'] == NULL) {
             $contrat->setNumeroAvenant(0);
diff --git a/module/Contrat/src/Tbl/Process/ContratProcess.php b/module/Contrat/src/Tbl/Process/ContratProcess.php
index b0a4f5abd2fe6218d86d1f2f617b78c6d174ab00..00879094b40805c7c9a79af696117f6ed65ec5bb 100755
--- a/module/Contrat/src/Tbl/Process/ContratProcess.php
+++ b/module/Contrat/src/Tbl/Process/ContratProcess.php
@@ -226,7 +226,7 @@ class ContratProcess implements ProcessInterface
             $this->services[$id] = $service;
         }
 
-        $serviceBdd = $this->getServiceBdd();
+        $serviceBdd     = $this->getServiceBdd();
         $sqlVTblContrat = $serviceBdd->getViewDefinition('V_TBL_CONTRAT');
 
         $sqlSansHeure = "SELECT 
@@ -259,7 +259,7 @@ class ContratProcess implements ProcessInterface
                   ";
 
 
-        $sqlSansHeure = $serviceBdd->injectKey($sqlSansHeure, $params);
+        $sqlSansHeure      = $serviceBdd->injectKey($sqlSansHeure, $params);
         $contratsSansHeure = $this->getBdd()->selectEach($sqlSansHeure);
 
 
@@ -331,13 +331,16 @@ class ContratProcess implements ProcessInterface
         }
 
 
-
-        $sql                   = "WITH contrat_et_avenants AS (
+        $sql = "WITH contrat_et_avenants AS (
     SELECT 
         c.id AS contrat_id_principal,
         c.debut_validite AS date_debut,
         c.fin_validite AS date_fin_contrat,
-        c.structure_id AS parent_structure_id,
+        CASE pm.valeur
+            WHEN 'contrat_mis_mission'       
+            THEN c.structure_id 
+            ELSE NULL
+            END AS parent_structure_id,
         vtblc.mission_id AS mission_id_principal,
         ap.fin_validite AS date_fin_avenant,
         i.id intervenant_id,
@@ -345,6 +348,7 @@ class ContratProcess implements ProcessInterface
     FROM 
         contrat c
     JOIN INTERVENANT i ON c.intervenant_id = i.id
+    JOIN parametre pm ON pm.nom = 'contrat_mis'
     LEFT JOIN 
         contrat ap ON c.id = ap.contrat_id AND (ap.histo_destruction IS NULL)
     LEFT JOIN
@@ -407,10 +411,10 @@ WHERE
         foreach ($avenantNecessaireDate as $avenant) {
 
             $newAvenant                      = [];
-            $newAvenant['INTERVENANT_ID']    = (int)$avenant['INTERVENANT_ID'];
-            $newAvenant['ANNEE_ID']          = (int)$avenant['ANNEE_ID'];
-            $newAvenant['STRUCTURE_ID']      = (int)$avenant['STRUCTURE_ID'];
-            $newAvenant['CONTRAT_PARENT_ID'] = (int)$avenant['CONTRAT_PARENT_ID'];
+            $newAvenant['INTERVENANT_ID']    = (int)($avenant['INTERVENANT_ID'] ?? NULL);
+            $newAvenant['ANNEE_ID']          = (int)($avenant['ANNEE_ID'] ?? NULL);
+            $newAvenant['STRUCTURE_ID']      = (int)($avenant['STRUCTURE_ID'] ?? NULL);
+            $newAvenant['CONTRAT_PARENT_ID'] = (int)($avenant['CONTRAT_PARENT_ID'] ?? NULL);
 
             $newAvenant['UUID'] = 'avenant_' . $newAvenant['INTERVENANT_ID'] . '_' . $newAvenant['CONTRAT_PARENT_ID'];
 
@@ -418,8 +422,8 @@ WHERE
             $newAvenant['SIGNE']                     = 0;
             $newAvenant['TERMINE']                   = 0;
             $newAvenant['TYPE_CONTRAT_ID']           = 2;
-            $newAvenant['MISSION_ID']                = (int)$avenant['MISSION_ID'];
-            $newAvenant['TYPE_SERVICE_ID']           = (int)$avenant['TYPE_SERVICE_ID'];
+            $newAvenant['MISSION_ID']                = (int)($avenant['MISSION_ID']?? NULL);;
+            $newAvenant['TYPE_SERVICE_ID']           = (int)($avenant['TYPE_SERVICE_ID']?? NULL);;
             $newAvenant['AUTRES']                    = 0;
             $newAvenant['AUTRE_LIBELLE']             = NULL;
             $newAvenant['CM']                        = 0;