Commit 28a049e0 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'amelior-wf' into release-1.2.0

parents 558aafec 0b229967
Loading
Loading
Loading
Loading
+541 −0
Changes for data/SQL/1.2.0/30_optimis-wf.sql: 541 added lines, 0 removed lines.
Original line number Diff line number Diff line
--
-- Amélioration V_WORKFLOW : il devient inutile d'utiliser APP_WORKFLOW.ATTEIGNABLE() :-)
--
create or replace view V_WORKFLOW as
    SELECT
        ROWNUM as id,
        t.THESE_ID,
        t.ETAPE_ID,
        t.CODE,
        t.ORDRE,
        t.FRANCHIE,
        t.RESULTAT,
        t.OBJECTIF,
        -- NB: dans les 3 lignes suivantes, c'est la même expression 'dense_rank() over(...)' qui est répétée :
        (dense_rank() over(partition by t.THESE_ID, t.FRANCHIE order by t.ORDRE)) dense_rank,
        case when t.FRANCHIE = 1 or (dense_rank() over(partition by t.THESE_ID, t.FRANCHIE order by t.ORDRE)) = 1 then 1 else 0 end atteignable,
        case when (dense_rank() over(partition by t.THESE_ID, t.FRANCHIE order by t.ORDRE)) = 1 and t.FRANCHIE = 0 then 1 else 0 end courante
    FROM (

         --
         -- VALIDATION_PAGE_DE_COUVERTURE : franchie si version page de couverture validée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.valide IS NULL THEN 0 ELSE 1 END franchie,
             CASE WHEN v.valide IS NULL THEN 0 ELSE 1 END resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'VALIDATION_PAGE_DE_COUVERTURE'
                  LEFT JOIN V_SITU_VALIDATION_PAGE_COUV v ON v.these_id = t.id

         UNION ALL

         --
         -- DEPOT_VERSION_ORIGINALE : franchie si version originale déposée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'DEPOT_VERSION_ORIGINALE'
                  LEFT JOIN V_SITU_DEPOT_VO v ON v.these_id = t.id

         UNION ALL

         --
         -- ATTESTATIONS : franchie si données saisies
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.attestation_id IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.attestation_id IS NULL
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'ATTESTATIONS'
                  LEFT JOIN V_SITU_ATTESTATIONS v ON v.these_id = t.id

         UNION ALL

         --
         -- AUTORISATION_DIFFUSION_THESE : franchie si données saisies
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.diffusion_id IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.diffusion_id IS NULL
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'AUTORISATION_DIFFUSION_THESE'
                  LEFT JOIN V_SITU_AUTORIS_DIFF_THESE v ON v.these_id = t.id

         UNION ALL

         --
         -- SIGNALEMENT_THESE : franchie si données saisies
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.description_id IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.description_id IS NULL
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'SIGNALEMENT_THESE'
                  LEFT JOIN V_SITU_SIGNALEMENT_THESE v ON v.these_id = t.id

         UNION ALL

         --
         -- ARCHIVABILITE_VERSION_ORIGINALE : franchie si l'archivabilité de la version originale a été testée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.THESE_ID IS NULL THEN 0 ELSE 1 END franchie,
             -- CASE WHEN v.THESE_ID IS NULL THEN
             --   0 -- test d'archivabilité inexistant
             -- ELSE
             --   CASE WHEN v.EST_VALIDE IS NULL THEN
             --     1 -- test d'archivabilité existant mais résultat indéterminé (plantage)
             --   ELSE
             --     CASE WHEN v.EST_VALIDE = 1 THEN
             --       1 -- test d'archivabilité réussi
             --     ELSE
             --       0 -- test d'archivabilité échoué
             --     END
             --   END
             -- END franchie,
             CASE WHEN v.EST_VALIDE IS NULL OR v.EST_VALIDE = 0 THEN 0 ELSE 1 END resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'ARCHIVABILITE_VERSION_ORIGINALE'
                  LEFT JOIN V_SITU_ARCHIVAB_VO v ON v.these_id = t.id

         UNION ALL

         --
         -- DEPOT_VERSION_ARCHIVAGE : franchie si version d'archivage déposée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'DEPOT_VERSION_ARCHIVAGE'
                  LEFT JOIN V_SITU_DEPOT_VA v ON v.these_id = t.id
                  LEFT JOIN fichier f ON f.id = v.fichier_id

         UNION ALL

         --
         -- ARCHIVABILITE_VERSION_ARCHIVAGE : franchie si l'archivabilité de la version d'archivage a été testée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.EST_VALIDE IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.EST_VALIDE IS NULL OR v.EST_VALIDE = 0
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'ARCHIVABILITE_VERSION_ARCHIVAGE'
                  LEFT JOIN V_SITU_ARCHIVAB_VA v ON v.these_id = t.id

         UNION ALL

         --
         -- VERIFICATION_VERSION_ARCHIVAGE : franchie si vérification de la version originale effectuée (peu importe la réponse)
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.EST_CONFORME IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.EST_CONFORME IS NULL OR v.EST_CONFORME = 0
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'VERIFICATION_VERSION_ARCHIVAGE'
                  LEFT JOIN V_SITU_VERIF_VA v ON v.these_id = t.id

         UNION ALL

         --
         -- RDV_BU_SAISIE_DOCTORANT : franchie si données doctorant saisies
         --
         SELECT
             t.id AS                      these_id,
             e.id AS                      etape_id,
             e.code,
             e.ORDRE,
             coalesce(v.ok, 0)            franchie,
             (CASE WHEN rdv.COORD_DOCTORANT IS NULL
                       THEN 0
                   ELSE 1 END +
              CASE WHEN rdv.DISPO_DOCTORANT IS NULL
                       THEN 0
                   ELSE 1 END)                 resultat,
             2                            objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'RDV_BU_SAISIE_DOCTORANT'
                  LEFT JOIN V_SITU_RDV_BU_SAISIE_DOCT v ON v.these_id = t.id
                  LEFT JOIN RDV_BU rdv ON rdv.THESE_ID = t.id

         UNION ALL

         --    --
         --    -- RDV_BU_SAISIE_BU : franchie si données BU saisies
         --    --
         --    SELECT
         --      t.id AS                                                                          these_id,
         --      e.id AS                                                                          etape_id,
         --      e.code,
         --      e.ORDRE,
         --      coalesce(v.ok, 0)                                                                franchie,
         --      CASE WHEN rdv.MOTS_CLES_RAMEAU IS NULL THEN 0 ELSE 1 END +
         --      coalesce(rdv.VERSION_ARCHIVABLE_FOURNIE, 0) +
         --      coalesce(rdv.EXEMPL_PAPIER_FOURNI, 0) +
         --      coalesce(rdv.CONVENTION_MEL_SIGNEE, 0)                                           resultat,
         --      4                                                                                objectif
         --    FROM these t
         --      JOIN WF_ETAPE e ON e.code = 'RDV_BU_SAISIE_BU'
         --      LEFT JOIN V_SITU_RDV_BU_SAISIE_BU v ON v.these_id = t.id
         --      LEFT JOIN RDV_BU rdv ON rdv.THESE_ID = t.id
         --
         -- UNION ALL

         --
         -- RDV_BU_VALIDATION_BU : franchie si données BU saisies ET une validation BU existe
         --
         SELECT
             t.id AS               these_id,
             e.id AS               etape_id,
             e.code,
             e.ORDRE,
             coalesce(vs.ok, 0) * coalesce(v.valide, 0) franchie,
             coalesce(vs.ok, 0) + coalesce(v.valide, 0) resultat,
             2 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'RDV_BU_VALIDATION_BU'
                  LEFT JOIN V_SITU_RDV_BU_SAISIE_BU vs ON vs.these_id = t.id
                  LEFT JOIN V_SITU_RDV_BU_VALIDATION_BU v ON v.these_id = t.id

         UNION ALL

         --
         -- DEPOT_VERSION_ORIGINALE_CORRIGEE : franchie si version originale corrigée déposée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'DEPOT_VERSION_ORIGINALE_CORRIGEE'
                  LEFT JOIN V_SITU_DEPOT_VOC v ON v.these_id = t.id

         UNION ALL

         --
         -- ATTESTATIONS_VERSION_CORRIGEE : franchie si données saisies
         --
         SELECT
             t.id AS these_id,
             e.id AS etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.attestation_id IS NULL THEN 0 ELSE 1 END franchie,
             CASE WHEN v.attestation_id IS NULL THEN 0 ELSE 1 END resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'ATTESTATIONS_VERSION_CORRIGEE'
                  LEFT JOIN V_SITU_ATTESTATIONS_VOC v ON v.these_id = t.id

         UNION ALL

         --
         -- AUTORISATION_DIFFUSION_THESE_VERSION_CORRIGEE : franchie si données saisies
         --
         SELECT
             t.id AS these_id,
             e.id AS etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.diffusion_id IS NULL THEN 0 ELSE 1 END franchie,
             CASE WHEN v.diffusion_id IS NULL THEN 0 ELSE 1 END resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'AUTORISATION_DIFFUSION_THESE_VERSION_CORRIGEE'
                  LEFT JOIN V_SITU_AUTORIS_DIFF_THESE_VOC v ON v.these_id = t.id

         UNION ALL

         --
         -- ARCHIVABILITE_VERSION_ORIGINALE_CORRIGEE : franchie si l'archivabilité de la version originale corrigée a été testée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.THESE_ID IS NULL THEN 0 ELSE 1 END franchie,
             CASE WHEN v.EST_VALIDE IS NULL OR v.EST_VALIDE = 0 THEN 0 ELSE 1 END resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'ARCHIVABILITE_VERSION_ORIGINALE_CORRIGEE'
                  LEFT JOIN V_SITU_ARCHIVAB_VOC v ON v.these_id = t.id

         UNION ALL

         --
         -- DEPOT_VERSION_ARCHIVAGE_CORRIGEE : franchie si version d'archivage corrigée déposée
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END franchie,
             CASE WHEN v.fichier_id IS NULL
                      THEN 0
                  ELSE 1 END resultat,
             1          objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'DEPOT_VERSION_ARCHIVAGE_CORRIGEE'
                  LEFT JOIN V_SITU_DEPOT_VAC v ON v.these_id = t.id
                  LEFT JOIN fichier f ON f.id = v.fichier_id

         UNION ALL

         --
         -- ARCHIVABILITE_VERSION_ARCHIVAGE_CORRIGEE : franchie si la version d'archivage corrigée est archivable
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.EST_VALIDE = 1 THEN 1 ELSE 0 END franchie,
             CASE WHEN v.EST_VALIDE = 1 THEN 1 ELSE 0 END resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'ARCHIVABILITE_VERSION_ARCHIVAGE_CORRIGEE'
                  LEFT JOIN V_SITU_ARCHIVAB_VAC v ON v.these_id = t.id

         UNION ALL

         --
         -- VERIFICATION_VERSION_ARCHIVAGE_CORRIGEE : franchie si la version corrigée est certifiée conforme
         --
         SELECT
             t.id AS    these_id,
             e.id AS    etape_id,
             e.code,
             e.ORDRE,
             CASE WHEN v.EST_CONFORME = 1 THEN 1 ELSE 0 END franchie,
             CASE WHEN v.EST_CONFORME = 1 THEN 1 ELSE 0 END resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'VERIFICATION_VERSION_ARCHIVAGE_CORRIGEE'
                  LEFT JOIN V_SITU_VERIF_VAC v ON v.these_id = t.id

         UNION ALL

         --
         -- DEPOT_VERSION_CORRIGEE_VALIDATION_DOCTORANT : franchie si la validation attendue existe
         --
         SELECT
             t.id AS               these_id,
             e.id AS               etape_id,
             e.code,
             e.ORDRE,
             coalesce(v.valide, 0) franchie,
             coalesce(v.valide, 0) resultat,
             1 objectif
         FROM these t
                  JOIN WF_ETAPE e ON e.code = 'DEPOT_VERSION_CORRIGEE_VALIDATION_DOCTORANT'
                  LEFT JOIN V_SITU_DEPOT_VC_VALID_DOCT v ON v.these_id = t.id

         UNION ALL

         --
         -- DEPOT_VERSION_CORRIGEE_VALIDATION_DIRECTEUR : franchie si toutes les validations attendues existent
         --
         select * from (
               WITH tmp AS (
                   SELECT
                       these_id,
                       sum(valide)   AS resultat,
                       count(valide) AS objectif
                   FROM V_SITU_DEPOT_VC_VALID_DIR
                   GROUP BY these_id
               )
               SELECT
                   t.id AS                 these_id,
                   e.id AS                 etape_id,
                   e.code,
                   e.ORDRE,
                   case when coalesce(v.resultat, 0) = v.objectif then 1 else 0 end franchie,
                   coalesce(v.resultat, 0) resultat,
                   v.objectif
               FROM these t
                        JOIN WF_ETAPE e ON e.code = 'DEPOT_VERSION_CORRIGEE_VALIDATION_DIRECTEUR'
                        LEFT JOIN tmp v ON v.these_id = t.id
           )

         UNION ALL

         --
         -- REMISE_EXEMPLAIRE_PAPIER_THESE_CORRIGEE  : franchie pas pour le moment
         --
         select * from (
               WITH tmp_last AS (
                   SELECT
                       THESE_ID as these_id,
                       count(THESE_ID) AS resultat
                   FROM V_SITU_VERSION_PAPIER_CORRIGEE
                   GROUP BY THESE_ID
               )
               SELECT
                   t.id AS                 these_id,
                   e.id AS                 etape_id,
                   e.code,
                   e.ORDRE,
                   coalesce(tl.resultat, 0) franchie,
                   0,
                   1
               FROM these t
                        JOIN WF_ETAPE e ON e.code = 'REMISE_EXEMPLAIRE_PAPIER_THESE_CORRIGEE'
                        LEFT JOIN tmp_last tl ON tl.these_id = t.id
           )

     ) t
     JOIN V_WF_ETAPE_PERTIN v ON t.these_id = v.these_id AND t.etape_id = v.etape_id
