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