- Модуль: 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;
}