• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/connectors/client.php
  • Класс: Bitrix\Sender\Integration\Crm\Connectors\Client
  • Вызов: Client::getUiFilterPresets
static function getUiFilterPresets()
{
	$list = array(
		'crm_client_all' => array(
			'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_ALL'),
			'sender_segment_name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_SEGMENT_ALL'),
			'fields' => array(
				self::FIELD_FOR_PRESET_ALL => self::YES,
			)
		),
		'crm_client_deal_in_work' => array(
			'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_DEAL_INW'),
			'sender_segment_name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_SEGMENT_DEAL_INW'),
			'fields' => array(
				'DEAL_STAGE_SEMANTIC_ID' => array(PhaseSemantics::PROCESS),
			)
		),
		'crm_client_deal_won' => array(
			'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_DEAL_WON'),
			'sender_segment_name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_SEGMENT_DEAL_WON'),
			'fields' => array(
				'DEAL_STAGE_SEMANTIC_ID' => array(PhaseSemantics::SUCCESS),
			)
		),
		'crm_client_deal_loose' => array(
			'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_DEAL_LOOSE'),
			'sender_segment_name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_SEGMENT_DEAL_LOOSE'),
			'fields' => array(
				'DEAL_STAGE_SEMANTIC_ID' => array(PhaseSemantics::FAILURE),
			)
		),
		'crm_client_birthday' => array(
			'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_BIRTH'),
			'sender_segment_name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_SEGMENT_BIRTH'),
			'sender_segment_business_case' => true,
			'fields' => array(
				'CONTACT_BIRTHDATE_datesel' => 'NEXT_DAY',
				'CONTACT_BIRTHDATE_days' => '5',
				'CONTACT_BIRTHDATE_allow_year' => '0',
				'CLIENT_TYPE' => \CCrmOwnerType::ContactName
			)
		),
		'crm_client_aft_deal_clo' => array(
			'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_AFTER_CLOSE_DEAL'),
			'sender_segment_name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_SEGMENT_AFTER_CLOSE_DEAL'),
			'sender_segment_business_case' => true,
			'fields' => array(
				'DEAL_CLOSEDATE_datesel' => 'PREV_DAY',
				'DEAL_CLOSEDATE_days' => "30",
				'DEAL_CLOSEDATE_allow_year' => '1',
			)
		),
	);

	foreach (Holiday::getList() as $holiday)
	{
		$code = $holiday->getCode();
		$name = $holiday->getName(
			Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_CLIENT_PRESET_HOLIDAY'),
			'%holiday_name%'
		);

		$list["crm_client_$code"] = [
			'name' => $name,
			'sender_segment_name' => $name,
			'sender_segment_business_case' => true,
			'fields' => [
				'DEAL_DATE_CREATE_datesel' => 'RANGE',
				'DEAL_DATE_CREATE_from' => $holiday->getDateFrom()->toString(),
				'DEAL_DATE_CREATE_to' => $holiday->getDateTo()->toString(),
				'DEAL_DATE_CREATE_allow_year' => '0',
			]
		];
	}

	return $list;
}