• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/extra_services/manager.php
  • Класс: BitrixSaleDeliveryExtraServicesManager
  • Вызов: Manager::prepareData
static function prepareData(array $servicesIds)
{
	if(empty($servicesIds))
		return;

	foreach($servicesIds as $id)
	{
		$srv = ServicesManager::getById($id);

		if(!empty($srv['PARENT_ID']) && !in_array($id, $servicesIds))
			$servicesIds[] = $id;
	}

	$ids = array_diff($servicesIds, array_keys(static::$cachedFields));

	$dbRes = Table::getList(array(
		'filter' => array(
			'=DELIVERY_ID' => $ids,
			array(
				"LOGIC" => "OR",
				"=ACTIVE" => "Y",
				"=CLASS_NAME" => self::STORE_PICKUP_CLASS
			)
		),
		"order" => array(
			"SORT" =>"ASC",
			"NAME" => "ASC"
		),
		"select" => array("*", "CURRENCY" => "DELIVERY_SERVICE.CURRENCY")
	));

	while($es = $dbRes->fetch())
	{
		if(!isset(static::$cachedFields[$es['DELIVERY_ID']]))
			static::$cachedFields[$es['DELIVERY_ID']] = array();

		static::$cachedFields[$es['DELIVERY_ID']][$es["ID"]] = $es;
	}

	foreach($ids as $deliveryId)
		if(!isset(static::$cachedFields[$deliveryId]))
			static::$cachedFields[$deliveryId] = array();
}