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