• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/filter/companydataprovider.php
  • Класс: Bitrix\Crm\Filter\CompanyDataProvider
  • Вызов: CompanyDataProvider::prepareFieldData
public function prepareFieldData($fieldID)
{
	if($fieldID === 'COMPANY_TYPE')
	{
		return array(
			'params' => array('multiple' => 'Y'),
			'items' => \CCrmStatus::GetStatusList('COMPANY_TYPE')
		);
	}
	elseif($fieldID === 'INDUSTRY')
	{
		return array(
			'params' => array('multiple' => 'Y'),
			'items' => \CCrmStatus::GetStatusList('INDUSTRY')
		);
	}
	elseif($fieldID === 'CURRENCY_ID')
	{
		return array(
			'params' => array('multiple' => 'Y'),
			'items' => \CCrmCurrencyHelper::PrepareListItems()
		);
	}
	elseif($fieldID === 'EMPLOYEES')
	{
		return array(
			'params' => array('multiple' => 'Y'),
			'items' => \CCrmStatus::GetStatusList('EMPLOYEES')
		);
	}
	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 === 'ACTIVITY_COUNTER')
	{
		return EntityCounterType::getListFilterInfo(
			array('params' => array('multiple' => 'Y')),
			array('ENTITY_TYPE_ID' => \CCrmOwnerType::Company)
		);
	}
	elseif($fieldID === 'COMMUNICATION_TYPE')
	{
		return array(
			'params' => array('multiple' => 'Y'),
			'items' => \CCrmFieldMulti::PrepareListItems(array(\CCrmFieldMulti::PHONE, \CCrmFieldMulti::EMAIL))
		);
	}
	elseif(Crm\Tracking\UI\Filter::hasField($fieldID))
	{
		return Crm\Tracking\UI\Filter::getFieldData($fieldID);
	}
	elseif($fieldID === 'WEBFORM_ID')
	{
		return Crm\WebForm\Helper::getEntitySelectorParams(\CCrmOwnerType::Company);
	}
	elseif($fieldID === 'ORIGINATOR_ID')
	{
		return array(
			'items' => array('' => Loc::getMessage('CRM_COMPANY_FILTER_ALL'))
				+ \CCrmExternalSaleHelper::PrepareListItems()
		);
	}
	elseif (ParentFieldManager::isParentFieldName($fieldID))
	{
		return Container::getInstance()->getParentFieldManager()->prepareParentFieldDataForFilterProvider(
			\CCrmOwnerType::Company,
			$fieldID
		);
	}

	return null;
}