Commit 80f3087c authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Merge branch 'connor-freefield' into connor

parents 3cf0d792 ec9f8c01
Loading
Loading
Loading
Loading
Loading
+161 −93
Original line number Diff line number Diff line
@@ -452,6 +452,14 @@ class Activity implements ResourceInterface
     */
    protected $avenants;

    /**
     * Liste des champs libres
     *
     * @var ActivityFreeFieldValue[]
     * @ORM\OneToMany(targetEntity="ActivityFreeFieldValue", mappedBy="activity", cascade={"remove", "persist"})
     */
    protected $freeFields;

    /**
     * @var ArrayCollection
     * @ORM\ManyToMany(targetEntity="Person", inversedBy="validatorActivitiesPrj")
@@ -792,7 +800,8 @@ class Activity implements ResourceInterface
        \DateTime $cache_at = new \DateTime(),
        bool      $cache_lock = false,
        string    $cache_lock_reason = self::CACHE_REASON_DEFAULT
    ): self {
    ): self
    {
        $this->cache = $cache_content;
        $this->dateCached = $cache_at;
        if ($cache_lock === true) {
@@ -838,7 +847,8 @@ class Activity implements ResourceInterface
        bool    $diplayCurrency = true,
        bool    $displayPercentInfo = true,
        bool    $fraisDeGestionInclusDansMontant = false,
    ): string {
    ): string
    {
        $percent = '';
        $currency = '';
        $data = '';
@@ -1207,7 +1217,8 @@ class Activity implements ResourceInterface

    public function getActivityTypeChain(
        ActivityTypeService $activityTypeService
    ) {
    )
    {
        return $activityTypeService->getActivityTypeChain($this->getActivityType());
    }

@@ -1383,8 +1394,7 @@ class Activity implements ResourceInterface
    {
        if ($this->getDateNegociation()) {
            return $this->getDateNegociation()->format($format);
        }
        else {
        } else {
            return "";
        }
    }
@@ -1408,8 +1418,7 @@ class Activity implements ResourceInterface
    {
        if ($this->getDateDepotProjet()) {
            return $this->getDateDepotProjet()->format($format);
        }
        else {
        } else {
            return "";
        }
    }
@@ -1605,6 +1614,7 @@ class Activity implements ResourceInterface
        $this->organizations = new ArrayCollection();
        $this->milestones = new ArrayCollection();
        $this->avenants = new ArrayCollection();
        $this->freeFields = new ArrayCollection();
        $this->payments = new ArrayCollection();
        $this->disciplines = new ArrayCollection();
        $this->motscles = new ArrayCollection();
@@ -1673,6 +1683,36 @@ class Activity implements ResourceInterface
        return count($this->getValidatorsAdm()) > 0;
    }

    /**
     * @return ArrayCollection
     */
    public function getFreeFields(): Collection
    {
        return $this->freeFields;
    }


    public function getFreeFieldsValues(ActivityFreeField $type): mixed
    {
        foreach ($this->getFreeFields() as $freeField) {
            if ($freeField->getType() == $type) {
                return $freeField->getValue();
            }
        }
        return null;
    }

    public function getFreeFieldsData(ActivityFreeField $type): mixed
    {
        /** @var ActivityFreeFieldValue $freeField */
        foreach ($this->getFreeFields() as $freeField) {
            if ($freeField->getType() == $type) {
                return $freeField->getData();
            }
        }
        return null;
    }

    /**
     * @param ArrayCollection $validatorsAdm
     */
@@ -1901,7 +1941,8 @@ class Activity implements ResourceInterface
                     $role,
                     $start = null,
                     $to = null
    ) {
    )
    {
        if (!$this->hasOrganization($organization, $role)) {
            $partner = new ActivityOrganization();
            $partner->setOrganization($organization)
@@ -2096,6 +2137,34 @@ class Activity implements ResourceInterface
        return $partners;
    }

    public function setFreeField(ActivityFreeField $type, array $value)
    {
        /** @var ActivityFreeFieldValue $freeField */
        $freeField = null;
        /** @var ActivityFreeFieldValue $field */
        foreach ($this->getFreeFields() as $field) {
            if ($field->getType() === $type) {
                $freeField = $field;
                $this->getFreeFields()->removeElement($freeField);
            }
        }
        $freeField = new ActivityFreeFieldValue();
        $freeField->setType($type);
        $freeField->setActivity($this);
        $this->getFreeFields()->add($freeField);
        $freeField->setData($value);
    }

    public function getFreeFieldOfType(?object $typeObj) : ActivityFreeFieldValue|null
    {
        /** @var ActivityFreeFieldValue $field */
        foreach ($this->getFreeFields() as $field) {
            if ($field->getType() === $typeObj) {
                return $field;
            }
        }
        return null;
    }


    protected function deepParent(Organization $organization, &$out = []): array
@@ -2162,7 +2231,8 @@ class Activity implements ResourceInterface
        ?\DateTime $dateStart = null,
        ?\DateTime $dateEnd = null,
        bool       $deep = true
    ) {
    )
    {
        $found = false;
        /** @var ActivityPerson $activityPerson */
        foreach ($this->persons as $activityPerson) {
@@ -2484,8 +2554,7 @@ class Activity implements ResourceInterface
        /** @var ActivityPayment $payment */
        foreach ($this->getPayments() as $payment) {
            if (
                $payment->getDatePayment() == $datePayment && $payment->getAmount(
                ) == $amount && $payment->getDatePredicted() == $datePredicted
                $payment->getDatePayment() == $datePayment && $payment->getAmount() == $amount && $payment->getDatePredicted() == $datePredicted
            ) {
                return true;
            }
@@ -2504,7 +2573,8 @@ class Activity implements ResourceInterface
        Organization $organization,
                     $role = null,
                     $deep = true
    ) {
    )
    {
        $found = false;
        /** @var ActivityOrganization $relation */
        foreach ($this->organizations as $relation) {
@@ -2819,7 +2889,6 @@ class Activity implements ResourceInterface
            'ID Projet' => $this->getProject() ? $this->getProject()->getId() : 'N.D',
            'Acronyme' => $this->getAcronym(),
            'Projet' => $this->getProject() ? $this->getProject()->getLabel() : '',
            'Description du projet'                => $this->getProject() ? $this->getProject()->getDescription() : '',
            'Avenants' => count($this->getAvenants()),
            'Intitulé' => $this->getLabel(),
            'N°Financier' => $this->getCodeEOTP(),
@@ -2888,7 +2957,6 @@ class Activity implements ResourceInterface
            'ID Projet',
            'Acronyme',
            'Projet',
            'Description du projet',
            'Avenants',
            'Intitulé',
            'N°Financier',
+2 −0
Original line number Diff line number Diff line
@@ -46,7 +46,9 @@ export default defineConfig({
            // make sure to externalize deps that shouldn't be bundled
            // into your library
            input: {

                activity: resolve(__dirname, 'src/Activity.js'),
                activityform: resolve(__dirname, 'src/ActivityForm.js'),
                activitylist: resolve(__dirname, 'src/ActivityList.js'),
                activitydocuments: resolve(__dirname, 'src/ActivityDocuments.js'),
                activitymotscles: resolve(__dirname, 'src/ActivityMotsCles.js'),