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