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