Loading module/Contrat/src/Tbl/Process/ContratProcess.php +4 −2 Changes for module/Contrat/src/Tbl/Process/ContratProcess.php: 4 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -493,7 +493,7 @@ class ContratProcess implements ProcessInterface public function isParentPotentiel(Contrat $contrat, Contrat $candidat): bool { if ($candidat->isMission !== $contrat->isMission || $contrat === $candidat || !$candidat->edite || $contrat->historise) { return false; // pas les mêmes types => pas de lien return false; // pas les mêmes types => pas de lien, pas edite ou supprimer, ou lui meme } if ($contrat->isMission) { Loading Loading @@ -624,7 +624,7 @@ class ContratProcess implements ProcessInterface public function calculNumeroAvenant(Contrat $contrat): void { //On connait deja les numéro d'avenant récuperé de la table contrat et on a pas besoin de le recalculer pour les contrat editer (on le fait cependant pour les projets) if ($contrat->id && $contrat->edite == 1) { if (($contrat->id && $contrat->edite == 1) || $contrat->historise) { return; } Loading Loading @@ -1122,4 +1122,6 @@ class ContratProcess implements ProcessInterface $this->intervenants[$intervenantId][$avenantProlongation->uuid] = $avenantProlongation; } } No newline at end of file tests/TblContrat/CalculNumeroAvenantTest.php +154 −0 Changes for tests/TblContrat/CalculNumeroAvenantTest.php: 154 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace tests\TblContrat; use Contrat\Tbl\Process\Model\Contrat; use Contrat\Tbl\Process\Model\VolumeHoraire; final class CalculNumeroAvenantTest extends TblContratTestCase { Loading Loading @@ -165,4 +166,157 @@ final class CalculNumeroAvenantTest extends TblContratTestCase $this->assertEquals(0, $contrat->numeroAvenant); } /* * On a 1 contrat et 2 avenants édités (1 et 2 en numero) * 3 contrat historisé * 1 projet non édité * 1 projet en devenir * On doit ignoré les contrat historisé et le projet non édité et en devenir et donc on obtient numero d'avenant a 3 */ public function testProjetEtAvenantEnDevenirEtAncienAvenantSupprimer(): void { $contrat1 = new Contrat(); $contrat1->id = 1247; $contrat1->structureId = 8; $contrat1->debutValidite = new \Datetime('2024-10-07'); $contrat1->finValidite = new \Datetime('2024-12-20'); $contrat1->edite = true; $volumeHoraire1 = new VolumeHoraire(); $volumeHoraire1->structureId = 8; $volumeHoraire1->missionId = 1186; $volumeHoraire1->tauxRemuId = 3; $volumeHoraire1->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire1->autres = 15; $volumeHoraire1->heures = 15; $volumeHoraire1->hetd = 15; $contrat1->volumesHoraires = [$volumeHoraire1]; $avenant1 = new Contrat(); $avenant1->id = 1365; $avenant1->structureId = 8; $avenant1->setParent($contrat1); $avenant1->numeroAvenant = 1; $avenant1->debutValidite = new \Datetime('2024-10-07'); $avenant1->finValidite = new \Datetime('2024-12-20'); $avenant1->edite = true; $volumeHoraire2 = new VolumeHoraire(); $volumeHoraire2->structureId = 8; $volumeHoraire2->missionId = 1186; $volumeHoraire2->tauxRemuId = 3; $volumeHoraire2->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire2->autres = 15; $volumeHoraire2->heures = 15; $volumeHoraire2->hetd = 15; $avenant1->volumesHoraires = [$volumeHoraire2]; $avenant2 = new Contrat(); $avenant2->id = 1419; $avenant2->structureId = 8; $avenant2->setParent($contrat1); $avenant2->numeroAvenant = 2; $avenant2->debutValidite = new \Datetime('2024-10-07'); $avenant2->finValidite = new \Datetime('2024-12-20'); $avenant2->edite = true; $volumeHoraire3 = new VolumeHoraire(); $volumeHoraire3->structureId = 8; $volumeHoraire3->missionId = 1186; $volumeHoraire3->tauxRemuId = 3; $volumeHoraire3->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire3->autres = 30; $volumeHoraire3->heures = 30; $volumeHoraire3->hetd = 30; $avenant2->volumesHoraires = [$volumeHoraire3]; $avenant3 = new Contrat(); $avenant3->id = 1485; $avenant3->historise = true; $avenant3->structureId = 8; $avenant3->setParent($avenant2); $avenant3->numeroAvenant = 3; $avenant3->debutValidite = new \Datetime('2024-10-07'); $avenant3->finValidite = new \Datetime('2025-06-30'); $avenant4 = new Contrat(); $avenant4->id = 1486; $avenant4->historise = true; $avenant4->structureId = 8; $avenant4->setParent($contrat1); $avenant4->numeroAvenant = 3; $avenant4->debutValidite = new \Datetime('2024-10-07'); $avenant4->finValidite = new \Datetime('2025-06-30'); $avenant5 = new Contrat(); $avenant5->id = 1487; $avenant5->historise = true; $avenant5->structureId = 8; $avenant5->setParent($avenant2); $avenant5->numeroAvenant = 3; $avenant5->debutValidite = new \Datetime('2024-10-07'); $avenant5->finValidite = new \Datetime('2025-06-30'); $avenant6 = new Contrat(); $avenant6->id = 1488; $avenant6->structureId = 8; $avenant6->setParent($contrat1); $avenant6->numeroAvenant = 4; $avenant6->debutValidite = new \Datetime('2024-10-07'); $avenant6->finValidite = new \Datetime('2025-06-30'); // Volumes horaires orphelins... $avenant7 = new Contrat(); $avenant7->parent = $contrat1; $contrat1->avenants[] = $avenant7; $volumeHoraire4 = new VolumeHoraire(); $volumeHoraire4->structureId = 8; $volumeHoraire4->missionId = 1186; $volumeHoraire4->tauxRemuId = 3; $volumeHoraire4->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire4->autres = 45; $volumeHoraire4->heures = 45; $volumeHoraire4->hetd = 45; $volumeHoraire5 = new VolumeHoraire(); $volumeHoraire5->structureId = 8; $volumeHoraire5->missionId = 1186; $volumeHoraire5->tauxRemuId = 3; $volumeHoraire5->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire5->autres = -45; $volumeHoraire5->heures = -45; $volumeHoraire5->hetd = -45; $volumeHoraire6 = new VolumeHoraire(); $volumeHoraire6->structureId = 8; $volumeHoraire6->missionId = 1186; $volumeHoraire6->tauxRemuId = 3; $volumeHoraire6->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire6->autres = 45; $volumeHoraire6->heures = 45; $volumeHoraire6->hetd = 45; $volumeHoraire7 = new VolumeHoraire(); $volumeHoraire7->structureId = 8; $volumeHoraire7->missionId = 1186; $volumeHoraire7->tauxRemuId = 3; $volumeHoraire7->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire7->autres = -45; $volumeHoraire7->heures = -45; $volumeHoraire7->hetd = -45; $avenant7->volumesHoraires = [$volumeHoraire4,$volumeHoraire5,$volumeHoraire6,$volumeHoraire7]; $this->process->calculNumeroAvenant($avenant6); $this->process->calculNumeroAvenant($avenant7); $this->assertEquals(3, $avenant6->numeroAvenant); $this->assertEquals(3, $avenant7->numeroAvenant); } } Loading
module/Contrat/src/Tbl/Process/ContratProcess.php +4 −2 Changes for module/Contrat/src/Tbl/Process/ContratProcess.php: 4 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -493,7 +493,7 @@ class ContratProcess implements ProcessInterface public function isParentPotentiel(Contrat $contrat, Contrat $candidat): bool { if ($candidat->isMission !== $contrat->isMission || $contrat === $candidat || !$candidat->edite || $contrat->historise) { return false; // pas les mêmes types => pas de lien return false; // pas les mêmes types => pas de lien, pas edite ou supprimer, ou lui meme } if ($contrat->isMission) { Loading Loading @@ -624,7 +624,7 @@ class ContratProcess implements ProcessInterface public function calculNumeroAvenant(Contrat $contrat): void { //On connait deja les numéro d'avenant récuperé de la table contrat et on a pas besoin de le recalculer pour les contrat editer (on le fait cependant pour les projets) if ($contrat->id && $contrat->edite == 1) { if (($contrat->id && $contrat->edite == 1) || $contrat->historise) { return; } Loading Loading @@ -1122,4 +1122,6 @@ class ContratProcess implements ProcessInterface $this->intervenants[$intervenantId][$avenantProlongation->uuid] = $avenantProlongation; } } No newline at end of file
tests/TblContrat/CalculNumeroAvenantTest.php +154 −0 Changes for tests/TblContrat/CalculNumeroAvenantTest.php: 154 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace tests\TblContrat; use Contrat\Tbl\Process\Model\Contrat; use Contrat\Tbl\Process\Model\VolumeHoraire; final class CalculNumeroAvenantTest extends TblContratTestCase { Loading Loading @@ -165,4 +166,157 @@ final class CalculNumeroAvenantTest extends TblContratTestCase $this->assertEquals(0, $contrat->numeroAvenant); } /* * On a 1 contrat et 2 avenants édités (1 et 2 en numero) * 3 contrat historisé * 1 projet non édité * 1 projet en devenir * On doit ignoré les contrat historisé et le projet non édité et en devenir et donc on obtient numero d'avenant a 3 */ public function testProjetEtAvenantEnDevenirEtAncienAvenantSupprimer(): void { $contrat1 = new Contrat(); $contrat1->id = 1247; $contrat1->structureId = 8; $contrat1->debutValidite = new \Datetime('2024-10-07'); $contrat1->finValidite = new \Datetime('2024-12-20'); $contrat1->edite = true; $volumeHoraire1 = new VolumeHoraire(); $volumeHoraire1->structureId = 8; $volumeHoraire1->missionId = 1186; $volumeHoraire1->tauxRemuId = 3; $volumeHoraire1->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire1->autres = 15; $volumeHoraire1->heures = 15; $volumeHoraire1->hetd = 15; $contrat1->volumesHoraires = [$volumeHoraire1]; $avenant1 = new Contrat(); $avenant1->id = 1365; $avenant1->structureId = 8; $avenant1->setParent($contrat1); $avenant1->numeroAvenant = 1; $avenant1->debutValidite = new \Datetime('2024-10-07'); $avenant1->finValidite = new \Datetime('2024-12-20'); $avenant1->edite = true; $volumeHoraire2 = new VolumeHoraire(); $volumeHoraire2->structureId = 8; $volumeHoraire2->missionId = 1186; $volumeHoraire2->tauxRemuId = 3; $volumeHoraire2->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire2->autres = 15; $volumeHoraire2->heures = 15; $volumeHoraire2->hetd = 15; $avenant1->volumesHoraires = [$volumeHoraire2]; $avenant2 = new Contrat(); $avenant2->id = 1419; $avenant2->structureId = 8; $avenant2->setParent($contrat1); $avenant2->numeroAvenant = 2; $avenant2->debutValidite = new \Datetime('2024-10-07'); $avenant2->finValidite = new \Datetime('2024-12-20'); $avenant2->edite = true; $volumeHoraire3 = new VolumeHoraire(); $volumeHoraire3->structureId = 8; $volumeHoraire3->missionId = 1186; $volumeHoraire3->tauxRemuId = 3; $volumeHoraire3->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire3->autres = 30; $volumeHoraire3->heures = 30; $volumeHoraire3->hetd = 30; $avenant2->volumesHoraires = [$volumeHoraire3]; $avenant3 = new Contrat(); $avenant3->id = 1485; $avenant3->historise = true; $avenant3->structureId = 8; $avenant3->setParent($avenant2); $avenant3->numeroAvenant = 3; $avenant3->debutValidite = new \Datetime('2024-10-07'); $avenant3->finValidite = new \Datetime('2025-06-30'); $avenant4 = new Contrat(); $avenant4->id = 1486; $avenant4->historise = true; $avenant4->structureId = 8; $avenant4->setParent($contrat1); $avenant4->numeroAvenant = 3; $avenant4->debutValidite = new \Datetime('2024-10-07'); $avenant4->finValidite = new \Datetime('2025-06-30'); $avenant5 = new Contrat(); $avenant5->id = 1487; $avenant5->historise = true; $avenant5->structureId = 8; $avenant5->setParent($avenant2); $avenant5->numeroAvenant = 3; $avenant5->debutValidite = new \Datetime('2024-10-07'); $avenant5->finValidite = new \Datetime('2025-06-30'); $avenant6 = new Contrat(); $avenant6->id = 1488; $avenant6->structureId = 8; $avenant6->setParent($contrat1); $avenant6->numeroAvenant = 4; $avenant6->debutValidite = new \Datetime('2024-10-07'); $avenant6->finValidite = new \Datetime('2025-06-30'); // Volumes horaires orphelins... $avenant7 = new Contrat(); $avenant7->parent = $contrat1; $contrat1->avenants[] = $avenant7; $volumeHoraire4 = new VolumeHoraire(); $volumeHoraire4->structureId = 8; $volumeHoraire4->missionId = 1186; $volumeHoraire4->tauxRemuId = 3; $volumeHoraire4->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire4->autres = 45; $volumeHoraire4->heures = 45; $volumeHoraire4->hetd = 45; $volumeHoraire5 = new VolumeHoraire(); $volumeHoraire5->structureId = 8; $volumeHoraire5->missionId = 1186; $volumeHoraire5->tauxRemuId = 3; $volumeHoraire5->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire5->autres = -45; $volumeHoraire5->heures = -45; $volumeHoraire5->hetd = -45; $volumeHoraire6 = new VolumeHoraire(); $volumeHoraire6->structureId = 8; $volumeHoraire6->missionId = 1186; $volumeHoraire6->tauxRemuId = 3; $volumeHoraire6->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire6->autres = 45; $volumeHoraire6->heures = 45; $volumeHoraire6->hetd = 45; $volumeHoraire7 = new VolumeHoraire(); $volumeHoraire7->structureId = 8; $volumeHoraire7->missionId = 1186; $volumeHoraire7->tauxRemuId = 3; $volumeHoraire7->dateFinMission = new \Datetime('2025-06-30'); $volumeHoraire7->autres = -45; $volumeHoraire7->heures = -45; $volumeHoraire7->hetd = -45; $avenant7->volumesHoraires = [$volumeHoraire4,$volumeHoraire5,$volumeHoraire6,$volumeHoraire7]; $this->process->calculNumeroAvenant($avenant6); $this->process->calculNumeroAvenant($avenant7); $this->assertEquals(3, $avenant6->numeroAvenant); $this->assertEquals(3, $avenant7->numeroAvenant); } }