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

[FIX] Step-Star : prise en compte des thèses écartées dans le comptage des fichiers TEF générés.

parent 0454cbea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ Journal des modifications
10.5.0
------
- [FIX] Dépôt de thèse : plantage de la génération de la convention de mise en ligne.
- [FIX] Step-Star : prise en compte des thèses écartées dans le comptage des fichiers TEF générés.

10.4.0
------
+13 −5
Original line number Diff line number Diff line
@@ -60,6 +60,12 @@ class GenerateFacade

    private string $xslFilePath;

    /**
     * Éventuelles thèse écartées lors de la génération du fichier XML intermédiaire.
     * @var array[]
     */
    private array $rejectedTheses;

    /**
     * Spécifie le *préfixe du chemin* du répertoire qui sera créé par le module et dans lequel seront générés le fichier
     * XML intermédiaire (dans un sous répertoire dédié) et les fichiers TEF (idem).
@@ -134,10 +140,11 @@ class GenerateFacade

            // fichiers TEF (1 par these)
            $tefFilesPaths = $this->generateTefFilesFromDir();
            if (count($tefFilesPaths) !== count($theses)) {
            $tefFilesExpectedCount = count($theses) - count($this->rejectedTheses);
            if (count($tefFilesPaths) !== $tefFilesExpectedCount) {
                throw new Exception(sprintf(
                    "Le nombre de fichiers TEF générés (%d) devrait être égal au nombre de thèses spécifiées (%d).",
                    count($tefFilesPaths), count($theses)
                    "Le nombre de fichiers TEF générés (%d) devrait être égal à %d (i.e. nombre de thèses (%d) moins celles écartées (%d)).",
                    count($tefFilesPaths), $tefFilesExpectedCount, count($theses), count($this->rejectedTheses)
                ));
            }
        } catch (Exception $e) {
@@ -191,9 +198,10 @@ class GenerateFacade
            throw new Exception("Une erreur est survenue pendant la generation du fichier XML.", null, $e);
        }

        if ($rejectedTheses = $this->xmlService->getRejectedTheses()) {
        $this->rejectedTheses = $this->xmlService->getRejectedTheses();
        if ($this->rejectedTheses) {
            $this->appendToLog('  :-( Les theses suivantes ont ete ecartees car elles sont invalides :');
            foreach ($rejectedTheses as $array) {
            foreach ($this->rejectedTheses as $array) {
                $this->appendToLog(sprintf('      - %s : %s', $array['these']['id'], $array['reason']));
            }
        }