/

--
-- APP_WORKFLOW.ATTEIGNABLE() devient inutile, on le garde quand même un moment en souvenir.
--
create or replace PACKAGE APP_WORKFLOW AS

    /**
     * @deprecated depuis l'utilisation de 'dense_rank' pour calculer les témoins 'attegnable' et 'courant'
     * dans la vue V_WORKFLOW.
     */
    function atteignable(p_etape_id NUMERIC, p_these_id NUMERIC) return NUMERIC;

END APP_WORKFLOW;
/
create or replace PACKAGE BODY APP_WORKFLOW
AS

    /**
     * @deprecated depuis l'utilisation de 'dense_rank' pour calculer les témoins 'attegnable' et 'courant'
     * dans la vue V_WORKFLOW.
     */
    function atteignable(p_etape_id NUMERIC, p_these_id NUMERIC) return NUMERIC AS
        v_ordre numeric;
    BEGIN
        select ordre into v_ordre from wf_etape where id = p_etape_id;
        --DBMS_OUTPUT.PUT_LINE('ordre ' || v_ordre);
        for row in (
            select code, ORDRE, franchie, resultat, objectif
            from V_WORKFLOW v
            where v.these_id = p_these_id and v.ordre < v_ordre
            order by v.ordre
            ) loop
            --DBMS_OUTPUT.PUT_LINE(rpad(row.ordre, 5) || ' ' || row.code || ' : ' || row.franchie);
            if row.franchie = 0 then
                return 0;
            end if;
        end loop;

        RETURN 1;
    END atteignable;

