...Человеческий поиск в разработке...
- Модуль: 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; }