src/Entity/PurchaseRequestPositions.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\PurchaseRequestPositionsRepository;
  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. use Symfony\Component\Serializer\Annotation\MaxDepth;
  9. /**
  10.  * @ORM\Entity(repositoryClass=PurchaseRequestPositionsRepository::class)
  11.  */
  12. class PurchaseRequestPositions
  13. {
  14.     /**
  15.      * @ORM\Id
  16.      * @ORM\GeneratedValue
  17.      * @ORM\Column(type="integer")
  18.      * @Groups({
  19.      *     "purchase_request_position:core", "purchase_request_position@core"
  20.      * })
  21.      */
  22.     private $id;
  23.     /**
  24.      * @ORM\ManyToOne(targetEntity=Stocks::class, inversedBy="purchase_request_positions")
  25.      * @ORM\JoinColumn(nullable=false)
  26.      * @Groups({
  27.      *       "purchase_request_position:stock", "purchase_request_position@stock"
  28.      *   })
  29.      * @ORM\JoinColumn(onDelete="CASCADE")
  30.      */
  31.     private $stock;
  32.     /**
  33.      * @ORM\Column(type="float")
  34.      * @Groups({
  35.      *       "purchase_request_position:core", "purchase_request_position@core"
  36.      *   })
  37.      */
  38.     private $quantity;
  39.     /**
  40.      * @ORM\Column(type="float", nullable=true)
  41.      * @Groups({
  42.      *        "purchase_request_position:core", "purchase_request_position@core"
  43.      *    })
  44.      */
  45.     private $delivered_quantity;
  46.     /**
  47.      * @ORM\Column(type="datetime_immutable", nullable=true)
  48.      * @Groups({
  49.      *         "purchase_request_position:core", "purchase_request_position@core"
  50.      *     })
  51.      */
  52.     private $should_deliver_at;
  53.     /**
  54.      * @ORM\Column(type="datetime_immutable", nullable=true)
  55.      * @Groups({
  56.      *         "purchase_request_position:core", "purchase_request_position@core"
  57.      *     })
  58.      */
  59.     private $delivered_at;
  60.     /**
  61.      * @ORM\Column(type="datetime_immutable", nullable=true)
  62.      * @Groups({
  63.      *          "purchase_request_position:core", "purchase_request_position@core"
  64.      *      })
  65.      */
  66.     private $created_at;
  67.     /**
  68.      * @MaxDepth(1)
  69.      * @ORM\ManyToOne(targetEntity=PurchaseRequest::class, inversedBy="purchase_request_positions", cascade={"persist", "remove"})
  70.      * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
  71.      * @Groups({
  72.      *        "purchase_request_position:purchase_request", "purchase_request_position@purchase_request"
  73.      *    })
  74.      */
  75.     private $purchase_request;
  76.     /**
  77.      * @ORM\OneToMany(targetEntity=PurchaseRequestPositionHistories::class, mappedBy="purchase_request_position")
  78.      * @Groups({
  79.      *           "purchase_request_position:histories", "purchase_request_position@histories"
  80.      *       })
  81.      * @ORM\OrderBy({"id"="DESC"})
  82.      */
  83.     private $purchase_request_position_histories;
  84.     /**
  85.      * @ORM\Column(type="datetime_immutable", nullable=true)
  86.      * @Groups({
  87.      *        "purchase_request_position:core", "purchase_request_position@core"
  88.      *    })
  89.      */
  90.     private $approved_at;
  91.     /**
  92.      * @ORM\ManyToOne(targetEntity=User::class, inversedBy="purchase_request_positions_approver")
  93.      * @ORM\JoinColumn(nullable=true)
  94.      * @Groups({
  95.      *        "purchase_request_position:approver", "purchase_request_position@approver"
  96.      *    })
  97.      */
  98.     private $approver;
  99.     /**
  100.      * @ORM\Column(type="datetime_immutable", nullable=true)
  101.      * @Groups({
  102.      *        "purchase_request_position:core", "purchase_request_position@core"
  103.      *    })
  104.      */
  105.     private $rejected_at;
  106.     /**
  107.      * @ORM\ManyToOne(targetEntity=User::class, inversedBy="purchase_request_positions_rejecter")
  108.      * @ORM\JoinColumn(nullable=true)
  109.      * @Groups({
  110.      *        "purchase_request_position:rejecter", "purchase_request_position@rejecter"
  111.      *    })
  112.      */
  113.     private $rejecter;
  114.     /**
  115.      * ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
  116.      * Evet, php bin/console make:entity komutuyla oluşturduğunda Symfony (ve MakerBundle):
  117.      *
  118.      * sadece tek yönlü ilişki (unidirectional) tanımlar,
  119.      * karşı tarafa mappedBy veya inversedBy içeren ilişkiyi sen elle eklemezsen oluşturmaz.
  120.      * 🎯 Ne oldu?
  121.      *
  122.      * Sen örneğin şöyle yaptıysan:
  123.      *
  124.      * php bin/console make:entity ProjectOrderExpensePositions
  125.      * # sonra property adı: purchase_request_position
  126.      * # type: relation
  127.      * # target entity: PurchaseRequestPositions
  128.      * # relation type: OneToOne
  129.      * # is this the owning side: yes
  130.      *
  131.      * O zaman sadece ProjectOrderExpensePositions içinde aşağıdaki gibi oluşur:
  132.      * ORM\OneToOne(targetEntity=PurchaseRequestPositions::class, cascade={"persist", "remove"})
  133.      * private $purchase_request_position;
  134.      *
  135.      *✅ Ne yapmalısın?
  136.      * ProjectOrderExpensePositions Elle inverse tarafı tanımla
  137.      *
  138.      * @ORM\OneToOne(mappedBy="purchase_request_position", targetEntity=ProjectOrderExpensePositions::class)
  139.      */
  140.     private $expense_position;
  141.     public function __construct()
  142.     {
  143.         $this->purchase_request_position_histories = new ArrayCollection();
  144.     }
  145.     public function getId(): ?int
  146.     {
  147.         return $this->id;
  148.     }
  149.     public function getStock(): ?Stocks
  150.     {
  151.         return $this->stock;
  152.     }
  153.     public function setStock(?Stocks $stock): self
  154.     {
  155.         $this->stock $stock;
  156.         return $this;
  157.     }
  158.     public function getQuantity(): ?int
  159.     {
  160.         return $this->quantity;
  161.     }
  162.     public function setQuantity(int $quantity): self
  163.     {
  164.         $this->quantity $quantity;
  165.         return $this;
  166.     }
  167.     public function getShouldDeliverAt(): ?\DateTimeImmutable
  168.     {
  169.         return $this->should_deliver_at;
  170.     }
  171.     public function setShouldDeliverAt(?\DateTimeImmutable $should_deliver_at): self
  172.     {
  173.         $this->should_deliver_at $should_deliver_at;
  174.         return $this;
  175.     }
  176.     public function getDeliveredAt(): ?\DateTimeImmutable
  177.     {
  178.         return $this->delivered_at;
  179.     }
  180.     public function setDeliveredAt(?\DateTimeImmutable $delivered_at): self
  181.     {
  182.         $this->delivered_at $delivered_at;
  183.         return $this;
  184.     }
  185.     public function getCreatedAt(): ?\DateTimeImmutable
  186.     {
  187.         return $this->created_at;
  188.     }
  189.     public function setCreatedAt(?\DateTimeImmutable $created_at): self
  190.     {
  191.         $this->created_at $created_at;
  192.         return $this;
  193.     }
  194.     /**
  195.      * @return Collection<int, PurchaseRequestPositionHistories>
  196.      */
  197.     public function getPurchaseRequestPositionHistories(): Collection
  198.     {
  199.         return $this->purchase_request_position_histories;
  200.     }
  201.     public function addPurchaseRequestPositionHistory(PurchaseRequestPositionHistories $purchaseRequestPositionHistory): self
  202.     {
  203.         if (!$this->purchase_request_position_histories->contains($purchaseRequestPositionHistory)) {
  204.             $this->purchase_request_position_histories[] = $purchaseRequestPositionHistory;
  205.             $purchaseRequestPositionHistory->setPurchaseRequestPosition($this);
  206.         }
  207.         return $this;
  208.     }
  209.     public function removePurchaseRequestPOsitionHistory(PurchaseRequestPositionHistories $purchaseRequestPositionHistory): self
  210.     {
  211.         if ($this->purchase_request_position_histories->removeElement($purchaseRequestPositionHistory)) {
  212.             // set the owning side to null (unless already changed)
  213.             if ($purchaseRequestPositionHistory->getPurchaseRequestPosition() === $this) {
  214.                 $purchaseRequestPositionHistory->setPurchaseRequestPosition(null);
  215.             }
  216.         }
  217.         return $this;
  218.     }
  219.     public function getPurchaseRequest(): ?PurchaseRequest
  220.     {
  221.         return $this->purchase_request;
  222.     }
  223.     public function setPurchaseRequest(?PurchaseRequest $purchase_request): self
  224.     {
  225.         $this->purchase_request $purchase_request;
  226.         return $this;
  227.     }
  228.     public function getApprovedAt(): ?\DateTimeImmutable
  229.     {
  230.         return $this->approved_at;
  231.     }
  232.     public function setApprovedAt(?\DateTimeImmutable $approved_at): self
  233.     {
  234.         $this->approved_at $approved_at;
  235.         return $this;
  236.     }
  237.     public function getApprover(): ?User
  238.     {
  239.         return $this->approver;
  240.     }
  241.     public function setApprover(?User $approver): self
  242.     {
  243.         $this->approver $approver;
  244.         return $this;
  245.     }
  246.     public function getRejectedAt(): ?\DateTimeImmutable
  247.     {
  248.         return $this->rejected_at;
  249.     }
  250.     public function setRejectedAt(?\DateTimeImmutable $rejected_at): self
  251.     {
  252.         $this->rejected_at $rejected_at;
  253.         return $this;
  254.     }
  255.     public function getRejecter(): ?User
  256.     {
  257.         return $this->rejecter;
  258.     }
  259.     public function setRejecter(?User $rejecter): self
  260.     {
  261.         $this->rejecter $rejecter;
  262.         return $this;
  263.     }
  264.     public function getDeliveredQuantity(): ?float
  265.     {
  266.         return $this->delivered_quantity;
  267.     }
  268.     public function setDeliveredQuantity(?float $delivered_quantity): self
  269.     {
  270.         $this->delivered_quantity $delivered_quantity;
  271.         return $this;
  272.     }
  273.     // One to One iliskisi icin tek tarafli yapildigi icin elle eklendi Manuelle Eklendi
  274.     public function getExpensePosition(): ?ProjectOrderExpensePositions
  275.     {
  276.         return $this->expense_position;
  277.     }
  278.     // One to One iliskisi icin tek tarafli yapildigi icin elle eklendi Manuelle Eklendi
  279.     public function setExpensePosition(?ProjectOrderExpensePositions $expense_position): self
  280.     {
  281.         $this->expense_position $expense_position;
  282.         return $this;
  283.     }
  284. }