src/Entity/ProjectOrderTaskFulfillment.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProjectOrderTaskFulfillmentRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Serializer\Annotation\Groups;
  8. /**
  9.  * @ORM\Entity(repositoryClass=ProjectOrderTaskFulfillmentRepository::class)
  10.  */
  11. class ProjectOrderTaskFulfillment
  12. {
  13.     /**
  14.      * @ORM\Id
  15.      * @ORM\GeneratedValue
  16.      * @ORM\Column(type="integer")
  17.      * @Groups({
  18.      *     "project_order_task_fulfillment@base",
  19.      *     "project_order_task_fulfillment@core"
  20.      * })
  21.      */
  22.     private $id;
  23.     /**
  24.      * @ORM\ManyToOne(targetEntity=Vendor::class, inversedBy="project_order_task_fulfillments")
  25.      * @ORM\JoinColumn(nullable=true, options={"comment": "Use this data if scope:External & work-natue: support&production"})
  26.      * @Groups({
  27.      *      "project_order_task_fulfillment@vendor"
  28.      *  })
  29.      */
  30.     private $vendor;
  31.     /**
  32.      * @ORM\ManyToOne(targetEntity=VendorContactPersons::class, inversedBy="project_order_task_fulfillments")
  33.      * @ORM\JoinColumn(nullable=true, options={"comment": "Use this data if scope:External & work-natue: support&production"})
  34.      * @Groups({
  35.      *     "project_order_task_fulfillment@contact_person"
  36.      * })
  37.      */
  38.     private $vendor_contact_person;
  39.     /**
  40.      * @ORM\Column(type="text", nullable=true)
  41.      * @Groups({
  42.      *      "project_order_task_fulfillment@core"
  43.      *  })
  44.      */
  45.     private $work_content;
  46.     /**
  47.      * @ORM\ManyToOne(targetEntity=TaskFulfillmentReasons::class, inversedBy="project_order_task_fulfillments")
  48.      * @ORM\JoinColumn(nullable=false)
  49.      * @Groups({
  50.      *     "project_order_task_fulfillment@reason"
  51.      * })
  52.      */
  53.     private $reason;
  54.     // "project_order_task_fulfillment@task"
  55.     /**
  56.      * @ORM\OneToOne(targetEntity=ProjectOrderTasks::class, inversedBy="task_fulfillment")
  57.      * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
  58.      * @Groups({
  59.      *      "project_order_task_fulfillment@task"
  60.      *  })
  61.      */
  62.     private $task;
  63.     /**
  64.      * @ORM\Column(type="boolean", nullable=true)
  65.      * @Groups({
  66.      *     "project_order_task_fulfillment@core"
  67.      * })
  68.      */
  69.     private $is_linked;
  70.     /**
  71.      * @ORM\Column(type="date_immutable", nullable=true)
  72.      * @Groups({
  73.      *       "project_order_task_fulfillment@core"
  74.      *   })
  75.      */
  76.     private $planned_start_at;
  77.     /**
  78.      * @ORM\Column(type="date_immutable", nullable=true)
  79.      * @Groups({
  80.      *       "project_order_task_fulfillment@core"
  81.      *   })
  82.      */
  83.     private $planned_end_at;
  84.     /**
  85.      * @ORM\Column(type="date_immutable", nullable=true)
  86.      * @Groups({
  87.      *       "project_order_task_fulfillment@core"
  88.      *   })
  89.      */
  90.     private $actual_end_at;
  91.     /**
  92.      * @ORM\Column(type="date_immutable", nullable=true)
  93.      * @Groups({
  94.      *       "project_order_task_fulfillment@core"
  95.      *   })
  96.      */
  97.     private $delivery_at;
  98.     /**
  99.      * @ORM\Column(type="text", nullable=true)
  100.      * @Groups({
  101.      *       "project_order_task_fulfillment@core"
  102.      *   })
  103.      */
  104.     private $delivery_note;
  105.     /**
  106.      * @ORM\Column(type="float", nullable=true)
  107.      * @Groups({
  108.      *       "project_order_task_fulfillment@core"
  109.      *   })
  110.      */
  111.     private $rating;
  112.     /**
  113.      * @ORM\Column(type="float", nullable=true)
  114.      * @Groups({
  115.      *        "project_order_task_fulfillment@core"
  116.      *    })
  117.      */
  118.     private $cost;
  119.     /**
  120.      * @ORM\Column(type="string", length=64, nullable=true)
  121.      * @Groups({
  122.      *         "project_order_task_fulfillment@core"
  123.      *     })
  124.      */
  125.     private $contract_reference_nr;
  126.     /**
  127.      * @ORM\ManyToOne(targetEntity=ContractTypes::class, inversedBy="project_order_task_fulfillments")
  128.      * @Groups({
  129.      *          "project_order_task_fulfillment@contract_type"
  130.      *      })
  131.      */
  132.     private $contract_type;
  133.     /**
  134.      * @ORM\OneToMany(targetEntity=ProjectOrderTaskFulfillmentWorkDocs::class, mappedBy="project_order_task_fulfillment", cascade={"persist"}, orphanRemoval=true)
  135.      * @Groups({
  136.      *      "project_order_task_fulfillment@work_documents"
  137.      *  })
  138.      */
  139.     private $work_documents;
  140.     /**
  141.      * @ORM\Column(type="task_execution_scope", nullable=true)
  142.      * @Groups({
  143.      *       "project_order_task_fulfillment@core"
  144.      * })
  145.      */
  146.     private $execution_scope;
  147.     /**
  148.      * @ORM\Column(type="task_execution_work_nature", nullable=true)
  149.      * @Groups({
  150.      *       "project_order_task_fulfillment@core"
  151.      * })
  152.      */
  153.     private $execution_work_nature;
  154.     /**
  155.      * @ORM\ManyToOne(targetEntity=Branches::class, inversedBy="project_order_task_fulfillments")
  156.      * @ORM\JoinColumn(options={"comment": "Use this data if fulfillment is internal&production"})
  157.      * @Groups({
  158.      *        "project_order_task_fulfillment@branch"
  159.      *  })
  160.      */
  161.     private $branch;
  162.     /**
  163.      * @ORM\ManyToOne(targetEntity=WorkerActivities::class, inversedBy="project_order_task_fulfillments")
  164.      * @ORM\JoinColumn(options={"comment": "Use this data if fulfillment is internal&production"})
  165.      * @Groups({
  166.      *         "project_order_task_fulfillment@branch_contact_person"
  167.      *   })
  168.      */
  169.     private $branch_contact_person;
  170.     public function __construct()
  171.     {
  172.         $this->work_documents = new ArrayCollection();
  173.     }
  174.     public function getId(): ?int
  175.     {
  176.         return $this->id;
  177.     }
  178.     public function getVendor(): ?Vendor
  179.     {
  180.         return $this->vendor;
  181.     }
  182.     public function setVendor(?Vendor $vendor): self
  183.     {
  184.         $this->vendor $vendor;
  185.         return $this;
  186.     }
  187.     public function getVendorContactPerson(): ?VendorContactPersons
  188.     {
  189.         return $this->vendor_contact_person;
  190.     }
  191.     public function setVendorContactPerson(?VendorContactPersons $vendor_contact_person): self
  192.     {
  193.         $this->vendor_contact_person $vendor_contact_person;
  194.         return $this;
  195.     }
  196.     public function getWorkContent(): ?string
  197.     {
  198.         return $this->work_content;
  199.     }
  200.     public function setWorkContent(?string $work_content): self
  201.     {
  202.         $this->work_content $work_content;
  203.         return $this;
  204.     }
  205.     public function getReason(): ?TaskFulfillmentReasons
  206.     {
  207.         return $this->reason;
  208.     }
  209.     public function setReason(?TaskFulfillmentReasons $reason): self
  210.     {
  211.         $this->reason $reason;
  212.         return $this;
  213.     }
  214.     public function getTask(): ?ProjectOrderTasks
  215.     {
  216.         return $this->task;
  217.     }
  218.     public function setTask(ProjectOrderTasks $task): self
  219.     {
  220.         $this->task $task;
  221.         return $this;
  222.     }
  223.     public function isIsLinked(): ?bool
  224.     {
  225.         return $this->is_linked;
  226.     }
  227.     public function setIsLinked(?bool $is_linked): self
  228.     {
  229.         $this->is_linked $is_linked;
  230.         return $this;
  231.     }
  232.     public function getPlannedStartAt(): ?\DateTimeImmutable
  233.     {
  234.         return $this->planned_start_at;
  235.     }
  236.     public function setPlannedStartAt(?\DateTimeImmutable $planned_start_at): self
  237.     {
  238.         $this->planned_start_at $planned_start_at;
  239.         return $this;
  240.     }
  241.     public function getPlannedEndAt(): ?\DateTimeImmutable
  242.     {
  243.         return $this->planned_end_at;
  244.     }
  245.     public function setPlannedEndAt(?\DateTimeImmutable $planned_end_at): self
  246.     {
  247.         $this->planned_end_at $planned_end_at;
  248.         return $this;
  249.     }
  250.     public function getActualEndAt(): ?\DateTimeImmutable
  251.     {
  252.         return $this->actual_end_at;
  253.     }
  254.     public function setActualEndAt(?\DateTimeImmutable $actual_end_at): self
  255.     {
  256.         $this->actual_end_at $actual_end_at;
  257.         return $this;
  258.     }
  259.     public function getDeliveryAt(): ?\DateTimeImmutable
  260.     {
  261.         return $this->delivery_at;
  262.     }
  263.     public function setDeliveryAt(?\DateTimeImmutable $delivery_at): self
  264.     {
  265.         $this->delivery_at $delivery_at;
  266.         return $this;
  267.     }
  268.     public function getDeliveryNote(): ?string
  269.     {
  270.         return $this->delivery_note;
  271.     }
  272.     public function setDeliveryNote(?string $delivery_note): self
  273.     {
  274.         $this->delivery_note $delivery_note;
  275.         return $this;
  276.     }
  277.     public function getRating(): ?float
  278.     {
  279.         return $this->rating;
  280.     }
  281.     public function setRating(?float $rating): self
  282.     {
  283.         $this->rating $rating;
  284.         return $this;
  285.     }
  286.     public function getCost(): ?float
  287.     {
  288.         return $this->cost;
  289.     }
  290.     public function setCost(?float $cost): self
  291.     {
  292.         $this->cost $cost;
  293.         return $this;
  294.     }
  295.     public function getContractReferenceNr(): ?string
  296.     {
  297.         return $this->contract_reference_nr;
  298.     }
  299.     public function setContractReferenceNr(?string $contract_reference_nr): self
  300.     {
  301.         $this->contract_reference_nr $contract_reference_nr;
  302.         return $this;
  303.     }
  304.     public function getContractType(): ?ContractTypes
  305.     {
  306.         return $this->contract_type;
  307.     }
  308.     public function setContractType(?ContractTypes $contract_type): self
  309.     {
  310.         $this->contract_type $contract_type;
  311.         return $this;
  312.     }
  313.     /**
  314.      * @return Collection<int, ProjectOrderTaskFulfillmentWorkDocs>
  315.      */
  316.     public function getWorkDocuments(): Collection
  317.     {
  318.         return $this->work_documents;
  319.     }
  320.     public function addProjectOrderTaskFulfillmentWorkDoc(ProjectOrderTaskFulfillmentWorkDocs $projectOrderTaskFulfillmentWorkDocs): self
  321.     {
  322.         if (!$this->work_documents->contains($projectOrderTaskFulfillmentWorkDocs)) {
  323.             $this->work_documents[] = $projectOrderTaskFulfillmentWorkDocs;
  324.             $projectOrderTaskFulfillmentWorkDocs->setProjectOrderTaskFulfillment($this);
  325.         }
  326.         return $this;
  327.     }
  328.     public function removeProjectOrderTaskFulfillmentWorkDoc(ProjectOrderTaskFulfillmentWorkDocs $projectOrderTaskFulfillmentWorkDocs): self
  329.     {
  330.         if ($this->work_documents->removeElement($projectOrderTaskFulfillmentWorkDocs)) {
  331.             // set the owning side to null (unless already changed)
  332.             if ($projectOrderTaskFulfillmentWorkDocs->getProjectOrderTaskFulfillment() === $this) {
  333.                 $projectOrderTaskFulfillmentWorkDocs->setProjectOrderTaskFulfillment(null);
  334.             }
  335.         }
  336.         return $this;
  337.     }
  338.     public function getExecutionScope(): ?string
  339.     {
  340.         return $this->execution_scope;
  341.     }
  342.     public function setExecutionScope(?string $execution_scope): self
  343.     {
  344.         $this->execution_scope $execution_scope;
  345.         return $this;
  346.     }
  347.     public function getExecutionWorkNature()
  348.     {
  349.         return $this->execution_work_nature;
  350.     }
  351.     public function setExecutionWorkNature($execution_work_nature): void
  352.     {
  353.         $this->execution_work_nature $execution_work_nature;
  354.     }
  355.     public function getBranch(): ?Branches
  356.     {
  357.         return $this->branch;
  358.     }
  359.     public function setBranch(?Branches $branch): self
  360.     {
  361.         $this->branch $branch;
  362.         return $this;
  363.     }
  364.     public function getBranchContactPerson(): ?WorkerActivities
  365.     {
  366.         return $this->branch_contact_person;
  367.     }
  368.     public function setBranchContactPerson(?WorkerActivities $branch_contact_person): self
  369.     {
  370.         $this->branch_contact_person $branch_contact_person;
  371.         return $this;
  372.     }
  373. }