• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/company.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Company
  • Вызов: Company::getFields
public function getFields()
{
	if($this->fields === null)
	{
		parent::getFields();
		$this->fields['TYPE'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_COMPANY_TYPE_TITLE'),
		];
		$this->fields['LOGO']['TYPE'] = static::FIELD_TYPE_IMAGE;
		$this->fields['INDUSTRY_TYPE'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_INDUSTRY_TYPE_TITLE'),
		];
		$this->fields['EMPLOYEES_NUM'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_EMPLOYEES_NUM_TITLE'),
		];
		$this->fields['EMAIL_HOME'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_EMAIL_HOME_TITLE'),
			'VALUE' => [$this, 'getHomeEmail'],
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['EMAIL_WORK'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_EMAIL_WORK_TITLE'),
			'VALUE' => [$this, 'getWorkEmail'],
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['EMAIL_ANOTHER'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_EMAIL_ANOTHER_TITLE'),
			'VALUE' => [$this, 'getAnotherEmail'],
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['PHONE_MOBILE'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_PHONE_MOBILE_TITLE'),
			'TYPE' => 'PHONE',
			'VALUE' => [$this, 'getMobilePhone'],
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['PHONE_WORK'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_PHONE_WORK_TITLE'),
			'TYPE' => 'PHONE',
			'VALUE' => [$this, 'getWorkPhone'],
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['PHONE_HOME'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_PHONE_HOME_TITLE'),
			'TYPE' => 'PHONE',
			'VALUE' => [$this, 'getHomePhone'],
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['PHONE_ANOTHER'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_PHONE_ANOTHER_TITLE'),
			'VALUE' => [$this, 'getAnotherPhone'],
			'TYPE' => 'PHONE',
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['PHONE']['TYPE'] = 'PHONE';
		$this->fields['PHONE']['FORMAT'] = ['mfirst' => true,];
		$this->fields['PHONE']['VALUE'] = [$this, 'getClientPhone'];
		$this->fields['EMAIL']['FORMAT'] = ['mfirst' => true,];
		$this->fields['EMAIL']['VALUE'] = [$this, 'getClientEmail'];
		$this->fields['IMOL'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_IMOL_TITLE'),
		];
		$this->fields['WEB'] = [
			'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_COMPANY_WEB_TITLE'),
			'VALUE' => [$this, 'getClientWeb'],
			'FORMAT' => [
				'mfirst' => true,
			],
		];
		$this->fields['REVENUE']['TYPE'] = Money::class;
		$this->fields['REVENUE']['VALUE'] = [$this, 'getRevenue'];
		$this->fields['ADDRESS']['VALUE'] = [$this, 'getAddress'];
		$this->fields['ADDRESS']['TYPE'] = \Bitrix\Crm\Integration\DocumentGenerator\Value\Address::class;
		$this->fields['ADDRESS_LEGAL']['VALUE'] = [$this, 'getRegisteredAddress'];
		$this->fields['ADDRESS_LEGAL']['TYPE'] = \Bitrix\Crm\Integration\DocumentGenerator\Value\Address::class;
		if (!$this->isLightMode())
		{
			$this->fields['CONTACTS'] = [
				'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_DEAL_CONTACTS_TITLE'),
				'PROVIDER' => ArrayDataProvider::class,
				'OPTIONS' => [
					'ITEM_PROVIDER' => Contact::class,
					'ITEM_NAME' => 'CONTACT',
					'ITEM_TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_DEAL_CONTACT_TITLE'),
					'ITEM_OPTIONS' => [
						'DISABLE_MY_COMPANY' => true,
						'isLightMode' => true,
					],
				],
				'VALUE' => [$this, 'getContacts'],
			];
		}

		if($this->isMyCompany())
		{
			$myCompanyFields = $this->getMyCompanyFields();
			foreach($this->fields as $placeholder => $field)
			{
				if(isset($myCompanyFields[$placeholder]))
				{
					$this->fields[$placeholder] = array_merge($this->fields[$placeholder], $myCompanyFields[$placeholder]);
				}
			}
			$this->fields['REQUISITE']['TITLE'] = GetMessage('CRM_DOCGEN_DATAPROVIDER_MY_COMPANY_REQUISITE_TITLE');
			$this->fields['BANK_DETAIL']['TITLE'] = GetMessage('CRM_DOCGEN_DATAPROVIDER_MY_COMPANY_BANK_DETAIL_TITLE');
		}

		if($this->isMyCompany() || isset($this->getOptions()['DISABLE_MY_COMPANY']))
		{
			unset($this->fields['MY_COMPANY']);
			unset($this->fields['CLIENT_PHONE']);
			unset($this->fields['CLIENT_EMAIL']);
			unset($this->fields['CLIENT_WEB']);
		}

		unset($this->fields['COMPANY']);
		unset($this->fields['CONTACT']);
	}

	return $this->fields;
}