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