public function prepareFields()
{
$result = [
'ID' => $this->createField('ID'),
'TITLE' => $this->createField(
'TITLE',
[
'default' => true,
'data' => [
'additionalFilter' => [
'isEmpty',
'hasAnyValue',
],
],
]
),
'DATE_CREATE' => $this->createField(
'DATE_CREATE',
[
'type' => 'date',
'data' => [
'additionalFilter' => [
'isEmpty',
'hasAnyValue',
],
],
]
),
'DATE_MODIFY' => $this->createField(
'DATE_MODIFY',
[
'type' => 'date',
'data' => [
'additionalFilter' => [
'isEmpty',
'hasAnyValue',
],
],
]
),
'CREATED_BY_ID' => $this->createField(
'CREATED_BY_ID',
[
'type' => 'entity_selector',
'partial' => true,
]
),
'MODIFY_BY_ID' => $this->createField(
'MODIFY_BY_ID',
[
'type' => 'entity_selector',
'partial' => true,
]
),
'ACTIVITY_COUNTER' => $this->createField(
'ACTIVITY_COUNTER',
[
'type' => 'list',
'partial' => true
]
),
'COMMUNICATION_TYPE' => $this->createField(
'COMMUNICATION_TYPE',
[
'type' => 'list',
'partial' => true
]
),
'HAS_PHONE' => $this->createField(
'HAS_PHONE',
[
'type' => 'checkbox'
]
),
'PHONE' => $this->createField(
'PHONE',
[
'default' => true
]
),
'HAS_EMAIL' => $this->createField(
'HAS_EMAIL',
[
'type' => 'checkbox'
]
),
'EMAIL' => $this->createField(
'EMAIL',
[
'default' => true
]
),
'WEB' => $this->createField('WEB'),
'IM' => $this->createField('IM'),
'COMPANY_TYPE' => $this->createField(
'COMPANY_TYPE',
[
'type' => 'list',
'partial' => true
]
),
'INDUSTRY' => $this->createField(
'INDUSTRY',
[
'type' => 'list',
'partial' => true
]
),
'REVENUE' => $this->createField(
'REVENUE',
[
'type' => 'number',
'data' => [
'additionalFilter' => [
'isEmpty',
'hasAnyValue',
],
],
]
),
'CURRENCY_ID' => $this->createField(
'CURRENCY_ID',
[
'type' => 'list',
'partial' => true
]
),
'EMPLOYEES' => $this->createField(
'EMPLOYEES',
[
'type' => 'list',
'partial' => true
]
),
'COMMENTS' => $this->createField(
'COMMENTS',
[
'data' => [
'additionalFilter' => [
'isEmpty',
'hasAnyValue',
],
],
]
),
'ASSIGNED_BY_ID' => $this->createField(
'ASSIGNED_BY_ID',
[
'type' => 'entity_selector',
'default' => true,
'partial' => true,
]
)
];
if ($this->isActivityResponsibleEnabled())
{
$result['ACTIVITY_RESPONSIBLE_IDS'] = $this->createField(
'ACTIVITY_RESPONSIBLE_IDS',
[
'type' => 'entity_selector',
'partial' => true,
]
);
}
if($this->settings->checkFlag(CompanySettings::FLAG_ENABLE_ADDRESS))
{
$addressLabels = EntityAddress::getShortLabels();
$result += [
'ADDRESS' => $this->createField(
'ADDRESS',
[
'name' => $addressLabels['ADDRESS']
]
),
'ADDRESS_2' => $this->createField(
'ADDRESS_2',
[
'name' => $addressLabels['ADDRESS_2']
]
),
'ADDRESS_CITY' => $this->createField(
'ADDRESS_CITY',
[
'name' => $addressLabels['CITY']
]
),
'ADDRESS_REGION' => $this->createField(
'ADDRESS_REGION',
[
'name' => $addressLabels['REGION']
]
),
'ADDRESS_PROVINCE' => $this->createField(
'ADDRESS_PROVINCE',
[
'name' => $addressLabels['PROVINCE']
]
),
'ADDRESS_POSTAL_CODE' => $this->createField(
'ADDRESS_POSTAL_CODE',
[
'name' => $addressLabels['POSTAL_CODE']
]
),
'ADDRESS_COUNTRY' => $this->createField(
'ADDRESS_COUNTRY',
[
'name' => $addressLabels['COUNTRY']
]
)
];
$regAddressLabels = EntityAddress::getShortLabels(Crm\EntityAddressType::Registered);
$result += [
'ADDRESS_LEGAL' => $this->createField(
'ADDRESS_LEGAL',
[
'name' => $regAddressLabels['ADDRESS']
]
),
'REG_ADDRESS_2' => $this->createField(
'REG_ADDRESS_2',
[
'name' => $regAddressLabels['ADDRESS_2']
]
),
'REG_ADDRESS_CITY' => $this->createField(
'REG_ADDRESS_CITY',
[
'name' => $regAddressLabels['CITY']
]
),
'REG_ADDRESS_REGION' => $this->createField(
'REG_ADDRESS_REGION',
[
'name' => $regAddressLabels['REGION']
]
),
'REG_ADDRESS_PROVINCE' => $this->createField(
'REG_ADDRESS_PROVINCE',
[
'name' => $regAddressLabels['PROVINCE']
]
),
'REG_ADDRESS_POSTAL_CODE' => $this->createField(
'REG_ADDRESS_POSTAL_CODE',
[
'name' => $regAddressLabels['POSTAL_CODE']
]
),
'REG_ADDRESS_COUNTRY' => $this->createField(
'REG_ADDRESS_COUNTRY',
[
'name' => $regAddressLabels['COUNTRY']
]
)
];
}
$result += [
'WEBFORM_ID' => $this->createField(
'WEBFORM_ID',
[
'type' => 'entity_selector',
'partial' => true
]
),
'ORIGINATOR_ID' => $this->createField(
'ORIGINATOR_ID',
[
'type' => 'list',
'partial' => true
]
),
];
if ($this->factory && $this->factory->isLastActivityEnabled())
{
$result['LAST_ACTIVITY_TIME'] = $this->createField(
'LAST_ACTIVITY_TIME',
[
'type' => 'date',
'partial' => true,
]
);
}
Crm\Tracking\UI\Filter::appendFields($result, $this);
//region UTM
foreach (Crm\UtmTable::getCodeNames() as $code => $name)
{
$result[$code] = $this->createField(
$code,
[
'name' => $name,
'data' => [
'additionalFilter' => [
'isEmpty',
'hasAnyValue',
],
],
]
);
}
//endregion
$parentFields = Container::getInstance()
->getParentFieldManager()
->getParentFieldsOptionsForFilterProvider(\CCrmOwnerType::Company)
;
foreach ($parentFields as $code => $parentField)
{
$result[$code] = $this->createField($code, $parentField);
}
return $result;
}