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