- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/businessvalue_old.php
- Класс: BitrixSaleBusinessValueOld
- Вызов: BusinessValueOld::get
static function get($codeName, $order, $payment, $shipment)
{
static $cache = array();
if (is_numeric($order))
$order = ($v = $cache[$order]) ? $v : OrderTable::getById($order)->fetch();
elseif ($order instanceof Order)
$order = $order->getFieldValues();
if (is_array($order))
$cache[$order['ID']] = $order;
else
return null;
$result = null;
list ($entity, $item) = self::getMap($codeName, $order['PERSON_TYPE_ID']);
switch ($entity)
{
case 'VALUE':
$result = $item;
break;
case 'ORDER':
$result = $order[$item];
break;
case 'PAYMENT':
if ($payment)
$result = $payment[$item];
break;
case 'SHIPMENT':
if ($shipment)
$result = $shipment[$item];
break;
case 'PROPERTY':
$property = OrderPropsValueTable::getList(array(
'select' => array('VALUE'),
'filter' => array('ORDER_ID' => $order['ID'], 'ORDER_PROPS_ID' => $item),
'limit' => 1,
))->fetch();
if ($property)
$result = $property['VALUE'];
break;
case 'COMPANY':
$companyId = null;
if ($payment)
$companyId = $payment['COMPANY_ID'];
elseif ($shipment)
$companyId = $shipment['COMPANY_ID'];
if ($companyId)
{
if (substr($item, 0, 3) == 'UF_')
{
global $USER_FIELD_MANAGER;
if ($value = $USER_FIELD_MANAGER->GetUserFieldValue(CompanyTable::getUfId(), $item, $companyId))
$result = $value;
}
else
{
if ($company = CompanyTable::getById($companyId)->fetch())
$result = $company[$item];
}
}
break;
case 'USER':
global $USER;
if (($userId = $order['USER_ID']) && ($user = $USER->GetByID($userId)->Fetch()))
$result = $user[$item];
break;
}
return $result;
}