<?php
namespace App\Entity;
use App\Repository\MachinePaperSizeMatrixRepository;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
/**
* @ORM\Entity(repositoryClass=MachinePaperSizeMatrixRepository::class)
*/
class MachinePaperSizeMatrix
{
use TimestampableEntity;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $setup;
/**
* @ORM\ManyToOne(targetEntity=Machine::class, inversedBy="machinePaperSizeMatrices")
* @ORM\JoinColumn(nullable=false)
*/
private $machine;
/**
* @ORM\ManyToOne(targetEntity=PaperSize::class, inversedBy="machinePaperSizeMatrices")
* @ORM\JoinColumn(nullable=false)
*/
private $paperSize;
/**
* @ORM\OneToMany(targetEntity=MachinePaperSizeCostMatrix::class, mappedBy="machinePaperSizeMatrix",
* orphanRemoval=true, cascade={"persist", "remove"})
*/
private $machinePaperSizeCostMatrices;
/**
* @ORM\OneToMany(targetEntity=MachinePaperSizeTimeMatrix::class, mappedBy="machinePaperSizeMatrix",
* cascade={"persist", "remove"})
*/
private $machinePaperSizeTimeMatrices;
/**
* @ORM\Column(type="decimal", precision=10, scale=2)
*/
private $rate;
/**
* @ORM\OneToMany(targetEntity=MachinePaperSizeBlackOnlyClickMatrix::class, mappedBy="machinePaperSizeMatrix",
* cascade={"persist", "remove"})
*/
private $machinePaperSizeBlackOnlyClickMatrices;
/**
* @ORM\Column(type="string", length=255, options={"default" : "Colour"})
*/
private $colourClickLabel;
/**
* @ORM\Column(type="string", length=255, options={"default" : "Black Only"})
*/
private $blackOnlyClickLabel;
public function __construct()
{
$this->machinePaperSizeCostMatrices = new ArrayCollection();
$this->machinePaperSizeTimeMatrices = new ArrayCollection();
$this->machinePaperSizeBlackOnlyClickMatrices = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getSetup(): ?int
{
return $this->setup;
}
public function setSetup(int $setup): self
{
$this->setup = $setup;
return $this;
}
public function getMachine(): ?Machine
{
return $this->machine;
}
public function setMachine(?Machine $machine): self
{
$this->machine = $machine;
return $this;
}
public function getPaperSize(): ?PaperSize
{
return $this->paperSize;
}
public function setPaperSize(?PaperSize $paperSize): self
{
$this->paperSize = $paperSize;
return $this;
}
/**
* @return Collection<int, MachinePaperSizeCostMatrix>
*/
public function getMachinePaperSizeCostMatrices(): Collection
{
return $this->machinePaperSizeCostMatrices;
}
public function addMachinePaperSizeCostMatrix(MachinePaperSizeCostMatrix $machinePaperSizeCostMatrix): self
{
if (!$this->machinePaperSizeCostMatrices->contains($machinePaperSizeCostMatrix)) {
$this->machinePaperSizeCostMatrices[] = $machinePaperSizeCostMatrix;
$machinePaperSizeCostMatrix->setMachinePaperSizeMatrix($this);
}
return $this;
}
public function removeMachinePaperSizeCostMatrix(MachinePaperSizeCostMatrix $machinePaperSizeCostMatrix): self
{
if ($this->machinePaperSizeCostMatrices->removeElement($machinePaperSizeCostMatrix)) {
// set the owning side to null (unless already changed)
if ($machinePaperSizeCostMatrix->getMachinePaperSizeMatrix() === $this) {
$machinePaperSizeCostMatrix->setMachinePaperSizeMatrix(null);
}
}
return $this;
}
/**
* @return Collection<int, MachinePaperSizeTimeMatrix>
*/
public function getMachinePaperSizeTimeMatrices(): Collection
{
return $this->machinePaperSizeTimeMatrices;
}
public function addMachinePaperSizeTimeMatrix(MachinePaperSizeTimeMatrix $machinePaperSizeTimeMatrix): self
{
if (!$this->machinePaperSizeTimeMatrices->contains($machinePaperSizeTimeMatrix)) {
$this->machinePaperSizeTimeMatrices[] = $machinePaperSizeTimeMatrix;
$machinePaperSizeTimeMatrix->setMachinePaperSizeMatrix($this);
}
return $this;
}
public function removeMachinePaperSizeTimeMatrix(MachinePaperSizeTimeMatrix $machinePaperSizeTimeMatrix): self
{
if ($this->machinePaperSizeTimeMatrices->removeElement($machinePaperSizeTimeMatrix)) {
// set the owning side to null (unless already changed)
if ($machinePaperSizeTimeMatrix->getMachinePaperSizeMatrix() === $this) {
$machinePaperSizeTimeMatrix->setMachinePaperSizeMatrix(null);
}
}
return $this;
}
public function getRate(): ?string
{
return $this->rate;
}
public function setRate(string $rate): self
{
$this->rate = $rate;
return $this;
}
/**
* @return Collection<int, MachinePaperSizeBlackOnlyClickMatrix>
*/
public function getMachinePaperSizeBlackOnlyClickMatrices(): Collection
{
return $this->machinePaperSizeBlackOnlyClickMatrices;
}
public function addMachinePaperSizeBlackOnlyClickMatrix(MachinePaperSizeBlackOnlyClickMatrix $machinePaperSizeBlackOnlyClickMatrix): self
{
if (!$this->machinePaperSizeBlackOnlyClickMatrices->contains($machinePaperSizeBlackOnlyClickMatrix)) {
$this->machinePaperSizeBlackOnlyClickMatrices[] = $machinePaperSizeBlackOnlyClickMatrix;
$machinePaperSizeBlackOnlyClickMatrix->setMachinePaperSizeMatrix($this);
}
return $this;
}
public function removeMachinePaperSizeBlackOnlyClickMatrix(MachinePaperSizeBlackOnlyClickMatrix $machinePaperSizeBlackOnlyClickMatrix): self
{
if ($this->machinePaperSizeBlackOnlyClickMatrices->removeElement($machinePaperSizeBlackOnlyClickMatrix)) {
// set the owning side to null (unless already changed)
if ($machinePaperSizeBlackOnlyClickMatrix->getMachinePaperSizeMatrix() === $this) {
$machinePaperSizeBlackOnlyClickMatrix->setMachinePaperSizeMatrix(null);
}
}
return $this;
}
public function getColourClickLabel(): ?string
{
return $this->colourClickLabel;
}
public function setColourClickLabel(?string $colourClickLabel): self
{
$this->colourClickLabel = $colourClickLabel;
return $this;
}
public function getBlackOnlyClickLabel(): ?string
{
return $this->blackOnlyClickLabel;
}
public function setBlackOnlyClickLabel(string $blackOnlyClickLabel): self
{
$this->blackOnlyClickLabel = $blackOnlyClickLabel;
return $this;
}
public function getSideClickLabel($side = 'SideOne'):string
{
if ($side === 'SideOne') {
return $this->colourClickLabel;
}else{
return $this->blackOnlyClickLabel;
}
}
public function __clone() {
$machinePaperSizeCostMatrices = new ArrayCollection();
$machinePaperSizeTimeMatrices = new ArrayCollection();
$machinePaperSizeBlackOnlyClickMatrices = new ArrayCollection();
$now = new DateTime('now');
foreach ($this->machinePaperSizeCostMatrices as $machinePaperSizeCostMatrix) {
/** @var MachinePaperSizeCostMatrix $newMachinePaperSizeCostMatrix */
$newMachinePaperSizeCostMatrix = clone $machinePaperSizeCostMatrix;
$newMachinePaperSizeCostMatrix->setCreatedAt($now);
$newMachinePaperSizeCostMatrix->setUpdatedAt($now);
$newMachinePaperSizeCostMatrix->setMachinePaperSizeMatrix($this);
$machinePaperSizeCostMatrices->add($newMachinePaperSizeCostMatrix);
}
$this->machinePaperSizeCostMatrices = $machinePaperSizeCostMatrices;
foreach ($this->machinePaperSizeTimeMatrices as $machinePaperSizeTimeMatrix) {
/** @var MachinePaperSizeTimeMatrix $newMachinePaperSizeTimeMatrix */
$newMachinePaperSizeTimeMatrix = clone $machinePaperSizeTimeMatrix;
$newMachinePaperSizeTimeMatrix->setCreatedAt($now);
$newMachinePaperSizeTimeMatrix->setUpdatedAt($now);
$newMachinePaperSizeTimeMatrix->setMachinePaperSizeMatrix($this);
$machinePaperSizeTimeMatrices->add($newMachinePaperSizeTimeMatrix);
}
$this->machinePaperSizeTimeMatrices = $machinePaperSizeTimeMatrices;
foreach ($this->machinePaperSizeBlackOnlyClickMatrices as $machinePaperSizeBlackOnlyClickMatrix) {
/** @var MachinePaperSizeBlackOnlyClickMatrix $newMachinePaperSizeBlackOnlyClickMatrix */
$newMachinePaperSizeBlackOnlyClickMatrix = clone $machinePaperSizeBlackOnlyClickMatrix;
$newMachinePaperSizeBlackOnlyClickMatrix->setCreatedAt($now);
$newMachinePaperSizeBlackOnlyClickMatrix->setUpdatedAt($now);
$newMachinePaperSizeBlackOnlyClickMatrix->setMachinePaperSizeMatrix($this);
$machinePaperSizeBlackOnlyClickMatrices->add($newMachinePaperSizeBlackOnlyClickMatrix);
}
$this->machinePaperSizeBlackOnlyClickMatrices = $machinePaperSizeBlackOnlyClickMatrices;
}
}