src/Entity/Project.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProjectRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8.  * @ORM\Entity(repositoryClass=ProjectRepository::class)
  9.  */
  10. class Project
  11. {
  12.     /**
  13.      * @ORM\Id
  14.      * @ORM\GeneratedValue
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="string", length=255)
  20.      */
  21.     private $name;
  22.     /**
  23.      * @ORM\Column(type="text", nullable=true)
  24.      */
  25.     private $description;
  26.     /**
  27.      * @ORM\ManyToOne(targetEntity=User::class)
  28.      * @ORM\JoinColumn(nullable=false)
  29.      */
  30.     private $project_manager;
  31.     /**
  32.      * @ORM\ManyToOne(targetEntity=Currency::class)
  33.      * @ORM\JoinColumn(nullable=false)
  34.      */
  35.     private $currency;
  36.     /**
  37.      * @ORM\Column(type="float")
  38.      */
  39.     private $amount;
  40.     /**
  41.      * @ORM\Column(type="date")
  42.      */
  43.     private $start_date;
  44.     /**
  45.      * @ORM\Column(type="date")
  46.      */
  47.     private $end_date;
  48.     /**
  49.      * @ORM\ManyToOne(targetEntity=Program::class, inversedBy="projects")
  50.      */
  51.     private $program;
  52.     /**
  53.      * @ORM\Column(type="text", nullable=true)
  54.      */
  55.     private $outcome;
  56.     /**
  57.      * @ORM\Column(type="integer")
  58.      */
  59.     private $status;
  60.     /**
  61.      * @ORM\ManyToOne(targetEntity=User::class)
  62.      * @ORM\JoinColumn(nullable=false)
  63.      */
  64.     private $created_by;
  65.     /**
  66.      * @ORM\Column(type="datetime")
  67.      */
  68.     private $created_At;
  69.     /**
  70.      * @ORM\OneToMany(targetEntity=ProjectVersion::class, mappedBy="project")
  71.      */
  72.     private $projectVersions;
  73.     /**
  74.      * @ORM\OneToMany(targetEntity=ProjectSponsor::class, mappedBy="project")
  75.      */
  76.     private $projectSponsors;
  77.     /**
  78.      * @ORM\OneToMany(targetEntity=ProjectResource::class, mappedBy="project")
  79.      */
  80.     private $projectResources;
  81.     /**
  82.      * @ORM\OneToMany(targetEntity=ProjectDeliverable::class, mappedBy="project")
  83.      */
  84.     private $projectDeliverables;
  85.     /**
  86.      * @ORM\OneToMany(targetEntity=ProjectMilestone::class, mappedBy="project")
  87.      */
  88.     private $projectMilestones;
  89.     /**
  90.      * @ORM\OneToMany(targetEntity=ProjectMemberHistory::class, mappedBy="project")
  91.      */
  92.     private $projectMemberHistories;
  93.     /**
  94.      * @ORM\OneToMany(targetEntity=ProjectMembers::class, mappedBy="project")
  95.      */
  96.     private $projectMembers;
  97.     /**
  98.      * @ORM\OneToMany(targetEntity=ProjectActivity::class, mappedBy="project")
  99.      */
  100.     private $projectActivities;
  101.     /**
  102.      * @ORM\OneToMany(targetEntity=ProjectCollaborationTopic::class, mappedBy="project")
  103.      */
  104.     private $projectCollaborationTopics;
  105.     /**
  106.      * @ORM\OneToMany(targetEntity=ProjectStructure::class, mappedBy="project")
  107.      */
  108.     private $projectStructures;
  109.     /**
  110.      * @ORM\Column(type="string", length=255, nullable=true)
  111.      */
  112.     private $baseline;
  113.     /**
  114.      * @ORM\ManyToOne(targetEntity=OrganizationUnit::class, inversedBy="projects")
  115.      */
  116.     private $unit;
  117.     /**
  118.      * @ORM\OneToMany(targetEntity=ActivityChat::class, mappedBy="project")
  119.      */
  120.     private $activityChats;
  121.     /**
  122.      * @ORM\OneToMany(targetEntity=ProjectPlanRevision::class, mappedBy="project")
  123.      */
  124.     private $projectPlanRevisions;
  125.     /**
  126.      * @ORM\OneToMany(targetEntity=ProjectPlanStatus::class, mappedBy="project")
  127.      */
  128.     private $projectPlanStatuses;
  129.     /**
  130.      * @ORM\Column(type="integer")
  131.      */
  132.     private $planned_value;
  133.     /**
  134.      * @ORM\OneToMany(targetEntity=ProjectPlanComment::class, mappedBy="project")
  135.      */
  136.     private $planComments;
  137.     /**
  138.      * @ORM\ManyToOne(targetEntity=Objective::class, inversedBy="projects")
  139.      * @ORM\JoinColumn(nullable=false)
  140.      */
  141.     private $objective;
  142.     /**
  143.      * @ORM\ManyToMany(targetEntity=Organization::class)
  144.      */
  145.     private $stakeholder;
  146.     /**
  147.      * @ORM\OneToMany(targetEntity=PlanModificationRequest::class, mappedBy="project")
  148.      */
  149.     private $planModificationRequests;
  150.     /**
  151.      * @ORM\Column(type="boolean", nullable=false)
  152.      */
  153.     private $active true;
  154.     public function __construct()
  155.     {
  156.         $this->projectVersions = new ArrayCollection();
  157.         $this->projectSponsors = new ArrayCollection();
  158.         $this->projectResources = new ArrayCollection();
  159.         $this->projectDeliverables = new ArrayCollection();
  160.         $this->projectMilestones = new ArrayCollection();
  161.         $this->projectMemberHistories = new ArrayCollection();
  162.         $this->projectMembers = new ArrayCollection();
  163.         $this->projectActivities = new ArrayCollection();
  164.         $this->projectCollaborationTopics = new ArrayCollection();
  165.         $this->projectStructures = new ArrayCollection();
  166.         $this->activityChats = new ArrayCollection();
  167.         $this->projectPlanRevisions = new ArrayCollection();
  168.         $this->projectPlanStatuses = new ArrayCollection();
  169.         $this->planComments = new ArrayCollection();
  170.         $this->stakeholder = new ArrayCollection();
  171.         $this->planModificationRequests = new ArrayCollection();
  172.     }
  173.     public function getId(): ?int
  174.     {
  175.         return $this->id;
  176.     }
  177.     public function getName(): ?string
  178.     {
  179.         return $this->name;
  180.     }
  181.     public function setName(string $name): self
  182.     {
  183.         $this->name $name;
  184.         return $this;
  185.     }
  186.     public function getDescription(): ?string
  187.     {
  188.         return $this->description;
  189.     }
  190.     public function setDescription(?string $description): self
  191.     {
  192.         $this->description $description;
  193.         return $this;
  194.     }
  195.     public function getProjectManager(): ?User
  196.     {
  197.         return $this->project_manager;
  198.     }
  199.     public function setProjectManager(?User $project_manager): self
  200.     {
  201.         $this->project_manager $project_manager;
  202.         return $this;
  203.     }
  204.     public function getCurrency(): ?Currency
  205.     {
  206.         return $this->currency;
  207.     }
  208.     public function setCurrency(?Currency $currency): self
  209.     {
  210.         $this->currency $currency;
  211.         return $this;
  212.     }
  213.     public function getAmount(): ?float
  214.     {
  215.         return $this->amount;
  216.     }
  217.     public function setAmount(float $amount): self
  218.     {
  219.         $this->amount $amount;
  220.         return $this;
  221.     }
  222.     public function getStartDate(): ?\DateTimeInterface
  223.     {
  224.         return $this->start_date;
  225.     }
  226.     public function setStartDate(\DateTimeInterface $start_date): self
  227.     {
  228.         $this->start_date $start_date;
  229.         return $this;
  230.     }
  231.     public function getEndDate(): ?\DateTimeInterface
  232.     {
  233.         return $this->end_date;
  234.     }
  235.     public function setEndDate(\DateTimeInterface $end_date): self
  236.     {
  237.         $this->end_date $end_date;
  238.         return $this;
  239.     }
  240.     public function getProgram(): ?Program
  241.     {
  242.         return $this->program;
  243.     }
  244.     public function setProgram(?Program $program): self
  245.     {
  246.         $this->program $program;
  247.         return $this;
  248.     }
  249.     public function getOutcome(): ?string
  250.     {
  251.         return $this->outcome;
  252.     }
  253.     public function setOutcome(?string $outcome): self
  254.     {
  255.         $this->outcome $outcome;
  256.         return $this;
  257.     }
  258.     public function getStatus(): ?int
  259.     {
  260.         return $this->status;
  261.     }
  262.     public function setStatus(int $status): self
  263.     {
  264.         $this->status $status;
  265.         return $this;
  266.     }
  267.     public function getCreatedBy(): ?User
  268.     {
  269.         return $this->created_by;
  270.     }
  271.     public function setCreatedBy(?User $created_by): self
  272.     {
  273.         $this->created_by $created_by;
  274.         return $this;
  275.     }
  276.     public function getCreatedAt(): ?\DateTimeInterface
  277.     {
  278.         return $this->created_At;
  279.     }
  280.     public function setCreatedAt(\DateTimeInterface $created_At): self
  281.     {
  282.         $this->created_At $created_At;
  283.         return $this;
  284.     }
  285.     /**
  286.      * @return Collection|ProjectVersion[]
  287.      */
  288.     public function getProjectVersions(): Collection
  289.     {
  290.         return $this->projectVersions;
  291.     }
  292.     public function addProjectVersion(ProjectVersion $projectVersion): self
  293.     {
  294.         if (!$this->projectVersions->contains($projectVersion)) {
  295.             $this->projectVersions[] = $projectVersion;
  296.             $projectVersion->setProject($this);
  297.         }
  298.         return $this;
  299.     }
  300.     public function removeProjectVersion(ProjectVersion $projectVersion): self
  301.     {
  302.         if ($this->projectVersions->removeElement($projectVersion)) {
  303.             // set the owning side to null (unless already changed)
  304.             if ($projectVersion->getProject() === $this) {
  305.                 $projectVersion->setProject(null);
  306.             }
  307.         }
  308.         return $this;
  309.     }
  310.     public function __toString()
  311.     {
  312.         return $this->name;
  313.     }
  314.     /**
  315.      * @return Collection|ProjectSponsor[]
  316.      */
  317.     public function getProjectSponsors(): Collection
  318.     {
  319.         return $this->projectSponsors;
  320.     }
  321.     public function addProjectSponsor(ProjectSponsor $projectSponsor): self
  322.     {
  323.         if (!$this->projectSponsors->contains($projectSponsor)) {
  324.             $this->projectSponsors[] = $projectSponsor;
  325.             $projectSponsor->setProject($this);
  326.         }
  327.         return $this;
  328.     }
  329.     public function removeProjectSponsor(ProjectSponsor $projectSponsor): self
  330.     {
  331.         if ($this->projectSponsors->removeElement($projectSponsor)) {
  332.             // set the owning side to null (unless already changed)
  333.             if ($projectSponsor->getProject() === $this) {
  334.                 $projectSponsor->setProject(null);
  335.             }
  336.         }
  337.         return $this;
  338.     }
  339.     /**
  340.      * @return Collection|ProjectResource[]
  341.      */
  342.     public function getProjectResources(): Collection
  343.     {
  344.         return $this->projectResources;
  345.     }
  346.     public function addProjectResource(ProjectResource $projectResource): self
  347.     {
  348.         if (!$this->projectResources->contains($projectResource)) {
  349.             $this->projectResources[] = $projectResource;
  350.             $projectResource->setProject($this);
  351.         }
  352.         return $this;
  353.     }
  354.     public function removeProjectResource(ProjectResource $projectResource): self
  355.     {
  356.         if ($this->projectResources->removeElement($projectResource)) {
  357.             // set the owning side to null (unless already changed)
  358.             if ($projectResource->getProject() === $this) {
  359.                 $projectResource->setProject(null);
  360.             }
  361.         }
  362.         return $this;
  363.     }
  364.     /**
  365.      * @return Collection|ProjectDeliverable[]
  366.      */
  367.     public function getProjectDeliverables(): Collection
  368.     {
  369.         return $this->projectDeliverables;
  370.     }
  371.     public function addProjectDeliverable(ProjectDeliverable $projectDeliverable): self
  372.     {
  373.         if (!$this->projectDeliverables->contains($projectDeliverable)) {
  374.             $this->projectDeliverables[] = $projectDeliverable;
  375.             $projectDeliverable->setProject($this);
  376.         }
  377.         return $this;
  378.     }
  379.     public function removeProjectDeliverable(ProjectDeliverable $projectDeliverable): self
  380.     {
  381.         if ($this->projectDeliverables->removeElement($projectDeliverable)) {
  382.             // set the owning side to null (unless already changed)
  383.             if ($projectDeliverable->getProject() === $this) {
  384.                 $projectDeliverable->setProject(null);
  385.             }
  386.         }
  387.         return $this;
  388.     }
  389.     /**
  390.      * @return Collection|ProjectMilestone[]
  391.      */
  392.     public function getProjectMilestones(): Collection
  393.     {
  394.         return $this->projectMilestones;
  395.     }
  396.     public function addProjectMilestone(ProjectMilestone $projectMilestone): self
  397.     {
  398.         if (!$this->projectMilestones->contains($projectMilestone)) {
  399.             $this->projectMilestones[] = $projectMilestone;
  400.             $projectMilestone->setProject($this);
  401.         }
  402.         return $this;
  403.     }
  404.     public function removeProjectMilestone(ProjectMilestone $projectMilestone): self
  405.     {
  406.         if ($this->projectMilestones->removeElement($projectMilestone)) {
  407.             // set the owning side to null (unless already changed)
  408.             if ($projectMilestone->getProject() === $this) {
  409.                 $projectMilestone->setProject(null);
  410.             }
  411.         }
  412.         return $this;
  413.     }
  414.     /**
  415.      * @return Collection|ProjectMemberHistory[]
  416.      */
  417.     public function getProjectMemberHistories(): Collection
  418.     {
  419.         return $this->projectMemberHistories;
  420.     }
  421.     public function addProjectMemberHistory(ProjectMemberHistory $projectMemberHistory): self
  422.     {
  423.         if (!$this->projectMemberHistories->contains($projectMemberHistory)) {
  424.             $this->projectMemberHistories[] = $projectMemberHistory;
  425.             $projectMemberHistory->setProject($this);
  426.         }
  427.         return $this;
  428.     }
  429.     public function removeProjectMemberHistory(ProjectMemberHistory $projectMemberHistory): self
  430.     {
  431.         if ($this->projectMemberHistories->removeElement($projectMemberHistory)) {
  432.             // set the owning side to null (unless already changed)
  433.             if ($projectMemberHistory->getProject() === $this) {
  434.                 $projectMemberHistory->setProject(null);
  435.             }
  436.         }
  437.         return $this;
  438.     }
  439.     /**
  440.      * @return Collection|ProjectMembers[]
  441.      */
  442.     public function getProjectMembers(): Collection
  443.     {
  444.         return $this->projectMembers;
  445.     }
  446.     public function addProjectMember(ProjectMembers $projectMember): self
  447.     {
  448.         if (!$this->projectMembers->contains($projectMember)) {
  449.             $this->projectMembers[] = $projectMember;
  450.             $projectMember->setProject($this);
  451.         }
  452.         return $this;
  453.     }
  454.     public function removeProjectMember(ProjectMembers $projectMember): self
  455.     {
  456.         if ($this->projectMembers->removeElement($projectMember)) {
  457.             // set the owning side to null (unless already changed)
  458.             if ($projectMember->getProject() === $this) {
  459.                 $projectMember->setProject(null);
  460.             }
  461.         }
  462.         return $this;
  463.     }
  464.     /**
  465.      * @return Collection|ProjectActivity[]
  466.      */
  467.     public function getProjectActivities(): Collection
  468.     {
  469.         return $this->projectActivities;
  470.     }
  471.     public function addProjectActivity(ProjectActivity $projectActivity): self
  472.     {
  473.         if (!$this->projectActivities->contains($projectActivity)) {
  474.             $this->projectActivities[] = $projectActivity;
  475.             $projectActivity->setProject($this);
  476.         }
  477.         return $this;
  478.     }
  479.     public function removeProjectActivity(ProjectActivity $projectActivity): self
  480.     {
  481.         if ($this->projectActivities->removeElement($projectActivity)) {
  482.             // set the owning side to null (unless already changed)
  483.             if ($projectActivity->getProject() === $this) {
  484.                 $projectActivity->setProject(null);
  485.             }
  486.         }
  487.         return $this;
  488.     }
  489.     /**
  490.      * @return Collection|ProjectCollaborationTopic[]
  491.      */
  492.     public function getProjectCollaborationTopics(): Collection
  493.     {
  494.         return $this->projectCollaborationTopics;
  495.     }
  496.     public function addProjectCollaborationTopic(ProjectCollaborationTopic $projectCollaborationTopic): self
  497.     {
  498.         if (!$this->projectCollaborationTopics->contains($projectCollaborationTopic)) {
  499.             $this->projectCollaborationTopics[] = $projectCollaborationTopic;
  500.             $projectCollaborationTopic->setProject($this);
  501.         }
  502.         return $this;
  503.     }
  504.     public function removeProjectCollaborationTopic(ProjectCollaborationTopic $projectCollaborationTopic): self
  505.     {
  506.         if ($this->projectCollaborationTopics->removeElement($projectCollaborationTopic)) {
  507.             // set the owning side to null (unless already changed)
  508.             if ($projectCollaborationTopic->getProject() === $this) {
  509.                 $projectCollaborationTopic->setProject(null);
  510.             }
  511.         }
  512.         return $this;
  513.     }
  514.     /**
  515.      * @return Collection|ProjectStructure[]
  516.      */
  517.     public function getProjectStructures(): Collection
  518.     {
  519.         return $this->projectStructures;
  520.     }
  521.     public function addProjectStructure(ProjectStructure $projectStructure): self
  522.     {
  523.         if (!$this->projectStructures->contains($projectStructure)) {
  524.             $this->projectStructures[] = $projectStructure;
  525.             $projectStructure->setProject($this);
  526.         }
  527.         return $this;
  528.     }
  529.     public function removeProjectStructure(ProjectStructure $projectStructure): self
  530.     {
  531.         if ($this->projectStructures->removeElement($projectStructure)) {
  532.             // set the owning side to null (unless already changed)
  533.             if ($projectStructure->getProject() === $this) {
  534.                 $projectStructure->setProject(null);
  535.             }
  536.         }
  537.         return $this;
  538.     }
  539.     public function getBaseline(): ?string
  540.     {
  541.         return $this->baseline;
  542.     }
  543.     public function setBaseline(?string $baseline): self
  544.     {
  545.         $this->baseline $baseline;
  546.         return $this;
  547.     }
  548.     public function getUnit(): ?OrganizationUnit
  549.     {
  550.         return $this->unit;
  551.     }
  552.     public function setUnit(?OrganizationUnit $unit): self
  553.     {
  554.         $this->unit $unit;
  555.         return $this;
  556.     }
  557.     /**
  558.      * @return Collection|ActivityChat[]
  559.      */
  560.     public function getActivityChats(): Collection
  561.     {
  562.         return $this->activityChats;
  563.     }
  564.     public function addActivityChat(ActivityChat $activityChat): self
  565.     {
  566.         if (!$this->activityChats->contains($activityChat)) {
  567.             $this->activityChats[] = $activityChat;
  568.             $activityChat->setProject($this);
  569.         }
  570.         return $this;
  571.     }
  572.     public function removeActivityChat(ActivityChat $activityChat): self
  573.     {
  574.         if ($this->activityChats->removeElement($activityChat)) {
  575.             // set the owning side to null (unless already changed)
  576.             if ($activityChat->getProject() === $this) {
  577.                 $activityChat->setProject(null);
  578.             }
  579.         }
  580.         return $this;
  581.     }
  582.     /**
  583.      * @return Collection|ProjectPlanRevision[]
  584.      */
  585.     public function getProjectPlanRevisions(): Collection
  586.     {
  587.         return $this->projectPlanRevisions;
  588.     }
  589.     public function addProjectPlanRevision(ProjectPlanRevision $projectPlanRevision): self
  590.     {
  591.         if (!$this->projectPlanRevisions->contains($projectPlanRevision)) {
  592.             $this->projectPlanRevisions[] = $projectPlanRevision;
  593.             $projectPlanRevision->setProject($this);
  594.         }
  595.         return $this;
  596.     }
  597.     public function removeProjectPlanRevision(ProjectPlanRevision $projectPlanRevision): self
  598.     {
  599.         if ($this->projectPlanRevisions->removeElement($projectPlanRevision)) {
  600.             // set the owning side to null (unless already changed)
  601.             if ($projectPlanRevision->getProject() === $this) {
  602.                 $projectPlanRevision->setProject(null);
  603.             }
  604.         }
  605.         return $this;
  606.     }
  607.     /**
  608.      * @return Collection|ProjectPlanStatus[]
  609.      */
  610.     public function getProjectPlanStatuses(): Collection
  611.     {
  612.         return $this->projectPlanStatuses;
  613.     }
  614.     public function addProjectPlanStatus(ProjectPlanStatus $projectPlanStatus): self
  615.     {
  616.         if (!$this->projectPlanStatuses->contains($projectPlanStatus)) {
  617.             $this->projectPlanStatuses[] = $projectPlanStatus;
  618.             $projectPlanStatus->setProject($this);
  619.         }
  620.         return $this;
  621.     }
  622.     public function removeProjectPlanStatus(ProjectPlanStatus $projectPlanStatus): self
  623.     {
  624.         if ($this->projectPlanStatuses->removeElement($projectPlanStatus)) {
  625.             // set the owning side to null (unless already changed)
  626.             if ($projectPlanStatus->getProject() === $this) {
  627.                 $projectPlanStatus->setProject(null);
  628.             }
  629.         }
  630.         return $this;
  631.     }
  632.     public function getPlannedValue(): ?int
  633.     {
  634.         return $this->planned_value;
  635.     }
  636.     public function setPlannedValue(int $planned_value): self
  637.     {
  638.         $this->planned_value $planned_value;
  639.         return $this;
  640.     }
  641.     /**
  642.      * @return Collection|ProjectPlanComment[]
  643.      */
  644.     public function getPlanComments(): Collection
  645.     {
  646.         return $this->planComments;
  647.     }
  648.     public function addPlanComment(ProjectPlanComment $planComment): self
  649.     {
  650.         if (!$this->planComments->contains($planComment)) {
  651.             $this->planComments[] = $planComment;
  652.             $planComment->setProject($this);
  653.         }
  654.         return $this;
  655.     }
  656.     public function removePlanComment(ProjectPlanComment $planComment): self
  657.     {
  658.         if ($this->planComments->removeElement($planComment)) {
  659.             // set the owning side to null (unless already changed)
  660.             if ($planComment->getProject() === $this) {
  661.                 $planComment->setProject(null);
  662.             }
  663.         }
  664.         return $this;
  665.     }
  666.     public function getObjective(): ?Objective
  667.     {
  668.         return $this->objective;
  669.     }
  670.     public function setObjective(?Objective $objective): self
  671.     {
  672.         $this->objective $objective;
  673.         return $this;
  674.     }
  675.     /**
  676.      * @return Collection|Organization[]
  677.      */
  678.     public function getStakeholder(): Collection
  679.     {
  680.         return $this->stakeholder;
  681.     }
  682.     public function addStakeholder(Organization $stakeholder): self
  683.     {
  684.         if (!$this->stakeholder->contains($stakeholder)) {
  685.             $this->stakeholder[] = $stakeholder;
  686.         }
  687.         return $this;
  688.     }
  689.     public function removeStakeholder(Organization $stakeholder): self
  690.     {
  691.         $this->stakeholder->removeElement($stakeholder);
  692.         return $this;
  693.     }
  694.     /**
  695.      * @return Collection|PlanModificationRequest[]
  696.      */
  697.     public function getPlanModificationRequests(): Collection
  698.     {
  699.         return $this->planModificationRequests;
  700.     }
  701.     public function addPlanModificationRequest(PlanModificationRequest $planModificationRequest): self
  702.     {
  703.         if (!$this->planModificationRequests->contains($planModificationRequest)) {
  704.             $this->planModificationRequests[] = $planModificationRequest;
  705.             $planModificationRequest->setProject($this);
  706.         }
  707.         return $this;
  708.     }
  709.     public function removePlanModificationRequest(PlanModificationRequest $planModificationRequest): self
  710.     {
  711.         if ($this->planModificationRequests->removeElement($planModificationRequest)) {
  712.             // set the owning side to null (unless already changed)
  713.             if ($planModificationRequest->getProject() === $this) {
  714.                 $planModificationRequest->setProject(null);
  715.             }
  716.         }
  717.         return $this;
  718.     }
  719.     public function isActive(): ?bool
  720.     {
  721.         return $this->active;
  722.     }
  723.     public function setActive(?bool $active): self
  724.     {
  725.         $this->active $active;
  726.         return $this;
  727.     }
  728. }