public function getEntityFields(): array
{
$entityFields = [
[
'name' => 'CLIENT',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_CLIENT'),
'type' => 'client_light',
'editable' => true,
'requiredConditionally' => true,
'required' => true,
'multiple' => false,
'data' => [
'compound' => [
[
'name' => 'COMPANY_ID',
'type' => 'company',
'entityTypeName' => CCrmOwnerType::CompanyName,
'tagName' => CCrmOwnerType::CompanyName,
],
[
'name' => 'CONTACT_IDS',
'type' => 'multiple_contact',
'entityTypeName' => CCrmOwnerType::ContactName,
'tagName' => CCrmOwnerType::ContactName,
],
],
'map' => ['data' => 'CLIENT_DATA'],
'info' => 'CLIENT_INFO',
'lastCompanyInfos' => 'LAST_COMPANY_INFOS',
'lastContactInfos' => 'LAST_CONTACT_INFOS',
'loaders' => [
'primary' => [
CCrmOwnerType::CompanyName => [
'action' => 'GET_CLIENT_INFO',
'url' => '/bitrix/components/bitrix/crm.company.show/ajax.php?'.bitrix_sessid_get(),
],
CCrmOwnerType::ContactName => [
'action' => 'GET_CLIENT_INFO',
'url' => '/bitrix/components/bitrix/crm.contact.show/ajax.php?'.bitrix_sessid_get(),
],
],
'secondary' => [
CCrmOwnerType::CompanyName => [
'action' => 'GET_SECONDARY_ENTITY_INFOS',
'url' => '/bitrix/components/bitrix/crm.store.document.detail/ajax.php?'.bitrix_sessid_get(),
],
],
],
'clientEditorFieldsParams' => $this->prepareClientEditorFieldsParams(),
'useExternalRequisiteBinding' => true,
'permissions' => $this->getClientPermissions(),
'hasSolidBorder' => true,
],
],
[
'name' => 'ID',
'title' => 'ID',
'type' => 'hidden',
'editable' => false,
],
[
'name' => 'ORDER_ID',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_ORDER_ID'),
'type' => 'hidden',
'editable' => false,
],
[
'name' => 'XML_ID',
'title' => 'XML_ID',
'type' => 'hidden',
'editable' => false,
],
[
'name' => 'DELIVERY_NAME',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_DELIVERY_NAME'),
'type' => 'text',
'editable' => false,
'showNew' => true,
],
[
'name' => 'PRICE_DELIVERY_CALCULATED_WITH_CURRENCY',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_PRICE_DELIVERY_CALCULATED_WITH_CURRENCY'),
'type' => 'opportunity',
'editable' => false,
'showNew' => true,
'data' => [
'largeFormat' => true,
'affectedFields' => ['CURRENCY', 'PRICE_DELIVERY_CALCULATED'],
'currency' => [
'name' => 'CURRENCY',
'items'=> CCrmInstantEditorHelper::PrepareListOptions(CCrmCurrencyHelper::PrepareListItems()),
],
'amount' => 'PRICE_DELIVERY_CALCULATED',
'formatted' => 'FORMATTED_PRICE_DELIVERY_CALCULATED',
'formattedWithCurrency' => 'FORMATTED_PRICE_DELIVERY_CALCULATED_WITH_CURRENCY',
],
],
[
'name' => 'PRICE_DELIVERY_WITH_CURRENCY',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_PRICE_DELIVERY_WITH_CURRENCY'),
'type' => 'opportunity',
'editable' => false,
'showNew' => true,
'data' => [
'largeFormat' => true,
'affectedFields' => ['CURRENCY', 'PRICE_DELIVERY'],
'currency' => [
'name' => 'CURRENCY',
'items'=> CCrmInstantEditorHelper::PrepareListOptions(CCrmCurrencyHelper::PrepareListItems()),
],
'amount' => 'PRICE_DELIVERY',
'formatted' => 'FORMATTED_PRICE_DELIVERY',
'formattedWithCurrency' => 'FORMATTED_PRICE_DELIVERY_WITH_CURRENCY',
],
],
[
'name' => 'COMMENTS',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_COMMENTS'),
'type' => 'text',
'editable' => false,
],
[
'name' => 'EXTRA_SERVICES_DATA',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_EXTRA_SERVICES_DATA'),
'type' => 'shipment_extra_services',
'editable' => false,
],
[
'name' => 'RESPONSIBLE_ID',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_RESPONSIBLE_ID'),
'type' => 'user',
'editable' => true,
'required' => true,
'multiple' => false,
'data' => [
'entityListField' => 'RESPONSIBLE_ID_ENTITY_LIST',
'provider' => 'CATALOG_DOCUMENT',
'hasSolidBorder' => true,
],
],
[
'name' => 'DOCUMENT_PRODUCTS',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_DOCUMENT_PRODUCTS'),
'type' => 'product_row_summary',
'editable' => false,
],
[
'name' => 'DOC_STATUS',
'title' => Loc::getMessage('REALIZATION_DOCUMENT_PROVIDER_DOC_STATUS'),
'type' => 'status',
'editable' => false,
'showAlways' => true,
],
];
if ($this->needDeliveryBlock())
{
$entityFields = [...$entityFields, ...$this->getShipmentPropertiesFields()];
}
return $entityFields;
}