- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/discountentity.php
- Класс: BitrixCatalogDiscountEntityTable
- Вызов: DiscountEntityTable::getByDiscount
static function getByDiscount(array $discountList, $filter = [], $groupModule = true)
{
$groupModule = ($groupModule === true);
$result = [];
if (!empty($discountList))
{
TypeCollection::normalizeArrayValuesByInt($discountList);
if (!empty($discountList))
{
if (!is_array($filter))
$filter = [];
$discountRows = array_chunk($discountList, 500);
foreach ($discountRows as &$row)
{
$filter['@DISCOUNT_ID'] = $row;
$entityIterator = self::getList([
'select' => [
'DISCOUNT_ID', 'MODULE_ID',
'ENTITY', 'ENTITY_ID', 'ENTITY_VALUE', 'FIELD_ENTITY', 'FIELD_TABLE'
],
'filter' => $filter
]);
if ($groupModule)
{
while ($entity = $entityIterator->fetch())
{
unset($entity['DISCOUNT_ID']);
$module = $entity['MODULE_ID'];
$entityCode = $entity['ENTITY'];
if (!isset($result[$module]))
$result[$module] = [];
if (!isset($result[$module][$entityCode]))
$result[$module][$entityCode] = [];
$result[$module][$entityCode][$entity['FIELD_ENTITY']] = $entity;
}
unset($entityCode, $module);
}
else
{
while ($entity = $entityIterator->fetch())
{
$entity['DISCOUNT_ID'] = (int)$entity['DISCOUNT_ID'];
if (!isset($result[$entity['DISCOUNT_ID']]))
$result[$entity['DISCOUNT_ID']] = [];
$result[$entity['DISCOUNT_ID']][] = $entity;
}
}
unset($entity, $entityIterator);
}
unset($row, $discountRows);
}
}
return $result;
}