END APP_WORKFLOW;
/




/*
select *
from V_WORKFLOW v2_
INNER JOIN THESE t1_ ON v2_.THESE_ID = t1_.ID
INNER JOIN WF_ETAPE w0_ ON v2_.ETAPE_ID = w0_.ID
where THESE_ID = 38307
order by THESE_ID, v2_.ORDRE
/


select *
from V_WORKFLOW v
JOIN THESE t ON v.THESE_ID = t.ID
join WF_ETAPE e on v.ETAPE_ID = e.id
where e.CODE = 'DEPOT_VERSION_ORIGINALE'
  and courante = 1
order by THESE_ID, v.ORDRE
/
*/
 No newline at end of file
+2 −0
Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.VWorkflow.dcm.xml: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@

        <field name="ordre" type="integer" column="ORDRE" nullable="false" />
        <field name="franchie" type="boolean" column="FRANCHIE" nullable="false" />
        <field name="atteignable" type="boolean" column="ATTEIGNABLE" nullable="false" />
        <field name="courante" type="boolean" column="COURANTE" nullable="false" />
        <field name="resultat" type="integer" column="RESULTAT" nullable="false" />
        <field name="objectif" type="integer" column="OBJECTIF" nullable="false" />

+15 −11
Changes for module/Application/src/Application/Entity/Db/VWorkflow.php: 15 added lines, 11 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Entity\Db;

