• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/activitycontroller.php
  • Класс: Bitrix\Crm\Timeline\ActivityController
  • Вызов: ActivityController::prepareHistoryDataModel
public function prepareHistoryDataModel(array $data, array $options = null)
{
	$assocEntityTypeID = isset($data['ASSOCIATED_ENTITY_TYPE_ID']) ? (int)$data['ASSOCIATED_ENTITY_TYPE_ID'] : 0;
	if($assocEntityTypeID === \CCrmOwnerType::Activity)
	{
		$typeID = isset($data['TYPE_ID']) ? (int)$data['TYPE_ID'] : 0;
		$typeCategoryID = isset($data['TYPE_CATEGORY_ID']) ? (int)$data['TYPE_CATEGORY_ID'] : 0;
		$settings = isset($data['SETTINGS']) && is_array($data['SETTINGS']) ? $data['SETTINGS'] : array();

		if(
			$typeCategoryID === \CCrmActivityType::Provider
			&& isset($data['ASSOCIATED_ENTITY']['PROVIDER_ID'])
			&& self::isActivityProviderSupported($data['ASSOCIATED_ENTITY']['PROVIDER_ID'])
		)
		{
			$provider = \CAllCrmActivity::GetProviderById($data['ASSOCIATED_ENTITY']['PROVIDER_ID']);
			$providerData = class_exists($provider) ? $provider::prepareHistoryItemData($data) : null;
			if (is_array($providerData))
			{
				$data['PROVIDER_DATA'] = $providerData;
			}
		}

		if($typeID === TimelineType::MARK && $typeCategoryID === TimelineMarkType::SUCCESS)
		{
			$isReplied = null;
			if(isset($settings['IS_REPLIED']))
			{
				$isReplied = (bool)$settings['IS_REPLIED'];
			}
			else
			{
				$assocEntity = isset($data['ASSOCIATED_ENTITY']) && is_array($data['ASSOCIATED_ENTITY'])
					? $data['ASSOCIATED_ENTITY'] : array();

				$activityTypeID = isset($assocEntity['TYPE_ID']) ? (int)$assocEntity['TYPE_ID'] : 0;
				$activityDirection = isset($assocEntity['DIRECTION']) ? (int)$assocEntity['DIRECTION'] : 0;
				if($activityTypeID === \CCrmActivityType::Email
					&& $activityDirection === \CCrmActivityDirection::Incoming
				)
				{
					$isReplied = isset($settings['IS_REPLIED']) && $settings['IS_REPLIED'];
				}
			}

			if($isReplied === false)
			{
				$data['SUMMARY'] = Loc::getMessage('CRM_ACTIVITY_EMAIL_SKIPPED');
			}
		}
	}
	return parent::prepareHistoryDataModel($data, $options);
}