static function getUiFilterFields(bool $checkAccessRights = true): array
{
$list = [
[
'id' => 'EMAIL',
'type' => 'string',
'sender_segment_filter' => '%EMAIL',
'sender_internal' => true
],
[
'id' => 'PHONE',
'type' => 'string',
'sender_segment_filter' => '%PHONE',
'sender_internal' => true
],
[
'id' => 'NAME',
'type' => 'string',
'sender_segment_filter' => '%NAME',
'sender_internal' => true
],
];
$list[] = array(
"id" => "DATE_CREATE",
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_DATE_CREATE'),
"type" => "date",
"include" => [
AdditionalDateType::CUSTOM_DATE,
AdditionalDateType::PREV_DAY,
AdditionalDateType::NEXT_DAY,
AdditionalDateType::MORE_THAN_DAYS_AGO,
AdditionalDateType::AFTER_DAYS,
],
"allow_years_switcher" => true,
"default" => true
);
$list[] = array(
"id" => "STATUS_ID",
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_STATUS_ID'),
"type" => "list",
"items" => \CCrmStatus::GetStatusList('STATUS'),
"default" => true,
'params' => array('multiple' => 'Y'),
);
$list[] = array(
"id" => "SOURCE_ID",
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_SOURCE_ID'),
"type" => "list",
"items" => \CCrmStatus::GetStatusList('SOURCE'),
"default" => true,
'params' => array('multiple' => 'Y'),
);
$list[] = array(
'id' => 'COMMUNICATION_TYPE',
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_COMMUNICATION_TYPE'),
'params' => array('multiple' => 'Y'),
'default' => true,
'type' => 'list',
'items' => \CCrmFieldMulti::PrepareListItems(array(
\CCrmFieldMulti::PHONE,
\CCrmFieldMulti::EMAIL,
\CCrmFieldMulti::IM
)),
'filter_callback' => ['\Bitrix\Sender\Integration\Crm\Connectors\Helper', 'getCommunicationTypeFilter']
);
$list[] = PhaseSemantics::getListFilterInfo(
\CCrmOwnerType::Lead,
array(
'id' => 'STATUS_SEMANTIC_ID',
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_STATUS_SEMANTIC_ID'),
'default' => true,
'params' => array('multiple' => 'Y'),
),
true
);
$list[] = array(
'id' => 'PRODUCT_ROW.PRODUCT_ID',
"name" => Loc::getMessage("SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_PRODUCT_ID"),
'default' => true,
'type' => 'dest_selector',
'partial' => true,
'params' => array(
'multiple' => 'Y',
'apiVersion' => 3,
'context' => 'CRM_LEAD_FILTER_PRODUCT_ID',
'contextCode' => 'CRM',
'useClientDatabase' => 'N',
'enableAll' => 'N',
'enableDepartments' => 'N',
'enableUsers' => 'N',
'enableSonetgroups' => 'N',
'allowEmailInvitation' => 'N',
'allowSearchEmailUsers' => 'N',
'departmentSelectDisable' => 'Y',
'addTabCrmProducts' => 'Y',
'enableCrm' => 'Y',
'enableCrmProducts' => 'Y',
'convertJson' => 'Y'
)
);
$list[] = array(
"id" => "STATUS_CONVERTED",
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_STATUS_CONVERTED'),
'type' => 'checkbox',
'sender_segment_filter' => array(
'N' => array('=STATUS_SEMANTIC_ID', PhaseSemantics::PROCESS),
'Y' => array('!=STATUS_SEMANTIC_ID', PhaseSemantics::PROCESS),
),
"default" => false,
);
$list[] = array(
"id" => "ASSIGNED_BY_ID",
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_ASSIGNED_BY_ID'),
'type' => 'dest_selector',
'params' => array(
'context' => 'SENDER_LEAD_FILTER_ASSIGNED_BY_ID',
'multiple' => 'Y',
'contextCode' => 'U',
'enableAll' => 'N',
'enableSonetgroups' => 'N',
'allowEmailInvitation' => 'N',
'allowSearchEmailUsers' => 'N',
'departmentSelectDisable' => 'Y',
'isNumeric' => 'Y',
'prefix' => 'U'
),
"default" => false,
);
$list[] = array(
"id" => "POST",
'type' => 'string',
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_POST'),
'params' => array('multiple' => 'Y'),
"default" => false
);
$list[] = array(
"id" => "BIRTHDATE",
"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_BIRTHDATE'),
'type' => 'date',
"include" => [
AdditionalDateType::CUSTOM_DATE,
AdditionalDateType::PREV_DAY,
AdditionalDateType::NEXT_DAY,
AdditionalDateType::MORE_THAN_DAYS_AGO,
AdditionalDateType::AFTER_DAYS,
],
"allow_years_switcher" => true,
"default" => false,
);
$list[] = array(
'id' => 'HONORIFIC',
'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_HONORIFIC'),
'params' => array('multiple' => 'Y'),
'default' => false,
'type' => 'list',
'items' => \CCrmStatus::GetStatusList('HONORIFIC'),
);
return array_merge($list, Helper::getFilterUserFields(\CCrmOwnerType::Lead, $checkAccessRights));
}