<?php
namespace App\Entity;
use App\Enum\ReturnReplacementType;
use App\Repository\ReturnReplacementItemRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: ReturnReplacementItemRepository::class)]
#[ORM\Table(name: 'return_replacement_item')]
#[ORM\HasLifecycleCallbacks]
class ReturnReplacementItem extends BaseEntity
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private ?int $id = null;
#[ORM\ManyToOne(targetEntity: SalesReturn::class, inversedBy: 'replacements')]
#[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
private ?SalesReturn $salesReturn = null;
#[ORM\ManyToOne(targetEntity: SalesReturnItem::class)]
#[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
private ?SalesReturnItem $salesReturnItem = null;
#[ORM\ManyToOne(targetEntity: Product::class)]
#[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
private ?Product $product = null;
#[ORM\Column(type: Types::DECIMAL, precision: 15, scale: 4)]
private string $quantity;
#[ORM\Column(type: Types::DECIMAL, precision: 15, scale: 4)]
private string $baseQuantity;
#[ORM\Column(length: 32, enumType: ReturnReplacementType::class)]
private ReturnReplacementType $type = ReturnReplacementType::REPLACEMENT;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $notes = null;
public function getId(): ?int
{
return $this->id;
}
public function getSalesReturn(): ?SalesReturn
{
return $this->salesReturn;
}
public function setSalesReturn(?SalesReturn $salesReturn): self
{
$this->salesReturn = $salesReturn;
return $this;
}
public function getSalesReturnItem(): ?SalesReturnItem
{
return $this->salesReturnItem;
}
public function setSalesReturnItem(?SalesReturnItem $salesReturnItem): self
{
$this->salesReturnItem = $salesReturnItem;
return $this;
}
public function getProduct(): ?Product
{
return $this->product;
}
public function setProduct(Product $product): self
{
$this->product = $product;
return $this;
}
public function getQuantity(): float
{
return (float) $this->quantity;
}
public function setQuantity(float $quantity): self
{
$this->quantity = (string) $quantity;
return $this;
}
public function getBaseQuantity(): float
{
return (float) $this->baseQuantity;
}
public function setBaseQuantity(float $baseQuantity): self
{
$this->baseQuantity = (string) $baseQuantity;
return $this;
}
public function getType(): ReturnReplacementType
{
return $this->type;
}
public function setType(ReturnReplacementType $type): self
{
$this->type = $type;
return $this;
}
public function getNotes(): ?string
{
return $this->notes;
}
public function setNotes(?string $notes): self
{
$this->notes = $notes;
return $this;
}
}