Commit 7475e414 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Application des correspondances des types de contrat au générateur de donnèes PCRU

parent 912fc4e2
Loading
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -7,7 +7,9 @@
    <div class="overlay" v-if="selectedPcru">
      <div class="overlay-content" v-if="oscartypes.length">
        <a class="overlay-closer" @click="handlerClose">Fermer</a>
        <h3>Correspondance</h3>
        <h3>
          <i class="icon-link-ext"></i>
          Correspondance</h3>
        <p>Choississez un type d'activité correspondant dans Oscar pour les contrats PCRI
          <strong></strong> : </p>
        <tree :tree="oscartypes[0]" @select="handlerSelect"></tree>
@@ -20,8 +22,7 @@
    <div class="row">
      <div class="col-md-6">
        <h2>Types côté <strong>PCRU</strong></h2>
        <article class="card xs" v-for="t in pcrutypes" :key="t.id"
                 :class="t.activitytype_id != null ? 'active' : 'disabled'">
        <article class="card xs" v-for="t in pcrutypes" :key="t.id" :class="t.activitytype_id != null ? 'active' : 'disabled'">
          <h3><code>[{{ t.id }}]</code>
            <strong>{{ t.label }}</strong>
          </h3>
+1 −4
Original line number Diff line number Diff line
@@ -70,8 +70,7 @@ class OscarRemoteData {
                    this.state.error = error;
                    if (handlerError) {
                        handlerError(error);
                    }
                    else {
                    } else {
                        this.debug(' > NO handlerError given');
                    }
                })
@@ -81,7 +80,6 @@ class OscarRemoteData {
    }

    performPost(url, datas, handlerResponse = null, handlerError = null) {
        console.log("performPost", url, datas );
        this.state.loading = true;
        this.getAxiosInstance().post(url, datas)
            .then(response => {
@@ -90,7 +88,6 @@ class OscarRemoteData {
                }
            })
            .catch(error => {
                console.log(error);
                this.debug("[ERROR] " + error);
                if (handlerError) {
                    handlerError(error);
+1 −1
Original line number Diff line number Diff line
@@ -245,7 +245,7 @@ class ActivityPcruInfos
        $out['SigleUnite'] = $this->getSigleUnite();
        $out['NumContratTutelleGestionnaire'] = $this->getNumContratTutelleGestionnaire();
        $out['Equipe'] = $this->getEquipe();
        $out['TypeContrat'] = $this->getTypeContrat() ? $this->getTypeContrat()->getLabel() : "ND";
        $out['TypeContrat'] = $this->getTypeContrat() ? $this->getTypeContrat()->getLabel() : "Aucun";
        $out['Acronyme'] = $this->getAcronyme();
        $out['ContratsAssocies'] = $this->getContratsAssocies();
        $out['ResponsableScientifique'] = $this->getResponsableScientifique();
+18 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ class PcruTypeContractRepository extends EntityRepository
        $entities = $query->getQuery()->getResult();
        return array_map('current', $entities);
    }

    public function getArrayDatasJoined(): array
    {
        $query = $this->createQueryBuilder('ptc')->orderBy("ptc.label", "ASC");
@@ -45,4 +46,21 @@ class PcruTypeContractRepository extends EntityRepository
        }
        return $out;
    }


    public function getPcruContractLabelByActivityType( ActivityType $activityType ): ?PcruTypeContract
    {
        try {
            $query = $this->createQueryBuilder('ptc')
                ->select('ptc.label label')
                ->where('ptc.activityType = :activityType')
                ->setParameter('activityType', $activityType)
                ->getQuery();

            return $query->getSingleResult();

        } catch (NoResultException $exception) {
            return null;
        }
    }
}
 No newline at end of file
+10 −1
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@ use Oscar\Entity\ActivityOrganization;
use Oscar\Entity\ActivityPcruInfos;
use Oscar\Entity\ActivityPerson;
use Oscar\Entity\ContractDocument;
use Oscar\Entity\PcruTypeContract;
use Oscar\Entity\PcruTypeContractRepository;
use Oscar\Exception\OscarException;
use Oscar\Service\OscarConfigurationService;

@@ -69,7 +71,7 @@ class ActivityPcruInfoFromActivityFactory

        // Recherche automatique du responsable scientifique
        $roleRSToFind = $this->oscarConfigurationService
            ->getOptionalConfiguration('pcru_respscien_role', 'Responsable Scientifique');
            ->getOptionalConfiguration('pcru_respscien_role', 'Responsable scientifique');
        $responsable = "";

        /** @var ActivityPerson $personActivity */
@@ -92,6 +94,12 @@ class ActivityPcruInfoFromActivityFactory
            }
        }

        /** @var PcruTypeContractRepository $pcruContractTypeRepository */
        $pcruContractTypeRepository = $this->entityManager->getRepository(PcruTypeContract::class);

        /** @var string $pcruContract */
        $pcruContract = $pcruContractTypeRepository->getPcruContractLabelByActivityType($activity->getActivityType());

        $activityPcruInfos->setActivity($activity)
            ->setDocumentPath($documentSigned)
            ->setSigleUnite($sigleUnit)
@@ -101,6 +109,7 @@ class ActivityPcruInfoFromActivityFactory
            ->setSourceFinancement($activity->getPcruSourceFinancementStr())
            ->setResponsableScientifique($responsable)
            ->setCodeUniteLabintel($codeUniteLabintel)
            ->setTypeContrat($pcruContract)
            ->setObjet($activity->getLabel())
            ->setAcronyme($activity->getAcronym())
            ->setMontantTotal($activity->getAmount())
Loading