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;
}