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