public function getFields()
{
if($this->fields === null)
{
parent::getFields();
$this->fields['HONORIFIC_NAME'] = [
'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_CONTACT_HONORIFIC_TITLE'),
'VALUE' => [$this, 'getHonorificName'],
];
$this->fields['FORMATTED_NAME'] = [
'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_FORMATTED_NAME_TITLE'),
'VALUE' => [$this, 'getFormattedName'],
];
$this->fields['ADDRESS']['VALUE'] = [$this, 'getAddress'];
$this->fields['ADDRESS']['TYPE'] = \Bitrix\Crm\Integration\DocumentGenerator\Value\Address::class;
$this->fields['TYPE'] = ['TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_CONTACT_TYPE_TITLE'),];
$this->fields['SOURCE'] = ['TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_CONTACT_SOURCE_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['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['EMAIL_ANOTHER'] = [
'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_EMAIL_ANOTHER_TITLE'),
'VALUE' => [$this, 'getAnotherEmail'],
'FORMAT' => [
'mfirst' => true,
],
];
$this->fields['IMOL'] = [
'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_IMOL_TITLE'),
'VALUE' => [$this, 'getClientIm'],
'FORMAT' => [
'mfirst' => true,
],
];
$this->fields['NAME']['VALUE'] = [$this, 'getNameData'];
$this->fields['NAME']['TYPE'] = static::FIELD_TYPE_NAME;
$this->fields['NAME']['FORMAT'] = ['format' => '#NAME#'];
$this->fields['SECOND_NAME']['VALUE'] = [$this, 'getNameData'];
$this->fields['SECOND_NAME']['TYPE'] = static::FIELD_TYPE_NAME;
$this->fields['SECOND_NAME']['FORMAT'] = ['format' => '#SECOND_NAME#'];
$this->fields['LAST_NAME']['VALUE'] = [$this, 'getNameData'];
$this->fields['LAST_NAME']['TYPE'] = static::FIELD_TYPE_NAME;
$this->fields['LAST_NAME']['FORMAT'] = ['format' => '#LAST_NAME#'];
$this->fields['PHOTO']['TITLE'] = GetMessage('CRM_DOCGEN_DATAPROVIDER_PHOTO_TITLE');
$this->fields['PHOTO']['TYPE'] = static::FIELD_TYPE_IMAGE;
$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'];
if (!$this->isLightMode())
{
$this->fields['COMPANIES'] = [
'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_COMPANIES_TITLE'),
'PROVIDER' => ArrayDataProvider::class,
'OPTIONS' => [
'ITEM_PROVIDER' => Company::class,
'ITEM_NAME' => 'COMPANY',
'ITEM_TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_COMPANY_TITLE'),
'ITEM_OPTIONS' => [
'DISABLE_MY_COMPANY' => true,
'isLightMode' => true,
],
],
'VALUE' => [$this, 'getCompanies'],
];
}
$this->fields['BIRTHDATE']['TITLE'] = GetMessage('CRM_DOCGEN_DATAPROVIDER_BIRTHDATE_TITLE');
if(isset($this->getOptions()['DISABLE_MY_COMPANY']))
{
unset($this->fields['MY_COMPANY']);
}
unset($this->fields['COMPANY']);
unset($this->fields['CONTACT']);
}
return $this->fields;
}