CCrmProductHelper::PreparePopupItems

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmProductHelper
  4. PreparePopupItems
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_product_helper.php
  • Класс: \CCrmProductHelper
  • Вызов: CCrmProductHelper::PreparePopupItems
static function PreparePopupItems($currencyID = '', $count = 50, $enableRawPrices = false)
{
	$currencyID = strval($currencyID);
	if (!isset($currencyID[0]))
	{
		$currencyID = CCrmCurrency::GetBaseCurrencyID();
	}

	$count = intval($count);
	if ($count <= 0)
	{
		$count = 50;
	}

	$arSelect = array('ID', 'NAME', 'PRICE', 'CURRENCY_ID');
	$arPricesSelect = $arVatsSelect = array();
	$arSelect = CCrmProduct::DistributeProductSelect($arSelect, $arPricesSelect, $arVatsSelect);
	$rs = CCrmProduct::GetList(
		array('ID' => 'DESC'),
		array(
			'ACTIVE' => 'Y',
			'CATALOG_ID' => CCrmCatalog::EnsureDefaultExists()
		),
		$arSelect,
		$count
	);

	$arProducts = array();
	$arProductId = array();
	while ($product = $rs->Fetch())
	{
		foreach ($arPricesSelect as $fieldName)
		{
			$product[$fieldName] = null;
		}
		foreach ($arVatsSelect as $fieldName)
		{
			$product[$fieldName] = null;
		}
		$arProductId[] = $product['ID'];
		$arProducts[$product['ID']] = $product;
	}
	CCrmProduct::ObtainPricesVats($arProducts, $arProductId, $arPricesSelect, $arVatsSelect, $enableRawPrices);
	$measureInfos = \Bitrix\Crm\Measure::getProductMeasures($arProductId);
	$productVatInfos = CCrmProduct::PrepareCatalogProductFields($arProductId);
	unset($arProductId, $arPricesSelect, $arVatsSelect);
	$defaultMeasureInfo = \Bitrix\Crm\Measure::getDefaultMeasure();

	$result = array();
	foreach ($arProducts as $productID => &$product)
	{
		if ($currencyID != $product['CURRENCY_ID'])
		{
			$product['PRICE'] = CCrmCurrency::ConvertMoney($product['PRICE'], $product['CURRENCY_ID'], $currencyID);
			$product['CURRENCY_ID'] = $currencyID;
		}

		$customData = array('price' => $product['PRICE']);
		if (isset($measureInfos[$productID]) && !empty($measureInfos[$productID]))
		{
			$measureIfo = $measureInfos[$productID][0];
			$customData['measure'] = array(
				'code' => $measureIfo['CODE'],
				'name' => $measureIfo['SYMBOL']
			);
		}
		elseif ($defaultMeasureInfo !== null)
		{
			$customData['measure'] = array(
				'code' => $defaultMeasureInfo['CODE'],
				'name' => $defaultMeasureInfo['SYMBOL']
			);
		}

		if (isset($productVatInfos[$productID]))
		{
			$productVatInfo = $productVatInfos[$productID];
			$customData['tax'] = array(
				'id' => $productVatInfo['TAX_ID'],
				'included' => $enableRawPrices && $productVatInfo['TAX_INCLUDED']
			);
		}

		$result[] = array(
			'title' => $product['NAME'],
			'desc' => CCrmProduct::FormatPrice($product),
			'id' => $product['ID'],
			'url' => '',
			'type' => 'product',
			'selected' => false,
			'customData' => &$customData
		);
		unset($customData);
	}
	unset($product, $arProducts);

	return $result;
}

Добавить комментарий