Commit 5b17bb65 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

- Flux de jalon (Mode publique/privé : Ajout du authId)

- Récupération des flux côté fiche activité OK
- Toujours en cours
parent 329018cb
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ class ActivityDateFlow
     * @var boolean
     * @ORM\Column(type="boolean", options={"default": "true"})
     */
    private string $public;
    private bool $public = true;


    /**
+19 −0
Original line number Diff line number Diff line
@@ -12,4 +12,23 @@ class ActivityDateFlowRepository extends EntityRepository
            ->getQuery();
        return $query->getArrayResult();
    }

    /**
     * Retourne les flux de jalons publiques et ceux de l'utilisateur si renseigné.
     *
     * @param int|null $authId
     * @return float|int|mixed[]|string
     */
    public function getAuthFlow( ?int $authId = null )
    {
        $query = $this->createQueryBuilder('f');

        $query->where('f.public = TRUE');
        if( $authId ){
            $query->orWhere('f.createdBy = :authId');
            $query->setParameter('authId', $authId);
        }

        return $query->getQuery()->getArrayResult();
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -149,10 +149,12 @@ class ActivityDateFlowService
            $this->entityManager->persist($dateflow);
        }

        $isPublic = boolval($jsonDatas['public']) == true;

        $dateflow->setLabel($jsonDatas['label']);
        $dateflow->setDescription($jsonDatas['description']);
        $dateflow->setCreatedBy($creatorId);
        $dateflow->setPublic(boolval($jsonDatas['public']));
        $dateflow->setPublic($isPublic);

        // Trier les données par ORDER*
        usort($jsonDatas['datetypes'], function ($a, $b) {
+18 −4
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ use Oscar\Entity\Activity;
use Oscar\Entity\ActivityAvenant;
use Oscar\Entity\ActivityAvenantModification;
use Oscar\Entity\ActivityDate;
use Oscar\Entity\ActivityDateFlow;
use Oscar\Entity\ActivityDateRepository;
use Oscar\Entity\ActivityNote;
use Oscar\Entity\ActivityNoteRepository;
@@ -148,8 +149,13 @@ class ProjectGrantApiService implements

        $credentials = $this->getActivityJsonCredentials($activity, $oscarUserContext, $perimeters);

        $authId = $oscarUserContext->getAuthentification()->getId();
        $personId = $oscarUserContext->getCurrentPersonId();

        $out = [
            'date' => date('Y-m-d H:i:s'),
            'auth' => $authId,
            'person' => $personId,
            'error' => null,
            'warnings' => null,
            'perimeter' => $perimeters,
@@ -162,7 +168,7 @@ class ProjectGrantApiService implements
            return $out;
        } else {
            $out['credentials'] = $credentials;
            $out['datas'] = $this->getActivityJsonDatas($activity, $urlPlugin, $perimeters);
            $out['datas'] = $this->getActivityJsonDatas($activity, $urlPlugin, $perimeters, $authId, $personId);
            foreach ($out['datas'] as $key => $content) {
                if (!array_key_exists($key, $credentials)) {
                    unset($out['datas'][$key]);
@@ -431,7 +437,9 @@ class ProjectGrantApiService implements
    public function getActivityJsonDatas(
        Activity $activity,
        ?Url     $urlPlugin = null,
        ?array   $perimeters = null
        ?array   $perimeters = null,
        ?int     $authId,
        ?int     $personId
    ): array
    {
        $datas = [
@@ -461,7 +469,7 @@ class ProjectGrantApiService implements
                    break;

                case self::PERIMETER_MILESTONES:
                    $datas[self::PERIMETER_MILESTONES] = $this->getMilestonesActivity($activity, $urlPlugin);
                    $datas[self::PERIMETER_MILESTONES] = $this->getMilestonesActivity($activity, $urlPlugin, $authId);
                    break;

                case self::PERIMETER_NOTES:
@@ -815,7 +823,7 @@ class ProjectGrantApiService implements
     * @return array
     * @throws NotSupported
     */
    public function getMilestonesActivity(Activity $activity, ?Url $urlPlugin = null): array
    public function getMilestonesActivity(Activity $activity, ?Url $urlPlugin = null, ?int $authId): array
    {
        /** @var ActivityDateRepository $activityDateRepository */
        $activityDateRepository = $this->getEntityManager()->getRepository(ActivityDate::class);
@@ -824,6 +832,7 @@ class ProjectGrantApiService implements
            'url' => $urlPlugin->fromRoute('activitydate', ['idactivity' => $activity->getId()]),
            'urlNotifications' => $urlPlugin->fromRoute('contract/notifications', ['id' => $activity->getId()]),
            'entities' => [],
            'flow' => []
        ];

        // Jalons
@@ -832,6 +841,11 @@ class ProjectGrantApiService implements
        // Types
        $types = $this->getEntityManager()->getRepository(DateType::class)->findAll();

        // Flux
        $out['flow'] = $this->getEntityManager()
            ->getRepository(ActivityDateFlow::class)
            ->getAuthFlow($authId);


        $typesArr = [];
        /** @var DateType $type */
+6 −2
Original line number Diff line number Diff line
@@ -570,11 +570,12 @@
      <aside class="col-md-4">
        <section id="milestones" class="section-infos" v-if="credentials.milestones.read">
          <span><h2><i class="icon-calendar"></i>Jalons</h2></span>

          {{ milestonesFlow }}
          <Milestones :url="milestonesUrl"
                      :manage="credentials.milestones.edit"
                      :progression="credentials.milestones.progression"
                      :payments="payments"
                      :flow="milestonesFlow"
                      :items="milestones"
                      :types="milestonesTypes"
                      :debug-enabled="debugEnabled"
@@ -719,6 +720,7 @@ export default {
      documents: [],

      milestones: [],
      milestonesFlow: [],
      milestonesTypes: [],
      milestonesUrl: null,
      milestonesUrlNotifications: null,
@@ -866,8 +868,9 @@ export default {
      this.currencies = p.currencies;
      this.paymentsUrl = p.url;
    },
    handlerUpdateMilestones(milestones) {
    handlerUpdateMilestones(milestones, milestonesFlow) {
      this.milestones = milestones;
      this.milestonesFlow = milestonesFlow;
    },

    handlerUpdatePersons(d) {
@@ -965,6 +968,7 @@ export default {
          this.milestonesTypes = response.data.activity.datas.milestones.types;
          this.milestonesUrl = response.data.activity.datas.milestones.url;
          this.milestonesUrlNotifications = response.data.activity.datas.milestones.urlNotifications;
          this.milestonesFlow = response.data.activity.datas.milestones.flow;
        }

        if (response.data.activity.datas.organizations) {
Loading