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