- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/filter/contactdataprovider.php
- Класс: Bitrix\Crm\Filter\ContactDataProvider
- Вызов: ContactDataProvider::prepareFieldData
public function prepareFieldData($fieldID)
{
if($fieldID === 'SOURCE_ID')
{
return array(
'params' => array('multiple' => 'Y'),
'items' => \CCrmStatus::GetStatusList('SOURCE')
);
}
elseif($fieldID === 'TYPE_ID')
{
return array(
'params' => array('multiple' => 'Y'),
'items' => \CCrmStatus::GetStatusList('CONTACT_TYPE')
);
}
elseif(in_array($fieldID, ['ASSIGNED_BY_ID', 'CREATED_BY_ID', 'MODIFY_BY_ID', 'ACTIVITY_RESPONSIBLE_IDS'], true))
{
$referenceClass = ($this->factory ? $this->factory->getDataClass() : null);
if ($fieldID === 'ACTIVITY_RESPONSIBLE_IDS')
{
$referenceClass = null;
}
$isEnableAllUsers = in_array($fieldID, ['ASSIGNED_BY_ID', 'ACTIVITY_RESPONSIBLE_IDS'], true);
$isEnableOtherUsers = in_array($fieldID, ['ASSIGNED_BY_ID', 'ACTIVITY_RESPONSIBLE_IDS'], true);
return $this->getUserEntitySelectorParams(
EntitySelector::CONTEXT,
[
'fieldName' => $fieldID,
'referenceClass' => $referenceClass,
'isEnableAllUsers' => $isEnableAllUsers,
'isEnableOtherUsers' => $isEnableOtherUsers,
]
);
}
elseif($fieldID === 'COMMUNICATION_TYPE')
{
return array(
'params' => array('multiple' => 'Y'),
'items' => \CCrmFieldMulti::PrepareListItems(array(\CCrmFieldMulti::PHONE, \CCrmFieldMulti::EMAIL))
);
}
elseif($fieldID === 'COMPANY_ID')
{
$companyCategoryId = $this->getCompanyCategoryId();
return [
'params' => [
'multiple' => 'Y',
'dialogOptions' => [
'height' => 200,
'context' => 'CRM_CONTACT_FILTER_COMPANY_ID',
'entities' => [
[
'id' => 'company',
'dynamicLoad' => true,
'dynamicSearch' => true,
'options' => [
'categoryId' => $companyCategoryId ?: 0,
],
]
],
'dropdownMode' => false,
],
],
];
}
elseif(Crm\Tracking\UI\Filter::hasField($fieldID))
{
return Crm\Tracking\UI\Filter::getFieldData($fieldID);
}
elseif($fieldID === 'WEBFORM_ID')
{
return Crm\WebForm\Helper::getEntitySelectorParams(\CCrmOwnerType::Contact);
}
elseif($fieldID === 'ORIGINATOR_ID')
{
return array(
'items' => array('' => Loc::getMessage('CRM_CONTACT_FILTER_ALL'))
+ \CCrmExternalSaleHelper::PrepareListItems()
);
}
elseif($fieldID === 'ACTIVITY_COUNTER')
{
return EntityCounterType::getListFilterInfo(
array('params' => array('multiple' => 'Y')),
array('ENTITY_TYPE_ID' => \CCrmOwnerType::Contact)
);
}
elseif (ParentFieldManager::isParentFieldName($fieldID))
{
return Container::getInstance()->getParentFieldManager()->prepareParentFieldDataForFilterProvider(
\CCrmOwnerType::Contact,
$fieldID
);
}
return null;
}