use Application\Entity\VWorkflowNull;

/**
@@ -34,10 +35,15 @@ class VWorkflow
    private $franchie = false;

    /**
     * @var integer
     * @var bool
     */
    private $atteignable = false;

    /**
     * @var bool
     */
    private $courante = false;

    /**
     * @var integer
     */
@@ -128,6 +134,14 @@ class VWorkflow
        return (bool) $this->atteignable;
    }

    /**
     * @return bool
     */
    public function getCourante()
    {
        return (bool) $this->courante;
    }

    /**
     * Get resultat
     *
@@ -150,16 +164,6 @@ class VWorkflow



    /**
     * @param int $atteignable
     * @return VWorkflow
     */
    public function setAtteignable($atteignable)
    {
        $this->atteignable = $atteignable;

        return $this;
    }

    /**
     * @return static
+9 −15
Changes for module/Application/src/Application/Service/Workflow/WorkflowService.php: 9 added lines, 15 removed lines.
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ class WorkflowService extends BaseService

    /**
     * @param These $these
     * @return \Application\Entity\Db\VWorkflow[]
     * @return VWorkflow[]
     */
    public function reloadWorkflow(These $these)
    {
@@ -64,7 +64,7 @@ class WorkflowService extends BaseService
    /**
     * @param These $these
     * @param bool  $forceRefresh
     * @return \Application\Entity\Db\VWorkflow[]
     * @return VWorkflow[]
     */
    private function loadWorkflow(These $these, $forceRefresh = false)
    {
@@ -75,36 +75,30 @@ class WorkflowService extends BaseService
        $qb = $this->getRepository()->createQueryBuilder('v');
        $qb
            ->addSelect('e, t')
            ->addSelect('atteignable(e, t) atteignable')
            ->join('v.these', 't')
            ->join('v.etape', 'e')
            ->orderBy('v.ordre')
            ->andWhere('v.these = :these')
            ->setParameter('these', $these);

        /** @var array $array */
        $workflow = [];
        /** @var WfEtape $prec */
        $prec = null;

        $q = $qb->getQuery()->setHint(Query::HINT_REFRESH, true); // setHint indispensable pour les tests fonctionnels

        foreach ($q->getResult() as $i => $array) {
            /** @var VWorkflow $r */
            $r = $array[0];
            $atteignable = $array['atteignable'];
            $r->setAtteignable($atteignable);

            // injection des étapes précédente et suivante
            $e = $r->getEtape();
        /** @var VWorkflow $vwf */
        foreach ($q->getResult() as $vwf) {
            // injection de l'étape précédente
            $e = $vwf->getEtape();
            $e->setPrecedente($prec);
            $prec = $e;

            // injection des témoins d'état
            $e->setAtteignable($r->getAtteignable());
            $e->setFranchie($r->getFranchie());
            $e->setAtteignable($vwf->getAtteignable());
            $e->setFranchie($vwf->getFranchie());

            $workflow[] = $r;
            $workflow[] = $vwf;
        }

        $this->loaded[$these->getId()] = $workflow;
+4 −3
Changes for module/Application/tests/ApplicationFunctionalTest/Service/Workflow/WorkflowServiceAbstractTest.php: 4 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace ApplicationFunctionalTest\Service\Workflow;

use Application\Entity\Db\Fichier;
use Application\Entity\Db\FichierThese;
use Application\Entity\Db\NatureFichier;
use Application\Entity\Db\Role;
use Application\Entity\Db\These;
@@ -217,7 +218,7 @@ abstract class WorkflowServiceAbstractTest extends AbstractControllerTestCase
    protected function _deposer_fichier_version_originale($corrigee = false)
    {
        $version = $corrigee ? VersionFichier::CODE_ORIG_CORR : VersionFichier::CODE_ORIG;
        $fichier = $this->ep()->fichier($this->these, NatureFichier::CODE_THESE_PDF, $version);
        $fichier = $this->ep()->fichierThese($this->these, NatureFichier::CODE_THESE_PDF, $version);
        $this->em()->flush($fichier);
    }

@@ -289,7 +290,7 @@ abstract class WorkflowServiceAbstractTest extends AbstractControllerTestCase

        // Seul franchissement possible :
        //  - insertion d'un fichier (version d'archivage)
        $fichier = $this->ep()->fichier($this->these, NatureFichier::CODE_THESE_PDF, $version);
        $fichier = $this->ep()->fichierThese($this->these, NatureFichier::CODE_THESE_PDF, $version);
        $this->em()->flush($fichier);
        $this->wfs->reloadWorkflow($this->these);
    }
@@ -316,7 +317,7 @@ abstract class WorkflowServiceAbstractTest extends AbstractControllerTestCase
    {
        $version = $corrigee ? VersionFichier::CODE_ARCHI_CORR : VersionFichier::CODE_ARCHI;

        /** @var Fichier $fichier */
        /** @var FichierThese $fichier */
        $fichier = $this->these->getFichiersByNatureEtVersion(NatureFichier::CODE_THESE_PDF, $version, false)->first();

        // Franchissement
Loading