• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/filter/quotedataprovider.php
  • Класс: Bitrix\Crm\Filter\QuoteDataProvider
  • Вызов: QuoteDataProvider::prepareFieldData
public function prepareFieldData($fieldID)
{
	if($fieldID === 'CURRENCY_ID')
	{
		return array(
			'params' => array('multiple' => 'Y'),
			'items' => \CCrmCurrencyHelper::PrepareListItems()
		);
	}
	elseif($fieldID === 'STATUS_ID')
	{
		return array(
			'params' => array('multiple' => 'Y'),
			'items' => \CCrmStatus::GetStatusList('QUOTE_STATUS')
		);
	}
	elseif(in_array($fieldID, ['ASSIGNED_BY_ID', 'CREATED_BY_ID', 'MODIFY_BY_ID', 'ACTIVITY_RESPONSIBLE_IDS'], true))
	{
		$factory = \Bitrix\Crm\Service\Container::getInstance()->getFactory(\CCrmOwnerType::Quote);
		$referenceClass = ($factory ? $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 === 'LEAD_ID')
	{
		return array(
			'params' => array(
				'apiVersion' => 3,
				'context' => 'CRM_QUOTE_FILTER_LEAD_ID',
				'contextCode' => 'CRM',
				'useClientDatabase' => 'N',
				'enableAll' => 'N',
				'enableDepartments' => 'N',
				'enableUsers' => 'N',
				'enableSonetgroups' => 'N',
				'allowEmailInvitation' => 'N',
				'allowSearchEmailUsers' => 'N',
				'departmentSelectDisable' => 'Y',
				'enableCrm' => 'Y',
				'enableCrmLeads' => 'Y',
				'convertJson' => 'Y'
			)
		);
	}
	elseif($fieldID === 'DEAL_ID')
	{
		return array(
			'params' => array(
				'apiVersion' => 3,
				'context' => 'CRM_QUOTE_FILTER_DEAL_ID',
				'contextCode' => 'CRM',
				'useClientDatabase' => 'N',
				'enableAll' => 'N',
				'enableDepartments' => 'N',
				'enableUsers' => 'N',
				'enableSonetgroups' => 'N',
				'allowEmailInvitation' => 'N',
				'allowSearchEmailUsers' => 'N',
				'departmentSelectDisable' => 'Y',
				'enableCrm' => 'Y',
				'enableCrmDeals' => 'Y',
				'convertJson' => 'Y'
			)
		);
	}
	elseif($fieldID === 'CONTACT_ID')
	{
		return array(
			'alias' => 'ASSOCIATED_CONTACT_ID',
			'params' => array(
				'apiVersion' => 3,
				'context' => 'CRM_QUOTE_FILTER_CONTACT_ID',
				'contextCode' => 'CRM',
				'useClientDatabase' => 'N',
				'enableAll' => 'N',
				'enableDepartments' => 'N',
				'enableUsers' => 'N',
				'enableSonetgroups' => 'N',
				'allowEmailInvitation' => 'N',
				'allowSearchEmailUsers' => 'N',
				'departmentSelectDisable' => 'Y',
				'enableCrm' => 'Y',
				'enableCrmContacts' => 'Y',
				'convertJson' => 'Y'
			)
		);
	}
	elseif($fieldID === 'COMPANY_ID')
	{
		return array(
			'params' => array(
				'apiVersion' => 3,
				'context' => 'CRM_QUOTE_FILTER_COMPANY_ID',
				'contextCode' => 'CRM',
				'useClientDatabase' => 'N',
				'enableAll' => 'N',
				'enableDepartments' => 'N',
				'enableUsers' => 'N',
				'enableSonetgroups' => 'N',
				'allowEmailInvitation' => 'N',
				'allowSearchEmailUsers' => 'N',
				'departmentSelectDisable' => 'Y',
				'enableCrm' => 'Y',
				'enableCrmCompanies' => 'Y',
				'convertJson' => 'Y'
			)
		);
	}
	elseif($fieldID === 'MYCOMPANY_ID')
	{
		return array(
			'params' => array(
				'apiVersion' => 3,
				'context' => 'CRM_QUOTE_FILTER_MYCOMPANY_ID',
				'contextCode' => 'CRM',
				'useClientDatabase' => 'N',
				'enableAll' => 'N',
				'enableDepartments' => 'N',
				'enableUsers' => 'N',
				'enableSonetgroups' => 'N',
				'allowEmailInvitation' => 'N',
				'allowSearchEmailUsers' => 'N',
				'departmentSelectDisable' => 'Y',
				'enableCrm' => 'Y',
				'enableCrmCompanies' => 'Y',
				'convertJson' => 'Y'
			)
		);
	}
	elseif($fieldID === 'ENTITIES_LINKS')
	{
		return array(
			'params' => array(
				'apiVersion' => 3,
				'context' => 'CRM_QUOTE_FILTER_ENTITY',
				'contextCode' => 'CRM',
				'useClientDatabase' => 'N',
				'enableAll' => 'N',
				'enableDepartments' => 'N',
				'enableUsers' => 'N',
				'enableSonetgroups' => 'N',
				'allowEmailInvitation' => 'N',
				'allowSearchEmailUsers' => 'N',
				'departmentSelectDisable' => 'Y',
				'enableCrm' => 'Y',
				'enableCrmCompanies' => 'Y',
				'enableCrmContacts' => 'Y',
				'enableCrmDeals' => 'Y',
				'enableCrmLeads' => 'Y',
				'addTabCrmCompanies' => 'Y',
				'addTabCrmContacts' => 'Y',
				'addTabCrmDeals' => 'Y',
				'addTabCrmLeads' => 'Y',
				'convertJson' => 'Y'
			)
		);
	}
	elseif($fieldID === 'PRODUCT_ROW_PRODUCT_ID')
	{
		return [
			'params' => [
				'multiple' => 'N',
				'dialogOptions' => [
					'height' => 200,
					'context' => 'catalog-products',
					'entities' => [
						Loader::includeModule('iblock')
						&& Loader::includeModule('catalog')
							? [
								'id' => 'product',
								'options' => [
									'iblockId' => \Bitrix\Crm\Product\Catalog::getDefaultId(),
									'basePriceId' => \Bitrix\Crm\Product\Price::getBaseId(),
								],
							]
							: [],
					],
				],
			],
		];
	}
	elseif(Crm\Tracking\UI\Filter::hasField($fieldID))
	{
		return Crm\Tracking\UI\Filter::getFieldData($fieldID);
	}
	elseif($fieldID === 'WEBFORM_ID')
	{
		return Crm\WebForm\Helper::getEntitySelectorParams(\CCrmOwnerType::Quote, 'WEBFORM_ID', 'N');
	}
	elseif (ParentFieldManager::isParentFieldName($fieldID))
	{
		return Container::getInstance()->getParentFieldManager()->prepareParentFieldDataForFilterProvider(
			\CCrmOwnerType::Quote,
			$fieldID
		);
	}
	elseif($fieldID === 'ACTIVITY_COUNTER')
	{
		return EntityCounterType::getListFilterInfo(
			array('params' => array('multiple' => 'Y')),
			array('ENTITY_TYPE_ID' => \CCrmOwnerType::Quote)
		);
	}
	return null;
}