• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/signdocument/documentdata.php
  • Класс: Bitrix\Crm\Timeline\SignDocument\DocumentData
  • Вызов: DocumentData::createFromArray
static function createFromArray(array $data): self
{
	$eventData = new self((int)$data['documentId']);
	if (!empty($data['createdTime']))
	{
		$createdTime = $data['createdTime'];
		if (!($createdTime instanceof DateTime))
		{
			$createdTime = new DateTime($createdTime);
		}
		$eventData->setCreatedTime($createdTime);
	}
	if (!empty($data['authorId']))
	{
		$eventData->setAuthorId((int)$data['authorId']);
	}
	if (!empty($data['memberHash']))
	{
		$eventData->setMemberHash($data['memberHash']);
	}
	if (!empty($data['documentHash']))
	{
		$eventData->setDocumentHash($data['documentHash']);
	}
	if (!empty($data['bindings']) && is_array($data['bindings']))
	{
		foreach ($data['bindings'] as $binding)
		{
			if (is_array($binding))
			{
				$binding = ItemIdentifier::createFromArray($binding);
			}
			if ($binding instanceof ItemIdentifier)
			{
				$eventData->addBinding($binding);
			}
		}
	}
	if (!empty($data['fileUrl']))
	{
		$fileUrl = $data['fileUrl'];
		if (!($fileUrl instanceof Uri))
		{
			$fileUrl = new Uri($fileUrl);
		}
		$eventData->setFileUrl($fileUrl);
	}
	if (!empty($data['mySigner']))
	{
		$mySigner = $data['mySigner'];
		if (is_array($mySigner))
		{
			$mySigner = Signer::createFromArray($data['mySigner']);
		}
		if ($mySigner instanceof Signer)
		{
			$eventData->setMySigner($mySigner);
		}
	}
	if (!empty($data['signers']) && is_array($data['signers']))
	{
		foreach ($data['signers'] as $signer)
		{
			if (is_array($signer))
			{
				$signer = Signer::createFromArray($signer);
			}
			if ($signer instanceof Signer)
			{
				$eventData->addSigner($signer);
			}
		}
	}
	if (isset($data['item']) && $data['item'] instanceof Item)
	{
		$eventData->setItem($data['item']);
	}
	if (isset($data['fieldsCount']))
	{
		$eventData->setFieldsCount((int)$data['fieldsCount']);
	}
	$eventData->bindDocumentEntities();

	return $eventData;
}