• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/measure.php
  • Класс: Bitrix\Crm\Measure
  • Вызов: Measure::getProductMeasures
static function getProductMeasures($productID)
{
	if (!Main\Loader::includeModule('catalog'))
	{
		throw new Main\SystemException("Could not load 'catalog' module.");
	}

	$productIDs = is_array($productID) ? $productID : array($productID);

	$measure2product = array();
	if (!empty($productIDs))
	{
		$productEntity = new \CCatalogProduct();
		$dbProductResult = $productEntity->GetList(array(), array('@ID' => $productIDs), false, false, array('ID', 'MEASURE'));
		if(is_object($dbProductResult))
		{
			while($productFields = $dbProductResult->Fetch())
			{
				$measureID = isset($productFields['MEASURE'])  ? intval($productFields['MEASURE']) : 0;
				if($measureID <= 0)
				{
					continue;
				}

				if(!isset($measure2product[$measureID]))
				{
					$measure2product[$measureID] = array();
				}

				$measure2product[$measureID][] =  intval($productFields['ID']);
			}
		}
	}
	$result = array();

	if(!empty($measure2product))
	{
		$dbMeasureResult = \CCatalogMeasure::getList(
			array(),
			array('@ID' => array_keys($measure2product)),
			false,
			false,
			array('ID', 'CODE', 'SYMBOL_RUS', 'SYMBOL_INTL', 'IS_DEFAULT')
		);

		if(is_object($dbMeasureResult))
		{
			while($measureFields = $dbMeasureResult->Fetch())
			{
				$measureID = intval($measureFields['ID']);
				$measureInfo = array(
					'ID' => $measureID,
					'CODE' => intval($measureFields['CODE']),
					'IS_DEFAULT' => isset($measureFields['IS_DEFAULT']) && $measureFields['IS_DEFAULT'] === 'Y',
					'SYMBOL' => isset($measureFields['SYMBOL_RUS'])
						? $measureFields['SYMBOL_RUS'] : $measureFields['SYMBOL_INTL']
				);

				foreach($measure2product[$measureID] as $productID)
				{
					$result[$productID] = array($measureInfo);
				}
			}
		}
	}

	return $result;
}