src/Entity/ProjectOrderExpenses.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProjectOrderExpensesRepository;
  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=ProjectOrderExpensesRepository::class)
  11.  */
  12. // README annotation info
  13. //
  14. class ProjectOrderExpenses
  15. {
  16.     /**
  17.      * @ORM\Id
  18.      * @ORM\GeneratedValue
  19.      * @ORM\Column(type="integer")
  20.      * πŸ‘‰project.orders.expense.minify.base.for.position  Expense Position Project ordar'a related oldugu icin bu Positionnun bagli oldugu expense mini bilgileri veriyori, yoksa circular reference olusuyor
  21.      * @Groups({
  22.      *          "project.orders.expense.base",
  23.      *          "project.orders.expense.minify.version",
  24.      *
  25.      *     "expense.core", "expense:core", "expense@core"
  26.      *      })
  27.      */
  28.     private $id;
  29.     /**
  30.      * @ORM\ManyToOne(targetEntity=Suppliers::class, inversedBy="projectOrderExpenses")
  31.      * @ORM\JoinColumn(nullable=false)
  32.      * @Groups({
  33.      *      "supplier.base",
  34.      *      "project.orders.expense.minify.version",
  35.      *
  36.      *     "expense.supplier"
  37.      * })
  38.      */
  39.     private $supplier;
  40.     /**
  41.      * βŒβŒβŒβŒβŒβŒ use in positions
  42.      * @deprecated will remove completelly
  43.      * @ORM\ManyToOne(targetEntity=ProjectOrders::class, inversedBy="projectOrderExpenses")
  44.      * Groups({
  45.      *         "project.orders.expense.assigned.order",
  46.      *
  47.      *        })
  48.      */
  49.     private $project_order;
  50.     /**
  51.      * @ORM\Column(type="string", length=64, nullable=true, unique=true )
  52.      * @ORM\JoinColumn(nullable=true)
  53.      * @Groups({
  54.      *             "project.orders.expense.base",
  55.      *
  56.      *     "expense.core", "expense:core", "expense@core"
  57.      *        })
  58.      */
  59.     private $invoice_nr;
  60.     /**
  61.      * @ORM\Column(type="datetime_immutable")
  62.      * @Groups({
  63. *              "project.orders.expense.base",
  64.      *
  65.      *     "expense.core", "expense:core", "expense@core"
  66.      *         })
  67.      */
  68.     private $created_at;
  69.     /**
  70.      * @MaxDepth(1)
  71.      * "project.orders.expense.minify.version" for count
  72.      * @ORM\OneToMany(targetEntity=ProjectOrderExpensePositions::class, mappedBy="project_order_expense", cascade={"persist"})
  73.      * @Groups({
  74.      *     "@deprecated_.project.orders.expense.positions",
  75.      *     "expense.positions",
  76.      *     "project.orders.expense.minify.version",
  77.      *     "expense.positions"
  78.      * })
  79.      * @ORM\OrderBy({"id": "DESC"})
  80.      */
  81.     private $project_order_expense_positions;
  82.     /**
  83.      * @deprecated βŒβŒβŒβŒβŒβŒβŒ Amount use for older vers. with new use positions amount
  84.      *
  85.      * @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
  86.      * @Groups({
  87.      *     "project.orders.expense.base"
  88.      * })
  89.      */
  90.     private $amount;
  91.     /**
  92.      * @ORM\Column(type="datetime_immutable", nullable=true)
  93.      * @Groups({
  94.      *     "project.orders.expense.base",
  95.      *     "project.orders.expense.minify.version",
  96.      *     "project.orders.expense.position.expense",
  97.      *
  98.      *     "expense.core", "expense:core", "expense@core"
  99.      * })
  100.      */
  101.     private $expensed_at;
  102.     /**
  103.      * @ORM\Column(type="string", length=64, nullable=true, unique=true, options={"comment": "Bu bir siparis numarasi bir Proje>Orderlar icin yapilan siparislerin geneli"})
  104.      * @Groups({
  105.      *     "project.orders.expense.base",
  106.      *     "project.orders.expense.minify.version",
  107.      *
  108.      *     "expense.core", "expense:core", "expense@core"
  109.      * })
  110.      */
  111.     private $expense_nr;
  112.     /**
  113.      * @ORM\Column(type="text", nullable=true)
  114.      * @Groups({
  115.      *     "project.orders.expense.base",
  116.      *
  117.      *     "expense.core", "expense:core", "expense@core"
  118.      * })
  119.      */
  120.     private $comment;
  121.     /**
  122.      * @ORM\Column(type="text", nullable=true)
  123.      * @Groups({
  124.      *     "project.orders.expense.base",
  125.      *     "project.orders.expense.minify.version",
  126.      *
  127.      *     "expense.core", "expense:core", "expense@core"
  128.      * })
  129.      */
  130.     private $file_name;
  131.     /**
  132.      * ORM\OneToOne(targetEntity=PurchaseRequest::class, mappedBy="expense", cascade={"persist", "remove"})
  133.      * @ORM\ManyToOne(targetEntity=PurchaseRequest::class, inversedBy="expense", cascade={"persist", "remove"})
  134.      * @ORM\JoinColumn(nullable=true, onDelete="CASCADE")
  135.      * @Groups({
  136.      *      "expense:purchse_request",
  137.      *      "expense@purchse_request"
  138.      *  })
  139.      */
  140.     private $purchase_request;
  141.     public function __construct()
  142.     {
  143.         $this->project_order_expense_positions = new ArrayCollection();
  144.     }
  145.     public function getId(): ?int
  146.     {
  147.         return $this->id;
  148.     }
  149.     public function getSupplier(): ?Suppliers
  150.     {
  151.         return $this->supplier;
  152.     }
  153.     public function setSupplier(?Suppliers $supplier): self
  154.     {
  155.         $this->supplier $supplier;
  156.         return $this;
  157.     }
  158.     public function getProjectOrder(): ?ProjectOrders
  159.     {
  160.         return $this->project_order;
  161.     }
  162.     public function setProjectOrder(?ProjectOrders $project_order): self
  163.     {
  164.         $this->project_order $project_order;
  165.         return $this;
  166.     }
  167.     public function getInvoiceNr(): ?string
  168.     {
  169.         return $this->invoice_nr;
  170.     }
  171.     public function setInvoiceNr(?string $invoice_nr): self
  172.     {
  173.         $this->invoice_nr $invoice_nr;
  174.         return $this;
  175.     }
  176.     public function getCreatedAt(): ?\DateTimeImmutable
  177.     {
  178.         return $this->created_at;
  179.     }
  180.     public function setCreatedAt(\DateTimeImmutable $created_at): self
  181.     {
  182.         $this->created_at $created_at;
  183.         return $this;
  184.     }
  185.     /**
  186.      * @return Collection<int, ProjectOrderExpensePositions>
  187.      */
  188.     public function getProjectOrderExpensePositions(): Collection
  189.     {
  190.         return $this->project_order_expense_positions;
  191.     }
  192.     public function addProjectOrderExpensePosition(ProjectOrderExpensePositions $projectOrderExpensePosition): self
  193.     {
  194.         if (!$this->project_order_expense_positions->contains($projectOrderExpensePosition)) {
  195.             $this->project_order_expense_positions[] = $projectOrderExpensePosition;
  196.             $projectOrderExpensePosition->setProjectOrderExpense($this);
  197.         }
  198.         return $this;
  199.     }
  200.     public function removeProjectOrderExpensePosition(ProjectOrderExpensePositions $projectOrderExpensePosition): self
  201.     {
  202.         if ($this->project_order_expense_positions->removeElement($projectOrderExpensePosition)) {
  203.             // set the owning side to null (unless already changed)
  204.             if ($projectOrderExpensePosition->getProjectOrderExpense() === $this) {
  205.                 $projectOrderExpensePosition->setProjectOrderExpense(null);
  206.             }
  207.         }
  208.         return $this;
  209.     }
  210.     public function getAmount(): ?string
  211.     {
  212.         return $this->amount;
  213.     }
  214.     public function setAmount(?string $amount): self
  215.     {
  216.         $this->amount $amount;
  217.         return $this;
  218.     }
  219.     public function getExpensedAt(): ?\DateTimeImmutable
  220.     {
  221.         return $this->expensed_at;
  222.     }
  223.     public function setExpensedAt(?\DateTimeImmutable $expensed_at): self
  224.     {
  225.         $this->expensed_at $expensed_at;
  226.         return $this;
  227.     }
  228.     public function getExpenseNr(): ?string
  229.     {
  230.         return $this->expense_nr;
  231.     }
  232.     public function setExpenseNr(?string $expense_nr): self
  233.     {
  234.         $this->expense_nr $expense_nr;
  235.         return $this;
  236.     }
  237.     public function getComment(): ?string
  238.     {
  239.         return $this->comment;
  240.     }
  241.     public function setComment(?string $comment): self
  242.     {
  243.         $this->comment $comment;
  244.         return $this;
  245.     }
  246.     public function getFileName(): ?string
  247.     {
  248.         return $this->file_name;
  249.     }
  250.     public function setFileName(?string $file_name): self
  251.     {
  252.         $this->file_name $file_name;
  253.         return $this;
  254.     }
  255.     public function getPurchaseRequest(): ?PurchaseRequest
  256.     {
  257.         return $this->purchase_request;
  258.     }
  259.     public function setPurchaseRequest(?PurchaseRequest $purchase_request): self
  260.     {
  261.         $this->purchase_request $purchase_request;
  262.         return $this;
  263.     }
  264. }