• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/model/itemhistory.php
  • Класс: BitrixRpaModelItemHistory
  • Вызов: ItemHistory::createTimelineRecord
public function createTimelineRecord(): ?Timeline
{
	if(!$this->getId())
	{
		return null;
	}
	$item = $this->getItem();
	if(!$item)
	{
		return null;
	}

	$data = [
		'item' => [
			'name' => $item->getName(),
		],
		'scope' => $this->getScope(),
	];
	$data['stageFrom']['id'] = $this->getStageId();
	if($this->getStageId() > 0)
	{
		$stageFrom = $item->getType()->getStage($this->getStageId());
		if($stageFrom)
		{
			$data['stageFrom'] = [
				'id' => $stageFrom->getId(),
				'name' => $stageFrom->getName(),
			];
		}
	}
	if($this->getNewStageId() > 0)
	{
		$data['stageTo'] = [
			'id' => $this->getNewStageId(),
		];
		$stageTo = $item->getType()->getStage($this->getNewStageId());
		if($stageTo)
		{
			$data['stageTo']['name'] = $stageTo->getName();
		}
	}
	$fields = $this->getFields();
	if(!empty($fields))
	{
		$type = Driver::getInstance()->getType($this->getTypeId());
		if($type)
		{
			$userFields = $type->getUserFieldCollection();
			foreach($fields as $fieldName)
			{
				$field = $userFields->getByName($fieldName);
				if($field)
				{
					$data['fields'][] = [
						'name' => $fieldName,
						'title' => $field->getTitle(),
					];
				}
			}
		}
	}
	$taskId = $this->getTaskId();
	if($taskId > 0)
	{
		$taskManager = Driver::getInstance()->getTaskManager();
		if($taskManager)
		{
			$data['task'] = $taskManager->getTaskById($taskId);
		}
	}

	$timeline = Timeline::createForItem($item);
	$timeline->setItemId($this->getItemId());
	$timeline->setUserId($this->getUserId());
	$timeline->setCreatedTime($this->getCreatedTime());
	$timeline->setAction($this->getTimelineAction());
	$timeline->setData($data);

	return $timeline;
}