• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/paysystem/manager.php
  • Класс: Bitrix\Sale\PaySystem\Manager
  • Вызов: Manager::getListWithRestrictions
static function getListWithRestrictions(Payment $payment, $mode = Restrictions\Manager::MODE_CLIENT)
{
	$result = array();

	$filter = [
		'=ACTIVE' => 'Y',
		'=ENTITY_REGISTRY_TYPE' => $payment::getRegistryType(),
	];
	
	$bindingPaySystemIds = [];
	if ($mode == Restrictions\Manager::MODE_CLIENT)
	{
		$bindingPaySystemIds = PaymentAvailablesPaySystems::getAvailablePaySystemIdsByPaymentId($payment->getId());
		if ($bindingPaySystemIds)
		{
			$filter['=ID'] = $bindingPaySystemIds;
		}
	}

	$dbRes = self::getList([
		'filter' => $filter,
		'order' => [
			'SORT' => 'ASC',
			'NAME' => 'ASC',
		],
	]);

	while ($paySystem = $dbRes->fetch())
	{
		if ($bindingPaySystemIds)
		{
			$result[$paySystem['ID']] = $paySystem;
		}
		elseif ($mode == Restrictions\Manager::MODE_MANAGER)
		{
			$checkServiceResult = Restrictions\Manager::checkService($paySystem['ID'], $payment, $mode);
			if ($checkServiceResult != Restrictions\Manager::SEVERITY_STRICT)
			{
				if ($checkServiceResult == Restrictions\Manager::SEVERITY_SOFT)
				{
					$paySystem['RESTRICTED'] = $checkServiceResult;
				}
				$result[$paySystem['ID']] = $paySystem;
			}
		}
		elseif ($mode == Restrictions\Manager::MODE_CLIENT)
		{
			if (Restrictions\Manager::checkService($paySystem['ID'], $payment, $mode) === Restrictions\Manager::SEVERITY_NONE)
			{
				$result[$paySystem['ID']] = $paySystem;
			}
		}
	}

	return $result;
}