From bf28cc958a684fbf3599d238cb0dcba1d6917e71 Mon Sep 17 00:00:00 2001 From: "florian.joriot@unicaen.fr" <florian.joriot@unicaen.fr> Date: Thu, 6 Feb 2025 15:46:04 +0100 Subject: [PATCH] =?UTF-8?q?Correction=20cr=C3=A9ation=20contrat=20et=20cal?= =?UTF-8?q?cul=20tbl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Processus/ContratProcessus.php | 16 ++++++++++-- .../src/Tbl/Process/ContratProcess.php | 26 +++++++++++-------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/module/Contrat/src/Processus/ContratProcessus.php b/module/Contrat/src/Processus/ContratProcessus.php index e8e019d6e9..f2385a0c03 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 b0a4f5abd2..00879094b4 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; -- GitLab