• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/services/paysystem/restrictions/delivery.php
  • Класс: BitrixSaleServicesPaySystemRestrictionsDelivery
  • Вызов: Delivery::getDeliveryServiceList
static function getDeliveryServiceList()
{
	static $result = null;

	if ($result !== null)
		return $result;

	$serviceList = array();
	$dbRes = ServicesTable::getList(array('select' => array('ID', 'NAME', 'PARENT_ID', 'CLASS_NAME')));
	while ($service = $dbRes->fetch())
		$serviceList[$service['ID']] = $service;

	foreach ($serviceList as $service)
	{
		if (is_callable($service['CLASS_NAME'].'::canHasChildren') && $service['CLASS_NAME']::canHasChildren())
			continue;

		if ((int)$service['PARENT_ID'] > 0 && array_key_exists($service['PARENT_ID'], $serviceList))
		{
			$parentService = $serviceList[$service['PARENT_ID']];

			if (is_callable($parentService['CLASS_NAME'].'::canHasChildren') && $parentService['CLASS_NAME']::canHasChildren())
				$name = $service['NAME'].' ['.$service['ID'].']';
			else
				$name = $parentService['NAME'].': '.$service['NAME'].' ['.$service['ID'].']';
		}
		else
		{
			$name = $service['NAME'].' ['.$service['ID'].']';
		}

		$result[$service['ID']] = $name;
	}

	return $result;
}