<?php
namespace App\Entity;
use App\Repository\InventoryRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
use Doctrine\ORM\Mapping\UniqueConstraint;
/**
* @ORM\Entity(repositoryClass=InventoryRepository::class)
* @ORM\Table(name="inventory")
* ORM\Table(name="inventory", uniqueConstraints={
* UniqueConstraint(name="unique_inventory_material", columns={"material_id", "stock_id"})
* })
*/
class Inventory
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
* @Groups({
* "inventory.base"
* })
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\Column(type="string", length=64, nullable=true)
*/
private $intern_item_no;
/**
* @ORM\Column(type="string", length=64)
*/
private $extern_item_no;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $ean;
/**
* @ORM\ManyToOne(targetEntity=Manufacturer::class, inversedBy="inventories")
* @ORM\JoinColumn(nullable=false)
*/
private $manufacturer;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $description;
/**
* @ORM\ManyToOne(targetEntity=Unit::class, inversedBy="inventories")
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
*/
private $unit;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $purchase_price;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $sales_price;
/**
* @ORM\ManyToOne(targetEntity=InventoryCategories::class, inversedBy="inventories")
*/
private $category;
/**
* @ORM\ManyToMany(targetEntity=InventoryGroups::class, inversedBy="inventories")
*/
private $item_group;
public function __construct()
{
$this->item_group = new ArrayCollection();
}
public function getInternItemNo(): ?string
{
return $this->intern_item_no;
}
public function setInternItemNo(?string $intern_item_no): self
{
$this->intern_item_no = $intern_item_no;
return $this;
}
public function getExternItemNo(): ?string
{
return $this->extern_item_no;
}
public function setExternItemNo(string $extern_item_no): self
{
$this->extern_item_no = $extern_item_no;
return $this;
}
public function getEan(): ?string
{
return $this->ean;
}
public function setEan(?string $ean): self
{
$this->ean = $ean;
return $this;
}
public function getManufacturer(): ?Manufacturer
{
return $this->manufacturer;
}
public function setManufacturer(?Manufacturer $manufacturer): self
{
$this->manufacturer = $manufacturer;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getUnit(): ?Unit
{
return $this->unit;
}
public function setUnit(?Unit $unit): self
{
$this->unit = $unit;
return $this;
}
public function getPurchasePrice(): ?float
{
return $this->purchase_price;
}
public function setPurchasePrice(?float $purchase_price): self
{
$this->purchase_price = $purchase_price;
return $this;
}
public function getSalesPrice(): ?float
{
return $this->sales_price;
}
public function setSalesPrice(?float $sales_price): self
{
$this->sales_price = $sales_price;
return $this;
}
public function getCategory(): ?InventoryCategories
{
return $this->category;
}
public function setCategory(?InventoryCategories $category): self
{
$this->category = $category;
return $this;
}
public function getQuantity(): ?int
{
return $this->quantity;
}
public function setQuantity(?int $quantity): self
{
$this->quantity = $quantity;
return $this;
}
/**
* @return Collection<int, InventoryGroups>
*/
public function getItemGroup(): Collection
{
return $this->item_group;
}
public function addItemGroup(InventoryGroups $itemGroup): self
{
if (!$this->item_group->contains($itemGroup)) {
$this->item_group[] = $itemGroup;
}
return $this;
}
public function removeItemGroup(InventoryGroups $itemGroup): self
{
$this->item_group->removeElement($itemGroup);
return $this;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
}