Perform deep clone when cloning a part.

Fixes issue #25.
This commit is contained in:
Jan Böhmer 2020-03-08 18:56:00 +01:00
parent ccdac1a94b
commit a3c626d0ab
8 changed files with 92 additions and 7 deletions

View file

@ -156,4 +156,24 @@ class Part extends AttachmentContainingDBElement
{
return $this->devices;
}
public function __clone()
{
if ($this->id) {
//Deep clone part lots
$lots = $this->partLots;
$this->partLots = new ArrayCollection();
foreach ($lots as $lot) {
$this->addPartLot(clone $lot);
}
//Deep clone order details
$orderdetails = $this->orderdetails;
$this->orderdetails = new ArrayCollection();
foreach ($orderdetails as $orderdetail) {
$this->addOrderdetail(clone $orderdetail);
}
}
parent::__clone();
}
}

View file

@ -325,4 +325,12 @@ class PartLot extends AbstractDBElement implements TimeStampableInterface
return $this;
}
public function __clone()
{
if($this->id) {
$this->addedDate = null;
}
parent::__clone();
}
}