- Модуль: 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;
}