• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Broker/Product.php
  • Класс: Bitrix\Crm\Service\Broker\Product
  • Вызов: Product::normalizeMeasure
static function normalizeMeasure(ProductRow $product): void
{
	if (self::isValidMeasure($product->getMeasureCode(), $product->getMeasureName()))
	{
		return;
	}

	if (!$product->isNew())
	{
		$existingMeasureInfo = self::getExistingMeasureInfo($product->getId());
	}
	if (!empty($existingMeasureInfo))
	{
		$product->setMeasureCode($existingMeasureInfo['CODE']);
		$product->setMeasureName($existingMeasureInfo['SYMBOL']);

		return;
	}

	$defaultMeasureInfo = Measure::getDefaultMeasure();
	if (!empty($defaultMeasureInfo))
	{
		$product->setMeasureCode($defaultMeasureInfo['CODE']);
		$product->setMeasureName($defaultMeasureInfo['SYMBOL']);

		return;
	}

	self::addErrorForProduct(
		new Error(
		"Invalid measure. Default measure or existing measure in reference was not found. ID = {$product->getId()}"
		),
		$product
	);
}