• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/bizproc/document/valuecollection/order.php
  • Класс: Bitrix\Crm\Integration\BizProc\Document\ValueCollection\Order
  • Вызов: Order::loadEntityValues
protected function loadEntityValues(): void
{
	if (isset($this->document['ID']))
	{
		return;
	}

	$order = $this->getOrder();

	if (!$order)
	{
		return;
	}

	$fields = $order->getFieldValues();

	$userKeys = [
		'USER_ID', 'EMP_PAYED_ID', 'EMP_DEDUCTED_ID', 'EMP_STATUS_ID', 'EMP_MARKED_ID',
		'EMP_ALLOW_DELIVERY_ID', 'CREATED_BY', 'RESPONSIBLE_ID', 'EMP_CANCELED_ID',
	];
	foreach ($userKeys as $userKey)
	{
		if (isset($fields[$userKey]))
		{
			$fields[$userKey] = 'user_' . $fields[$userKey];
		}
	}

	$dbRes = Crm\Order\ContactCompanyCollection::getList([
		'select' => ['ENTITY_ID', 'ENTITY_TYPE_ID'],
		'filter' => [
			'=ORDER_ID' => $this->id,
			'@ENTITY_TYPE_ID' => [\CCrmOwnerType::Contact, \CCrmOwnerType::Company],
			'IS_PRIMARY' => 'Y',
		],
		'order' => ['ENTITY_TYPE_ID' => 'ASC'],
	]);
	while ($row = $dbRes->fetch())
	{
		if ((int)$row['ENTITY_TYPE_ID'] === \CCrmOwnerType::Contact)
		{
			$fields['CONTACT_ID'] = $row['ENTITY_ID'];
		}
		else
		{
			$fields['COMPANY_ID'] = $row['ENTITY_ID'];
		}
	}

	$fields['LID_PRINTABLE'] = $fields['LID'];
	if ($siteResult = \CSite::GetByID($fields['LID']))
	{
		$site = $siteResult->fetch();
		$fields['LID_PRINTABLE'] = $site['NAME'];
	}

	$fields['PRICE_FORMATTED'] = html_entity_decode(
		\CCrmCurrency::MoneyToString($fields['PRICE'], $fields['CURRENCY']),
		ENT_NOQUOTES,
		LANG_CHARSET
	);

	self::convertDateFields($fields);

	$this->document = array_merge($this->document, $fields ?: []);

	$this->loadUserFieldValues();
}