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;
}