• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/dynamiccontroller.php
  • Класс: Bitrix\Crm\Timeline\DynamicController
  • Вызов: DynamicController::prepareModificationEntryParams
protected function prepareModificationEntryParams(
	int $entityID,
	array $previousFields,
	array $currentFields,
	string $fieldName
): array
{
	if ($fieldName === Item::FIELD_NAME_CATEGORY_ID)
	{
		$prevCategoryId = (int)$previousFields[$fieldName];
		$currentCategoryId = (int)$currentFields[$fieldName];
		$prevStageId = $previousFields[Item::FIELD_NAME_STAGE_ID];
		$currentStageId = $currentFields[Item::FIELD_NAME_STAGE_ID];

		$factory = Service\Container::getInstance()->getFactory($this->getEntityTypeId());
		$prevCategory = $factory ? $factory->getCategory($prevCategoryId) : null;
		$currentCategory = $factory ? $factory->getCategory($currentCategoryId) : null;
		$prevStage = ($factory && $prevStageId) ? $factory->getStage($prevStageId) : null;
		$currentStage = ($factory && $currentStageId) ? $factory->getStage($currentStageId) : null;

		return [
			'ENTITY_TYPE_ID' => $this->getEntityTypeID(),
			'ENTITY_ID' => $entityID,
			'AUTHOR_ID' => $this->resolveAuthorId($currentFields),
			'SETTINGS' => [
				'FIELD' => $fieldName,
				'START_CATEGORY_ID' => $prevCategoryId,
				'FINISH_CATEGORY_ID' => $currentCategoryId,
				'START_STAGE_ID' => $prevStageId,
				'FINISH_STAGE_ID' => $currentStageId,
				'START_CATEGORY_NAME' => $prevCategory ? $prevCategory->getName() : $prevCategoryId,
				'FINISH_CATEGORY_NAME' => $currentCategory ? $currentCategory->getName() : $currentCategoryId,
				'START_STAGE_NAME' => $prevStage ? $prevStage->getName() : $prevStageId,
				'FINISH_STAGE_NAME' => $currentStage ? $currentStage->getName() : $currentStageId,
			],
		];
	}

	return parent::prepareModificationEntryParams($entityID, $previousFields, $currentFields, $fieldName);
}