Commit 46ffed30 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

PCRU :

 - Génération des données/fichiers (pour une activité, via les Service) en ligne de commande
 - écran de contrôle des données

(Test avec l'outils PCRU OK, sauf pour le Partenaire principal ignoré pour le moment)
parent 1839ab9b
Loading
Loading
Loading
Loading
Loading
+8 −8
Changes for module/Oscar/src/Oscar/Command/OscarPcruCreateFileActivityCommand.php: 8 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ class OscarPcruCreateFileActivityCommand extends OscarCommandAbstract
    {
        $this
            ->setDescription("Envoi des données PCRU.")
            ->addOption('oscarid', 'u', InputOption::VALUE_OPTIONAL, 'N° Oscar', '')
            ->addArgument('oscarid', InputOption::VALUE_REQUIRED, 'N° Oscar')
        ;
    }

@@ -41,7 +41,8 @@ class OscarPcruCreateFileActivityCommand extends OscarCommandAbstract
        $io = new SymfonyStyle($input, $output);

        // Récupération des données
        $numeroOscar = $input->getOption('oscarid');
        $numeroOscar = $input->getArgument('oscarid');

        if( !$numeroOscar ){
            $io->error("Vous devez renseigner un IDOSCAR");

@@ -55,13 +56,12 @@ class OscarPcruCreateFileActivityCommand extends OscarCommandAbstract

        }

        die($numeroOscar);
        /** @var PCRUService $pcruService */
        $pcruService = $this->getServicemanager()->get(PCRUService::class);

        $fileContent = $pcruService->generateFileContentForActivity($numeroOscar, true);

        echo $fileContent;

        if( !$configuration->getPcruEnabled() ){
            $io->error("Le module PCRU n'est pas actif");
        } else {
            var_dump($pcruService->upload());
        }
    }
}
 No newline at end of file
+19 −14
Changes for module/Oscar/src/Oscar/Controller/ProjectGrantController.php: 19 added lines, 14 removed lines.
Original line number Diff line number Diff line
@@ -2805,25 +2805,30 @@ class ProjectGrantController extends AbstractOscarController implements UseNotif
        $activity = $this->getActivityFromRoute();
        $this->getOscarUserContextService()->check(Privileges::ACTIVITY_PCRU, $activity);

        $form = new PcruInfosForm();
        $form->setServiceContainer($this->getServiceContainer());
        $form->setHydrator(new PcruInfosFormHydrator());
        $form->init();

        // Récupération des informations
        if( $activity->getPcruInfo() ){
            $pcruInfos = $activity->getPcruInfo();
        } else {
        $factory = new ActivityPcruInfoFromActivityFactory($this->getOscarConfigurationService(), $this->getEntityManager());
        $pcruInfos = $factory->createNew($activity);
        }
        $headers = $factory->getHeaders();

        // Formulaire
        $form->bind($pcruInfos);
//        $form = new PcruInfosForm();
//        $form->setServiceContainer($this->getServiceContainer());
//        $form->setHydrator(new PcruInfosFormHydrator());
//        $form->init();
//
//        // Récupération des informations
//        if( $activity->getPcruInfo() ){
//            $pcruInfos = $activity->getPcruInfo();
//        } else {
//            $factory = new ActivityPcruInfoFromActivityFactory($this->getOscarConfigurationService(), $this->getEntityManager());
//            $pcruInfos = $factory->createNew($activity);
//        }
//
//        // Formulaire
//        $form->bind($pcruInfos);

        return [
            'form' => $form,
            'pcruInfos' => $pcruInfos,
            //'form' => $form,
            'headers' => $headers,
            'datas' => $pcruInfos->toArray(),
            'activity' => $activity
        ];
    }
+24 −0
Changes for module/Oscar/src/Oscar/Entity/Activity.php: 24 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -478,6 +478,22 @@ class Activity implements ResourceInterface
        return $this->pcruPoleCompetitivite;
    }

    /**
     * @return PcruPoleCompetitivite
     */
    public function getPcruPoleCompetitiviteStr()
    {
        return $this->getPcruPoleCompetitivite() ?: "";
    }

    /**
     * @return PcruPoleCompetitivite
     */
    public function isPcruPolePoleCompetitiviteStr()
    {
        return $this->isPcruValidPoleCompetitivite();
    }

    /**
     * @param PcruPoleCompetitivite $pcruPoleCompetitivite
     */
@@ -495,6 +511,14 @@ class Activity implements ResourceInterface
        return $this->pcruSourceFinancement;
    }

    /**
     * @return PcruSourceFinancement
     */
    public function getPcruSourceFinancementStr()
    {
        return $this->getPcruSourceFinancement() ?: "";
    }

    /**
     * @param PcruSourceFinancement $pcruSourceFinancement
     */
+1 −1
Changes for module/Oscar/src/Oscar/Entity/ActivityPcruInfos.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -239,7 +239,7 @@ class ActivityPcruInfos
        $out['EmployeurResponsableScientifique'] = $this->getEmployeurResponsableScientifique();
        $out['CoordinateurConsortium'] = $this->isCordinateurConsortium() ? 'True' : 'False';
        $out['Partenaires'] = $this->getPartenaires();
        $out['PartenairePrincipal'] = ""; // TODO
        $out['PartenairePrincipal'] = "Part inconnu"; // TODO
        $out['IdPartenairePrincipal'] = $this->getIdPartenairePrincipal();
        $out['SourceFinancement'] = $this->getSourceFinancement() ? $this->getSourceFinancement()->getLabel() : "";
        $out['LieuExecution'] = $this->getLieuExecution();
+16 −0
Changes for module/Oscar/src/Oscar/Entity/ActivityRepository.php: 16 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
namespace Oscar\Entity;

use Doctrine\ORM\EntityRepository;
use Oscar\Exception\OscarException;
use Oscar\Utils\DateTimeUtils;

/**
@@ -93,4 +94,19 @@ class ActivityRepository extends EntityRepository
        $activities = $query->getQuery()->getResult();
        return $activities;
    }

    public function getActivityByNumOscar($numOscar, $throw = false)
    {
        try {
            $activity = $this->findOneBy(['oscarNum' => $numOscar]);
            return $activity;
        } catch (\Exception $exception) {
            $error = "Impossible de charger l'activité $numOscar : " . $exception->getMessage();
            if( $throw ){
                throw new OscarException($error);
            } else {
                return null;
            }
        }
    }
}
 No newline at end of file
Loading