- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/entitypropertyvalue.php
- Класс: BitrixSaleEntityPropertyValue
- Вызов: EntityPropertyValue::loadFromDb
static function loadFromDb(Entity $entity): array
{
$propertyValues = [];
$propertyValuesMap = [];
if ($entity->getId() > 0)
{
$dbRes = static::getList(
[
'select' => ['ID', 'NAME', 'VALUE', 'CODE', 'ORDER_PROPS_ID'],
'filter' => [
'ENTITY_ID' => $entity->getId(),
'ENTITY_TYPE' => static::getEntityType()
]
]
);
while ($row = $dbRes->fetch())
{
$propertyValues[$row['ID']] = $row;
$propertyValuesMap[$row['ORDER_PROPS_ID']] = $row['ID'];
}
}
/** @var EntityProperty $propertyClassName */
$propertyClassName = static::getPropertyClassName();
$getListParams = [
'select' => [
'ID',
'PERSON_TYPE_ID',
'NAME',
'TYPE',
'REQUIRED',
'DEFAULT_VALUE',
'SORT',
'USER_PROPS',
'IS_LOCATION',
'PROPS_GROUP_ID',
'DESCRIPTION',
'IS_EMAIL',
'IS_PROFILE_NAME',
'IS_PAYER',
'IS_LOCATION4TAX',
'IS_FILTERED',
'CODE',
'IS_ZIP',
'IS_PHONE',
'IS_ADDRESS',
'IS_ADDRESS_FROM',
'IS_ADDRESS_TO',
'ACTIVE',
'UTIL',
'INPUT_FIELD_LOCATION',
'MULTIPLE',
'SETTINGS',
'ENTITY_TYPE'
],
'filter' => static::constructPropertyFilter($entity),
'runtime' => static::getRelationRuntimeFields(),
'order' => ['SORT' => 'ASC'],
];
$dbRes = $propertyClassName::getList($getListParams);
$properties = [];
$propRelation = [];
while ($row = $dbRes->fetch())
{
$properties[$row['ID']] = $row;
$propRelation[$row['ID']] = [];
}
$dbRes = OrderPropsRelationTable::getList(
[
'select' => [
'PROPERTY_ID',
'ENTITY_ID',
'ENTITY_TYPE'
],
'filter' => [
'PROPERTY_ID' => array_keys($properties)
]
]
);
while ($row = $dbRes->fetch())
{
$propRelation[$row['PROPERTY_ID']][] = $row;
}
return [$properties, $propertyValues, $propRelation, $propertyValuesMap];
}