• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/externalchannel.php
  • Класс: Bitrix\Crm\Activity\Provider\ExternalChannel
  • Вызов: ExternalChannel::renderView
static function renderView(array $activity)
{
	$external = array();

	$manager = '';
	$title = '';
	$description = '';
	$externalHost = '';
	$urlShot = '';

	$document_type = '';
	$number = '';

	switch($activity['PROVIDER_TYPE_ID'])
	{
		case  CCrmExternalChannelActivityType::ImportAgentName:

			if(is_set($activity['PROVIDER_PARAMS'], CCrmExternalChannelImport::AGENT) &&
					is_set($activity['PROVIDER_PARAMS'][CCrmExternalChannelImport::AGENT], CCrmExternalChannelImport::EXTERNAL_FIELDS)
			)
			{
				$external = $activity['PROVIDER_PARAMS'][CCrmExternalChannelImport::AGENT][CCrmExternalChannelImport::EXTERNAL_FIELDS];
			}
			break;
		case  CCrmExternalChannelActivityType::ActivityName:
		case  CCrmExternalChannelActivityType::ActivityFaceCardName:

			if(is_set($activity['PROVIDER_PARAMS'], CCrmExternalChannelImport::ACTIVITY) &&
					is_set($activity['PROVIDER_PARAMS'][CCrmExternalChannelImport::ACTIVITY], CCrmExternalChannelImport::EXTERNAL_FIELDS)

			)
			{
				$external = $activity['PROVIDER_PARAMS'][CCrmExternalChannelImport::ACTIVITY][CCrmExternalChannelImport::EXTERNAL_FIELDS];
			}

			break;
	}

	if(count($external)>0)
	{
		$document_type = is_set($external, 'EXTERNAL_TYPE_ID') ? $external['EXTERNAL_TYPE_ID']: '';
		$number = is_set($external, 'NUMBER') ? $external['NUMBER']: '';
		$manager = is_set($external, 'MANAGER') ? $external['MANAGER']: '';

		if(is_set($external, 'EXTERNAL_URL') && $external['EXTERNAL_URL']!=='')
		{
			if(isset($activity['ORIGINATOR_ID']))
			{
				/** @var CCrmExternalChannelConnector $connector*/
				$connector = new CCrmExternalChannelConnector();

				$r = $connector->getList(array('filter'=>array(
						'ORIGINATOR_ID'=>$activity['ORIGINATOR_ID'],
						'TYPE_ID'=>$activity['PROVIDER_GROUP_ID']))
				);

				if($result = $r->fetch())
				{
					if(count($result)>0 && is_set($result['EXTERNAL_SERVER_HOST']))
					{
						$externalHost = $result['EXTERNAL_SERVER_HOST'];
					}
				}
			}
			$urlShot = $external['EXTERNAL_URL'];
		}
	}

	$urlDocument = ($urlShot !== '' ? $externalHost.$urlShot: '');

	switch($activity['PROVIDER_TYPE_ID'])
	{
		case  CCrmExternalChannelActivityType::ImportAgentName:
			if($activity['OWNER_TYPE_ID'] == \CCrmOwnerType::Company)
			{
				$title = Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_'.$activity['PROVIDER_TYPE_ID'].'_LABEL_COMPANY_TITLE');
				$showPath = \CComponentEngine::MakePathFromTemplate(
						\COption::GetOptionString('crm', 'path_to_company_show'),
						array('company_id' => $activity['OWNER_ID'])
				);
				$description = ''.\CCrmOwnerType::GetCaption(\CCrmOwnerType::Company, $activity['OWNER_ID']).'';
			}
			else
			{
				$title = Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_'.$activity['PROVIDER_TYPE_ID'].'_LABEL_CONTACT_TITLE');
				$showPath = \CComponentEngine::MakePathFromTemplate(
						\COption::GetOptionString('crm', 'path_to_contact_show'),
						array('contact_id' => $activity['OWNER_ID'])
				);
				$description = ''.\CCrmOwnerType::GetCaption(\CCrmOwnerType::Contact, $activity['OWNER_ID']).'';
			}
			break;
		case  CCrmExternalChannelActivityType::ActivityName:
			$title = Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_'.$activity['PROVIDER_TYPE_ID'].'_LABEL_TITLE', array(
							'#SUBJECT#'=> $document_type,
							'#NUMBER#'=> $number)
			);
			$description = Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_'.$activity['PROVIDER_TYPE_ID'].'_LABEL_TEXT', array(
							'#START_TIME#' => $activity['START_TIME'],
							'#RESULT_SUM_CURRENCY#' => \CCrmCurrency::MoneyToString(round($activity['RESULT_SUM'], 2), $activity['RESULT_CURRENCY_ID']))
			);
			break;
		case  CCrmExternalChannelActivityType::ActivityFaceCardName:
			$descriptionType = CCrmExternalChannelActivityType::getAllDescriptions();
			$title = $descriptionType[CCrmExternalChannelActivityType::ActivityFaceCard];

			$description .= ''.Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_ACTIVITY_FACE_CARD_EVENT').$activity['START_TIME'];
			$description .= isset($external['RESULT_PERCENT']) ? '

'.Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_ACTIVITY_FACE_CARD_RESULT_PERCENT').round($external['RESULT_PERCENT'], 2).'%':''; $description .= '

'.Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_ACTIVITY_FACE_CARD_RESULT_SUM').\CCrmCurrency::MoneyToString(round($activity['RESULT_SUM'], 2), $activity['RESULT_CURRENCY_ID']); $description .= $manager<>'' ? '

'.Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_ACTIVITY_FACE_CARD_MANGER').$manager:''; break; } return '
'.Loc::getMessage('CRM_REST_EXTERNAL_CHANNEL_ACTIVITY_LABEL_IN').'
'.$title.' '.$description.'
'; }