- Модуль: catalogmobile
- Путь к файлу: ~/bitrix/modules/catalogmobile/lib/RealizationList/Item.php
- Класс: Bitrix\CatalogMobile\RealizationList\Item
- Вызов: Item::getFields
private function getFields(array $document): array
{
$documentProvider = new RealizationDocumentProvider((int)$document['ID']);
$entityFields = $documentProvider->getEntityFields();
$entityData = $documentProvider->getEntityData();
$mappedFields = [
'TOTAL_WITH_CURRENCY' => [
'name' => 'TOTAL_WITH_CURRENCY',
'editable' => true,
'title' => Loc::getMessage('CATALOG_REALIZATION_LIST_TOTAL_WITH_CURRENCY'),
'type' => 'money',
'multiple' => false,
'params' => [
'styleName' => 'money',
'readOnly' => true,
],
'data' => $this->getTotalWithCurrencyData(),
'config' => $this->getTotalWithCurrencyData(),
'value' => [
'amount' => $this->getTotalWithCurrencyValue($document),
'currency' => $document['CURRENCY'],
],
],
];
foreach ($entityFields as $entityField)
{
$field = $entityField;
if ($entityField['name'] === 'DOC_STATUS')
{
$field['params']['readOnly'] = true;
$field['config'] = [];
$field['value'] = $entityData['DOC_STATUS'];
}
else if ($entityField['name'] === 'CLIENT')
{
$field['params'] = [
'styleName' => 'client',
'readOnly' => true,
];
$field['data']['map'] = [
'data' => 'CLIENT',
'companyId' => 'COMPANY_ID',
'contactIds' => 'CONTACT_IDS',
];
$field['config'] = $field['data'];
$field['entityList'] = [
'contact' => $entityData['CLIENT_INFO']['CONTACT_DATA'],
'company' => $entityData['CLIENT_INFO']['COMPANY_DATA'],
];
$field['value'] = $field['entityList'];
}
else if ($entityField['name'] === 'RESPONSIBLE_ID')
{
$field['data']['provider'] = [
'context' => 'CATALOG_DOCUMENT',
];
$field['params']['readOnly'] = true;
$field['config'] = [
'entityListField' => 'RESPONSIBLE_ID_ENTITY_LIST',
'provider' => [
'context' => 'CATALOG_DOCUMENT',
],
'hasSolidBorder' => true,
'entityList' => $entityData['RESPONSIBLE_ID_ENTITY_LIST'],
];
$field['entityList'] = $entityData['RESPONSIBLE_ID_ENTITY_LIST'];
$field['value'] = $entityData['RESPONSIBLE_ID'];
}
else
{
continue;
}
$mappedFields[$field['name']] = $field;
}
return [
$mappedFields['DOC_STATUS'],
$mappedFields['TOTAL_WITH_CURRENCY'],
$mappedFields['CLIENT'],
$mappedFields['RESPONSIBLE_ID'],
];
}