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