Skip to content
Snippets Groups Projects
Commit bf28cc95 authored by Florian Joriot's avatar Florian Joriot
Browse files

Correction création contrat et calcul tbl

parent 77260d1a
Branches
Tags 6.0.2
No related merge requests found
Pipeline #35221 passed
......@@ -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);
......
......@@ -331,13 +331,16 @@ class ContratProcess implements ProcessInterface
}
$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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment