- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_product_row.php
- Класс: \CAllCrmProductRow
- Вызов: CAllCrmProductRow::GetByID
static function GetByID($ID, $arOptions = array())
{
$ID = intval($ID);
$arResult = CCrmEntityHelper::GetCached(self::CACHE_NAME, $ID);
if (is_array($arResult))
{
return $arResult;
}
$dbRes = CCrmProductRow::GetList(array(), array('ID' => $ID), false, false, array(), $arOptions);
$arResult = $dbRes->Fetch();
if(is_array($arResult))
{
CCrmEntityHelper::SetCached(self::CACHE_NAME, $ID, $arResult);
if(isset($arResult['OWNER_TYPE']))
{
// Remove space padding of CHAR column
$arResult['OWNER_TYPE'] = trim($arResult['OWNER_TYPE']);
}
$productID = $arResult['PRODUCT_ID'] = intval($arResult['PRODUCT_ID']);
$arResult['PRICE'] = round(doubleval($arResult['PRICE']), 2);
$arResult['QUANTITY'] = round(doubleval($arResult['QUANTITY']), 4);
$arResult['DISCOUNT_TYPE_ID'] = isset($arResult['DISCOUNT_TYPE_ID'])
? intval($arResult['DISCOUNT_TYPE_ID']) : \Bitrix\Crm\Discount::UNDEFINED;
$arResult['DISCOUNT_RATE'] = isset($arResult['DISCOUNT_RATE']) ? round(doubleval($arResult['DISCOUNT_RATE']), 2) : 0.0;
$arResult['DISCOUNT_SUM'] = isset($arResult['DISCOUNT_SUM']) ? round(doubleval($arResult['DISCOUNT_SUM']), 2) : 0.0;
$arResult['TAX_RATE'] = isset($arResult['TAX_RATE']) ? round(doubleval($arResult['TAX_RATE']), 2) : null;
$arResult['TAX_INCLUDED'] = isset($arResult['TAX_INCLUDED']) ? $arResult['DISCOUNT_SUM'] : 'N';
$arResult['CUSTOMIZED'] = isset($arResult['CUSTOMIZED']) ? $arResult['CUSTOMIZED'] : 'N';
$arResult['MEASURE_CODE'] = isset($arResult['MEASURE_CODE']) ? intval($arResult['MEASURE_CODE']) : 0;
$arResult['MEASURE_NAME'] = isset($arResult['MEASURE_NAME']) ? $arResult['MEASURE_NAME'] : '';
if($productID > 0 && $arResult['MEASURE_CODE'] <= 0)
{
$defaultMeasureInfo = \Bitrix\Crm\Measure::getDefaultMeasure();
$measureInfos = \Bitrix\Crm\Measure::getProductMeasures($productID);
if(isset($measureInfos[$productID]) && !empty($measureInfos[$productID]))
{
$measureInfo = $measureInfos[$productID][0];
$result['MEASURE_CODE'] = $measureInfo['CODE'];
$result['MEASURE_NAME'] = $measureInfo['SYMBOL'];
}
elseif($defaultMeasureInfo !== null)
{
$result['MEASURE_CODE'] = $defaultMeasureInfo['CODE'];
$result['MEASURE_NAME'] = $defaultMeasureInfo['SYMBOL'];
}
}
}
return $arResult;
}