src/Entity/Inventory/ItemStockEntry.php line 12
<?php
namespace App\Entity\Inventory;
use ApiPlatform\Metadata\ApiResource;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
#[ORM\Entity]
#[ApiResource(routePrefix: 'inventory')]
class ItemStockEntry extends ItemMovement
{
#[ORM\ManyToOne(targetEntity: InventoryItemUnitization::class, inversedBy: 'outputs')]
#[ORM\JoinColumn(name: 'source_unitization_id', referencedColumnName: 'id')]
private ?InventoryItemUnitization $sourceUnitization = null;
#[Assert\Callback]
public function validate(ExecutionContextInterface $context, $payload): void
{
if (empty($this->packageMovement) && empty($this->sourceUnitization)) {
$context->buildViolation('Item movement must be associated only with either, a package entry, or a source unitization')
->atPath('packageMovement')
->addViolation();
$context->buildViolation('Item movement must be associated only with either, a package entry, or a source unitization')
->atPath('sourceUnitization')
->addViolation();
}
}
public function getSourceUnitization(): ?InventoryItemUnitization
{
return $this->sourceUnitization;
}
public function setSourceUnitization(?InventoryItemUnitization $sourceUnitization): static
{
$this->sourceUnitization = $sourceUnitization;
return $this;
}
}