Commit d4ff864d by Yvon

create profil de cotisation object

parent 9a2d6212
......@@ -80,6 +80,14 @@ class Adherent extends AccountableObject implements AccountableInterface
*/
private $accounts;
/**
* @var ProfilDeCotisation
*
* @ORM\ManyToOne(targetEntity="ProfilDeCotisation", cascade={"persist"}, inversedBy="beneficiaires")
* @ORM\JoinColumn(name="profildecotisation_id", referencedColumnName="id", nullable=true)
*/
private $profilDeCotisation;
public function __construct()
{
$this->accounts = new ArrayCollection();
......@@ -224,4 +232,22 @@ class Adherent extends AccountableObject implements AccountableInterface
return 'Adhérent xxx';
}
/**
* @return ProfilDeCotisation
*/
public function getProfilDeCotisation(): ProfilDeCotisation
{
return $this->profilDeCotisation;
}
/**
* @return $this
*/
public function setProfilDeCotisation($profilDeCotisation): self
{
$this->profilDeCotisation = $profilDeCotisation;
return $this;
}
}
<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Entity\EntityTrait\EnablableEntityTrait;
use App\Entity\EntityTrait\NameSlugContentEntityTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Ramsey\Uuid\Doctrine\UuidGenerator;
/**
* @ORM\Entity(repositoryClass="App\Repository\ProfilDeCotisationRepository")
* @ORM\HasLifecycleCallbacks()
* @ORM\Table(name="profildecotisation")
*/
class ProfilDeCotisation
{
use NameSlugContentEntityTrait;
use TimestampableEntity;
use EnablableEntityTrait;
/**
* @var \Ramsey\Uuid\UuidInterface
*
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class=UuidGenerator::class)
*/
protected $id;
/**
* @ORM\Column(name="maxPercevableMensuel", type="integer")
* @Assert\Type("numeric")
* @Assert\GreaterThanOrEqual(
* value = 0
* )
*/
protected $maxPercevableMensuel;
/**
* @var float
*
* @ORM\Column(name="tauxCotisation", type="decimal", scale=4)
* @Assert\NotBlank
* @Assert\Type("numeric")
* @Assert\GreaterThanOrEqual(
* value = 0
* )
*/
protected $tauxCotisation;
/**
* @var ArrayCollection|Adherent[]
* @ORM\OneToMany(targetEntity="Adherent", cascade={"persist"}, mappedBy="profildecotisation")
*/
private $beneficiaires;
public function __construct()
{
$this->beneficiaires = new ArrayCollection();
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return ArrayCollection
*/
public function getBeneficiaires()
{
return $this->beneficiaires;
}
/**
* setContacts.
*
* @param [type] $beneficiaires [description]
*/
public function setBeneficiaires($beneficiaires): self
{
$this->beneficiaires = $beneficiaires;
return $this;
}
/**
* @param Adherent $beneficiaire
*
* @return $this
*/
public function addBeneficiaire(Adherent $beneficiaire): self
{
if (is_null($this->beneficiaires)) {
$this->beneficiaires = new ArrayCollection();
}
if (!$this->beneficiaires->contains($beneficiaire)) {
$this->beneficiaires[] = $beneficiaire;
$beneficiaire->setProfilDeCotisation($this);
}
return $this;
}
/**
* @param Adherent $beneficiaire
*
* @return $this
*/
public function removeBeneficiaire(Adherent $beneficiaire): self
{
if ($this->beneficiaires->contains($beneficiaire)) {
$this->beneficiaires->removeElement($beneficiaire);
$beneficiaire->setProfilDeCotisation(null);
}
return $this;
}
public function __toString(): string
{
return 'Profil de taux ' . strval(100 * $this->tauxCotisation) . ' %'
. ' et de maximum percevable mensuel ' . strval($this->maxPercevableMensuel) . ' €';
}
}
<?php
namespace App\Repository;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
class ProfilDeCotisationRepository extends ServiceEntityRepository
{
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment