<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\VariantRepository")
* @ORM\EntityListeners({"App\Listener\EntityListener"})
*/
class Variant
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=150)
*/
private $name;
/**
* @ORM\Column(type="string", length=20, nullable=true)
*/
private $ean;
/**
* @ORM\Column(type="string", length=100, nullable=true)
*/
private $code;
/**
* @ORM\Column(type="string", length=150, nullable=true, unique=true)
*/
private $pairedCode;
/**
* @ORM\Column(type="boolean")
*/
private $isActive = true;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $orderBy;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Product", inversedBy="variants")
* @ORM\JoinColumn(nullable=false)
*/
private $product;
/**
* @ORM\Column(type="datetime")
*/
private $createts;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User")
* @ORM\JoinColumn(nullable=false)
*/
private $createUser;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Pricelist", mappedBy="variant", cascade={"persist", "remove"}, orphanRemoval=true, indexBy="currency")
*/
private $pricelists;
/**
* @ORM\OneToMany(targetEntity="App\Entity\OrderItem", mappedBy="variant")
*/
private $orderItems;
public function __construct()
{
$this->pricelists = new ArrayCollection();
$this->orderItems = new ArrayCollection();
}
public function completeName( )
{
return $this->getProduct()->getName();
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getEan(): ?string
{
return $this->ean;
}
public function setEan(?string $ean): self
{
$this->ean = $ean;
return $this;
}
public function getCode(): ?string
{
return $this->code;
}
public function setCode(?string $code): self
{
$this->code = $code;
return $this;
}
public function getProduct(): Product
{
return $this->product;
}
public function setProduct(?Product $product): self
{
$this->product = $product;
return $this;
}
/**
* Get OrderBy
*
* @return mixed
*/
public function getOrderBy()
{
return $this->orderBy;
}
/**
* Set OrderBy
*
* @param mixed $orderBy
*/
public function setOrderBy( $orderBy )
{
$this->orderBy = $orderBy;
}
public function getCreatets(): ?\DateTimeInterface
{
return $this->createts;
}
public function setCreatets(\DateTimeInterface $createts): self
{
$this->createts = $createts;
return $this;
}
public function getCreateUser(): ?User
{
return $this->createUser;
}
public function setCreateUser(?User $createUser): self
{
$this->createUser = $createUser;
return $this;
}
public function getEditts(): ?\DateTimeInterface
{
return $this->editts;
}
public function setEditts(?\DateTimeInterface $editts): self
{
$this->editts = $editts;
return $this;
}
public function getEditUser(): ?User
{
return $this->editUser;
}
public function setEditUser(?User $editUser): self
{
$this->editUser = $editUser;
return $this;
}
public function getIsActive(): ?bool
{
return $this->isActive;
}
public function setIsActive(bool $isActive): self
{
$this->isActive = $isActive;
return $this;
}
/**
* @return Collection|Pricelist[]
*/
public function getPricelists(): Collection
{
return $this->pricelists;
}
public function addPricelist(Pricelist $pricelist): self
{
if (!$this->pricelists->contains($pricelist)) {
$this->pricelists[] = $pricelist;
$pricelist->setVariant($this);
}
return $this;
}
public function removePricelist(Pricelist $pricelist): self
{
if ($this->pricelists->contains($pricelist)) {
$this->pricelists->removeElement($pricelist);
// set the owning side to null (unless already changed)
if ($pricelist->getVariant() === $this) {
$pricelist->setVariant(null);
}
}
return $this;
}
/**
* @return Collection|OrderItem[]
*/
public function getOrderItems(): Collection
{
return $this->orderItems;
}
public function addOrderItem(OrderItem $orderItem): self
{
if (!$this->orderItems->contains($orderItem)) {
$this->orderItems[] = $orderItem;
$orderItem->setVariant($this);
}
return $this;
}
public function removeOrderItem(OrderItem $orderItem): self
{
if ($this->orderItems->contains($orderItem)) {
$this->orderItems->removeElement($orderItem);
// set the owning side to null (unless already changed)
if ($orderItem->getVariant() === $this) {
$orderItem->setVariant(null);
}
}
return $this;
}
/**
* Get PairedCode
*
* @return mixed
*/
public function getPairedCode()
{
return $this->pairedCode;
}
/**
* Set PairedCode
*
* @param mixed $pairedCode
*/
public function setPairedCode( $pairedCode )
{
$this->pairedCode = $pairedCode;
}
}