• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/leadcontroller.php
  • Класс: Bitrix\Crm\Timeline\LeadController
  • Вызов: LeadController::prepareHistoryDataModel
public function prepareHistoryDataModel(array $data, array $options = null)
{
	$typeID = isset($data['TYPE_ID']) ? (int)$data['TYPE_ID'] : TimelineType::UNDEFINED;
	$settings = isset($data['SETTINGS']) ? $data['SETTINGS'] : array();

	if($typeID === TimelineType::CREATION)
	{
		$data['TITLE'] =  Loc::getMessage('CRM_LEAD_CREATION');

		$associatedEntityTypeID = isset($data['ASSOCIATED_ENTITY_TYPE_ID'])
			? (int)$data['ASSOCIATED_ENTITY_TYPE_ID'] : \CCrmOwnerType::Lead;
		if($associatedEntityTypeID === \CCrmOwnerType::SuspendedLead)
		{
			$data['LEGEND'] = Loc::getMessage('CRM_LEAD_MOVING_TO_RECYCLEBIN');
		}
		else
		{
			$sourceID = (isset($settings['SOURCE_ID']) && is_string($settings['SOURCE_ID'])) ? $settings['SOURCE_ID'] : '';
			if($sourceID !== '')
			{
				$sourceList = \CCrmStatus::GetStatusList('SOURCE');
				if(isset($sourceList[$sourceID]))
				{
					$data['LEGEND'] = \CCrmLead::GetFieldCaption('SOURCE_ID').': '.$sourceList[$sourceID];
				}
			}
		}
		unset($data['SETTINGS']);
	}
	elseif($typeID === TimelineType::MODIFICATION)
	{
		$fieldName = isset($settings['FIELD']) ? $settings['FIELD'] : '';
		if($fieldName === 'STATUS_ID')
		{
			$data['TITLE'] =  Loc::getMessage('CRM_LEAD_MODIFICATION_STATUS_MSGVER_1');
			$data['START_NAME'] = isset($settings['START_NAME']) ? $settings['START_NAME'] : $settings['START'];
			$data['FINISH_NAME'] = isset($settings['FINISH_NAME']) ? $settings['FINISH_NAME'] : $settings['FINISH'];
		}
		if($fieldName === 'IS_MANUAL_OPPORTUNITY')
		{
			$data['TITLE'] =  Loc::getMessage('CRM_LEAD_MODIFICATION_IS_MANUAL_OPPORTUNITY');
			$data['START_NAME'] = isset($settings['START_NAME']) ? $settings['START_NAME'] : $settings['START'];
			$data['FINISH_NAME'] = isset($settings['FINISH_NAME']) ? $settings['FINISH_NAME'] : $settings['FINISH'];
			$data['START'] = $settings['START'];
			$data['FINISH'] = $settings['FINISH'];
		}
		$data['MODIFIED_FIELD'] = $fieldName;
		unset($data['SETTINGS']);
	}
	elseif($typeID === TimelineType::CONVERSION)
	{
		$data['TITLE'] =  Loc::getMessage('CRM_LEAD_CONVERSION');
		$entities = isset($settings['ENTITIES']) && is_array($settings['ENTITIES'])
			? $settings['ENTITIES'] : array();

		$entityInfos = array();
		foreach($entities as $entityData)
		{
			$entityTypeID = isset($entityData['ENTITY_TYPE_ID']) ? (int)$entityData['ENTITY_TYPE_ID'] : 0;
			$entityID = isset($entityData['ENTITY_ID']) ? (int)$entityData['ENTITY_ID'] : 0;

			if(\CCrmOwnerType::IsDefined($entityTypeID))
			{
				\CCrmOwnerType::TryGetEntityInfo($entityTypeID, $entityID, $entityInfo, false);
				$entityInfo['ENTITY_TYPE_ID'] = $entityTypeID;
				$entityInfo['ENTITY_ID'] = $entityID;
				$entityInfos[] = $entityInfo;
			}

		}
		$data['ENTITIES'] = $entityInfos;
		unset($data['SETTINGS']);
	}
	elseif($typeID === TimelineType::RESTORATION)
	{
		$data['TITLE'] =  Loc::getMessage('CRM_LEAD_RESTORATION');
	}
	return parent::prepareHistoryDataModel($data, $options);
}