- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/controller/form/paysystem.php
- Класс: Bitrix\Crm\Controller\Form\PaySystem
- Вызов: PaySystem::listAction
public function listAction(): array
{
if (!Loader::includeModule('sale'))
{
$this->addError(
new Error('The sale module must be installed', self::MODULE_NOT_INCLUDED_ERROR_CODE)
);
return [];
}
if (!Loader::includeModule('salescenter'))
{
$this->addError(
new Error('The salecenter module must be installed', self::MODULE_NOT_INCLUDED_ERROR_CODE)
);
return [];
}
if (!$this->checkReadFormAccess())
{
return [];
}
$serviceLocator = ServiceLocator::getInstance();
$paySystemManager = $serviceLocator->get('sale.paysystem.manager');
$paySystems =
$paySystemManager
::getList([
'select' => ['ID', 'NAME', 'LOGOTIP'],
'filter' => [
'!=ACTION_FILE' => ['inner', 'cash'],
'=ACTIVE' => 'Y',
],
])
->fetchAll()
;
$salehubPaySystemItems =
$serviceLocator
->get('salecenter.integration.salemanager')
::getSaleshubPaySystemItems()
;
$recommendedPaySystemsResult =
$serviceLocator
->get('salecenter.component.paysystem')
->getRecommendedItems(
$salehubPaySystemItems,
true,
)
;
$recommendedPaySystems = $recommendedPaySystemsResult->isSuccess()
? $recommendedPaySystemsResult->getData()
: []
;
$this->addErrors($recommendedPaySystemsResult->getErrors());
$result = [
'active' => [],
'recommended' => [],
];
foreach ($paySystems as $paySystem)
{
$result['active'][] = $this->mapPaySystemFormList(
(int)$paySystem['ID'],
$paySystem['NAME'],
CFile::GetPath($paySystem['LOGOTIP']),
);
}
foreach ($recommendedPaySystems as $recommendedPaySystem)
{
if (!$recommendedPaySystem['itemSelected'])
{
$result['recommended'][] = $this->mapRecommendedPaySystems(
$recommendedPaySystem['id'],
$recommendedPaySystem['title'],
$recommendedPaySystem['image'],
$recommendedPaySystem['data']['connectPath'],
);
}
}
return $result;
}