• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/driver.php
  • Класс: BitrixSalesCenterDriver
  • Вызов: Driver::getTopPanelItems
public function getTopPanelItems(): array
{
	$items = [
		[
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_PANEL'),
			'URL' => '/saleshub/',
			'URL_CONSTANT' => true,
			'SORT' => 10,
		]
	];
	$dealsLink = CrmManager::getInstance()->getDealsLink();
	if($dealsLink)
	{
		$items[] = [
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_DEAL'),
			'URL' => $dealsLink,
			'URL_CONSTANT' => true,
			'SORT' => 20,
			'ON_CLICK' => 'BX.Salescenter.Manager.openSlider(''.$dealsLink.'');',
		];
	}
	if (CCrmSaleHelper::isWithOrdersMode())
	{
		$ordersList = '/shop/orders/list/';
		$items[] = [
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_ORDER'),
			'URL' => $ordersList,
			'URL_CONSTANT' => true,
			'SORT' => 30,
			'ON_CLICK' => 'BX.Salescenter.Manager.openSlider(''.$ordersList.'');',
		];
	}

	$contactsLink = CrmManager::getInstance()->getContactsLink();
	if($contactsLink)
	{
		$items[] = [
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_CONTACT'),
			'URL' => $contactsLink,
			'URL_CONSTANT' => true,
			'SORT' => 40,
			'ON_CLICK' => 'BX.Salescenter.Manager.openSlider(''.$contactsLink.'');',
		];
	}

	$pages = CrmManager::getInstance()->getSaleAdminPages();
	if(empty($pages))
	{
		return $items;
	}

	if(isset($pages['catalog']))
	{
		$items[] = [
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_CATALOG'),
			'URL' => $pages['catalog'],
			'URL_CONSTANT' => true,
			'SORT' => 50,
			'ON_CLICK' => 'window.open(''.$pages['catalog'].'', '_blank');',
		];
	}

	$cashboxCheckUrl = $pages['sale_cashbox_check'];
	$checkCorrectionCheckUrl = $pages['sale_cashbox_correction'];

	$cashboxOnClick = 'window.open(''.$cashboxCheckUrl.'', '_blank');';
	$checkCorrectionOnClick = 'window.open(''.$checkCorrectionCheckUrl.'', '_blank');';

	if(SaleManager::getInstance()->isFullAccess() && $this->isCashboxEnabled())
	{
		$subItems = [
			[
				'ID' => 'check_list',
				'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_CHECK'),
				'PARENT_ID' => 'cashbox_check',
				'URL_CONSTANT' => true,
				'SORT' => 60,
				'ON_CLICK' => $cashboxOnClick,
			]
		];

		if (CheckManager::isAvailableCorrection())
		{
			$subItems[] = [
				'ID' => 'correction',
				'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_CHECK_CORRECTION'),
				'PARENT_ID' => 'cashbox_check',
				'URL_CONSTANT' => true,
				'SORT' => 70,
				'ON_CLICK' => $checkCorrectionOnClick,
			];
		}

		$items[] = [
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_CHECK_BLOCK'),
			'ID' => 'cashbox_check',
			'PARENT_ID' => '',
			'SORT' => 70,
			'ITEMS' => $subItems
		];
	}

	$taxesItems = [];

	if (isset($pages['cat_vat_admin']))
	{
		$taxesItems = [
			[
				'ID' => 'cat_vat_admin',
				'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_TAXES_VAT_RATES'),
				'PARENT_ID' => 'taxes',
				'SORT' => 90,
				'ON_CLICK' => 'window.open(''.$pages['cat_vat_admin'].'', '_blank');',
			],
		];
	}

	if($this->isExtendedTaxesSettingsEnabled())
	{
		if (isset($pages['sale_tax']))
		{
			$taxesItems[] = [
				'ID' => 'sale_tax',
				'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_TAXES_LIST'),
				'PARENT_ID' => 'taxes',
				'SORT' => 100,
				'ON_CLICK' => 'window.open(''.$pages['sale_tax'].'', '_blank');',
			];
		}

		if (isset($pages['sale_tax_rate']))
		{
			$taxesItems[] = [
				'ID' => 'sale_tax_rate',
				'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_TAXES_RATES'),
				'PARENT_ID' => 'taxes',
				'SORT' => 110,
				'ON_CLICK' => 'window.open(''.$pages['sale_tax_rate'].'', '_blank');',
			];
		}

		if (isset($pages['sale_tax_exempt']))
		{
			$taxesItems[] = [
				'ID' => 'sale_tax_exempt',
				'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_TAXES_EXEMPT'),
				'PARENT_ID' => 'taxes',
				'SORT' => 120,
				'ON_CLICK' => 'window.open(''.$pages['sale_tax_exempt'].'', '_blank');',
			];
		}
	}

	$settingsItems = [];

	if (!empty($taxesItems))
	{
		$settingsItems[] = [
			'ID' => 'taxes',
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_TAXES'),
			'PARENT_ID' => 'settings',
			'SORT' => 80,
			'ITEMS' => $taxesItems,
		];
	}

	$pricesItems = [];

	if (isset($pages['cat_group_admin']))
	{
		$pricesItems[] = [
			'ID' => 'cat_group_admin',
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_PRICES_TYPE'),
			'PARENT_ID' => 'prices',
			'SORT' => 140,
			'ON_CLICK' => 'window.open(''.$pages['cat_group_admin'].'', '_blank');',
		];
	}

	if (isset($pages['cat_round_list']))
	{
		$pricesItems[] = [
			'ID' => 'cat_round_list',
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_PRICES_ROUND'),
			'PARENT_ID' => 'prices',
			'SORT' => 150,
			'ON_CLICK' => 'window.open(''.$pages['cat_round_list'].'', '_blank');',
		];
	}

	if (isset($pages['cat_extra']))
	{
		$pricesItems[] = [
			'ID' => 'cat_extra',
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_PRICES_EXTRA'),
			'PARENT_ID' => 'prices',
			'SORT' => 160,
			'ON_CLICK' => 'window.open(''.$pages['cat_extra'].'', '_blank');',
		];
	}

	if (!empty($pricesItems))
	{
		$settingsItems[] = [
			'ID' => 'prices',
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_PRICES'),
			'PARENT_ID' => 'settings',
			'SORT' => 130,
			'ITEMS' => $pricesItems,
		];
	}

	if (isset($pages['cat_measure_list']))
	{
		$settingsItems[] = [
			'ID' => 'cat_measure_list',
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_MEASURE_RATES'),
			'PARENT_ID' => 'settings',
			'SORT' => 170,
			'ON_CLICK' => 'window.open(''.$pages['cat_measure_list'].'', '_blank');',
		];
	}

	if (!empty($settingsItems))
	{
		$items[] = [
			'TEXT' => Loc::getMessage('SALESCENTER_DRIVER_TOP_PANEL_SETTINGS'),
			'ID' => 'settings',
			'PARENT_ID' => '',
			'SORT' => 70,
			'ITEMS' => $settingsItems,
		];
	}


	return $items;
}