• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/shipmentitem.php
  • Класс: BitrixSaleShipmentItem
  • Вызов: ShipmentItem::createClone
public function createClone(SplObjectStorage $cloneEntity)
{
	if ($this->isClone() && $cloneEntity->contains($this))
	{
		return $cloneEntity[$this];
	}

	/** @var ShipmentItem $shipmentItemClone */
	$shipmentItemClone = parent::createClone($cloneEntity);

	/** @var BasketItem $basketItem */
	if ($basketItem = $this->getBasketItem())
	{
		if (!$cloneEntity->contains($basketItem))
		{
			$cloneEntity[$basketItem] = $basketItem->createClone($cloneEntity);
		}

		if ($cloneEntity->contains($basketItem))
		{
			$shipmentItemClone->basketItem = $cloneEntity[$basketItem];
		}
	}

	/** @var ShipmentItemStoreCollection $shipmentItemStoreCollection */
	if ($shipmentItemStoreCollection = $this->getShipmentItemStoreCollection())
	{
		if (!$cloneEntity->contains($shipmentItemStoreCollection))
		{
			$cloneEntity[$shipmentItemStoreCollection] = $shipmentItemStoreCollection->createClone($cloneEntity);
		}

		if ($cloneEntity->contains($shipmentItemStoreCollection))
		{
			$shipmentItemClone->shipmentItemStoreCollection = $cloneEntity[$shipmentItemStoreCollection];
		}
	}

	return $shipmentItemClone;
}