• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_pay_system.php
  • Класс: \CCrmPaySystem
  • Вызов: CCrmPaySystem::getPersonTypeIDs
static function getPersonTypeIDs(?string $siteId = null)
{
	if (!CModule::IncludeModule('sale'))
	{
		return array();
	}

	static $arPTIDs = array();

	if ($siteId === null)
	{
		$siteId = static::getDefaultSiteId();
	}

	if (!empty($arPTIDs[$siteId]))
	{
		return $arPTIDs[$siteId];
	}

	$dbRes = \Bitrix\Crm\Invoice\PersonType::getList([
		'select' => ['ID', 'CODE'],
		'filter' => [
			"=PERSON_TYPE_SITE.SITE_ID" => $siteId,
			'@CODE' => ['CRM_COMPANY', 'CRM_CONTACT']
		],
		'order' => [
			'SORT' => "ASC",
			'NAME' => 'ASC'
		],
		'cache' => ['ttl' => 864000]
	]);

	while ($arPT = $dbRes->fetch())
	{
		if ($arPT['CODE'] === 'CRM_COMPANY')
		{
			$arPTIDs[$siteId]['COMPANY'] = $arPT['ID'];
		}

		if ($arPT['CODE'] === 'CRM_CONTACT')
		{
			$arPTIDs[$siteId]['CONTACT'] = $arPT['ID'];
		}
	}

	return $arPTIDs[$siteId];
}