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