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