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