Commit d3b9a317 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Admission et thèse saisie dans l'application : l'origine de financement...

[FIX] Admission et thèse saisie dans l'application : l'origine de financement doit provenir de la source SyGAL.
parent ef20b52d
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ Journal des modifications
- [FIX] Admission : la recherche d'un dossier par numéro INE ne doit pas être sensible à la casse.
- [FIX] Inscription administrative : mapping erroné de la nationalité de l'apprenant, impactant la création de l'individu à l'import de l'IA.
- [FIX] Création de thèse à partir du dossier d'admission : le codirecteur de thèse avait le rôle de directeur.
- [FIX] Admission et thèse saisie dans l'application : l'origine de financement doit provenir de la source SyGAL.

13.2.0
------
+13 −10
Changes for module/Admission/src/Admission/Form/Fieldset/Financement/FinancementFieldset.php: 13 added lines, 10 removed lines.
Original line number Diff line number Diff line
@@ -17,25 +17,28 @@ use Laminas\InputFilter\InputFilterProviderInterface;

class FinancementFieldset extends AdmissionBaseFieldset implements InputFilterProviderInterface
{
    private array $financements;
    /**
     * @var OrigineFinancement[]
     */
    private array $origineFinancements;

    public function setFinancements(array $financements): void
    /**
     * @param OrigineFinancement[] $origineFinancements
     */
    public function setOrigineFinancements(array $origineFinancements): void
    {
        $options = [];
        foreach ($financements as $origine) {
            /** @var OrigineFinancement $origine */
            if(!in_array($origine->getLibelleLong(), $options)){
        foreach ($origineFinancements as $origine) {
            $options[$origine->getId()] = $origine->getLibelleLong();
        }
        }
        $this->financements = $options;
        $this->origineFinancements = $options;
    }

    public function prepareElement(FormInterface $form): void
    {
        $this->get('financement')->setValueOptions($this->financements);
        $this->get('financementCompl')->setValueOptions($this->financements);
        parent::prepareElement($form); // TODO: Change the autogenerated stub
        $this->get('financement')->setValueOptions($this->origineFinancements);
        $this->get('financementCompl')->setValueOptions($this->origineFinancements);
        parent::prepareElement($form);
    }

    public function init()
+8 −2
Changes for module/Admission/src/Admission/Form/Fieldset/Financement/FinancementFieldsetFactory.php: 8 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace Admission\Form\Fieldset\Financement;
use Admission\Entity\Db\Financement;
use Admission\Hydrator\Financement\FinancementHydrator;
use Application\Service\Financement\FinancementService;
use Application\Service\Source\SourceService;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
@@ -24,9 +25,14 @@ class FinancementFieldsetFactory
        $fieldset->setHydrator($financementHydrator);
        $fieldset->setObject(new Financement());

        /** @var SourceService $sourceService */
        $sourceService = $container->get(SourceService::class);
        $source = $sourceService->fetchApplicationSource();

        /** @var FinancementService $applicationFinancementService */
        $applicationFinancementService = $container->get(FinancementService::class);
        $origines = $applicationFinancementService->findOriginesFinancements("libelleLong");
        $fieldset->setFinancements($origines);
        $origines = $applicationFinancementService->findOriginesFinancements("libelleLong", $source);
        $fieldset->setOrigineFinancements($origines);

        return $fieldset;
    }
+5 −3
Changes for module/Application/src/Application/Service/Financement/FinancementService.php: 5 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace Application\Service\Financement;

use Application\Entity\Db\Financement;
use Application\Entity\Db\OrigineFinancement;
use Application\Entity\Db\Source;
use Application\Service\Source\SourceServiceAwareTrait;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\ORMException;
@@ -22,17 +23,18 @@ class FinancementService
    }

    /**
     * @param string|null $order
     * @param bool $cacheable
     * @return OrigineFinancement[]
     */
    public function findOriginesFinancements(string $order = null, bool $cacheable = false): array
    public function findOriginesFinancements(string $order = null, ?Source $source = null, bool $cacheable = false): array
    {
        $qb = $this->getRepositoryOrigineFinancement()->createQueryBuilder('origine');

        if ($order) {
            $qb = $qb->orderBy('origine.' . $order);
        }
        if ($source) {
            $qb = $qb->andWhere('origine.source = :source')->setParameter('source', $source);
        }

        $qb->setCacheable($cacheable);

+6 −3
Changes for module/These/src/These/Fieldset/Financement/FinancementFieldset.php: 6 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -15,17 +15,20 @@ use These\Entity\Db\These;

class FinancementFieldset extends Fieldset implements InputFilterProviderInterface
{
    /**
     * @var OrigineFinancement[]
     */
    private array $originesFinancements;

    /**
     * @param OrigineFinancement[] $originesFinancements
     */
    public function setOrigineFinancementsPossibles(array $originesFinancements): void
    {
        $options = [];
        foreach ($originesFinancements as $origine) {
            /** @var OrigineFinancement $origine */
            if(!in_array($origine->getLibelleLong(), $options)){
            $options[$origine->getId()] = $origine->getLibelleLong();
        }
        }
        $this->originesFinancements = $options;
    }

Loading