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

[FIX] Notification 'Corrections attendues' et 'Résultats de thèses modifiés' :...

[FIX] Notification 'Corrections attendues' et 'Résultats de thèses modifiés' : problème dans l'algo de préparation des données (partie émergée : 'Warning: Undefined array key').
parent c055cc49
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ Journal des modifications
------
- [FIX] Notification de thèse déposée : warning 'Undefined variable' à cause d'une variable non fournie au template.
- [FIX] Notification 'Corrections attendues' et 'Résultats de thèses modifiés' : correction de l'erreur 'Typed property Notification\Notification::$subject must not be accessed before initialization'.
- [FIX] Notification 'Corrections attendues' et 'Résultats de thèses modifiés' : problème dans l'algo de préparation des données (partie émergée : 'Warning: Undefined array key').

13.1.0
------
+11 −23
Changes for module/Import/src/Import/Model/Service/ImportObservResultService.php: 11 added lines, 23 removed lines.
Original line number Diff line number Diff line
@@ -122,9 +122,8 @@ class ImportObservResultService extends \UnicaenDbImport\Entity\Db\Service\Impor
    private function prepareDataForResultatAdmisEvent(array $importObservResults): array
    {
        // Mise en forme des résultats d'observation
        $sourceCodes = [];
        $details = [];
        foreach ($importObservResults as $index => $ior) {
        $data = [];
        foreach ($importObservResults as $ior) {
            if ($ior->isDateLimiteNotifDepassee()) {
                $this->logger->info(sprintf(
                    "Le ImportObservResult %d de la thèse '%s' est écarté car la date limite de notif est dépassée (%s).",
@@ -134,33 +133,22 @@ class ImportObservResultService extends \UnicaenDbImport\Entity\Db\Service\Impor
                ));
                continue;
            }
            $sourceCodes[$index] = $ior->getSourceCode();
            $details[$index] = $ior->getResultatToString();
        }

        if (empty($sourceCodes)) {
            return [];
            /** @var \These\Entity\Db\These $these */
            $these = $this->theseService->getRepository()->findOneBy(['sourceCode' => $ior->getSourceCode()]);
            if ($these === null) {
                $this->logger->info(sprintf("La thèse '%s' est introuvable !", $these->getSourceCode()));
                continue;
            }

        // Fetch thèses concernées
        $qb = $this->theseService->getRepository()->createQueryBuilder('t');
        $qb->where($qb->expr()->in('t.sourceCode', $sourceCodes));
        $theses = $qb->getQuery()->getResult();
        /** @var These[] $theses */

        // Mise en forme des données
        $data = [];
        foreach ($theses as $index => $these) {
            if (!$these->estNonHistorise()) {
            if ($these->estHistorise()) {
                $this->logger->info(sprintf("La thèse '%s' est écartée car elle est historisée.", $these->getSourceCode()));
                continue;
            }
            $importObservResult = $importObservResults[$index];
            $detail = trim($details[$index]);

            $data[] = [
                'importObservResult' => $importObservResult,
                'importObservResult' => $ior,
                'these' => $these,
                'detail' => $detail,
                'detail' => trim($ior->getResultatToString()),
            ];
        }