static function GetFieldsInfo()
{
if(!self::$FIELD_INFOS)
{
self::$FIELD_INFOS = array(
'ID' => array(
'TYPE' => 'integer',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'TITLE' => array(
'TYPE' => 'string',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::Required)
),
'HONORIFIC' => array(
'TYPE' => 'crm_status',
'CRM_STATUS_TYPE' => 'HONORIFIC'
),
'NAME' => array(
'TYPE' => 'string'
),
'SECOND_NAME' => array(
'TYPE' => 'string'
),
'LAST_NAME' => array(
'TYPE' => 'string'
),
'BIRTHDATE' => array(
'TYPE' => 'date'
),
'BIRTHDAY_SORT' => array(
'TYPE' => 'integer',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::Hidden)
),
'COMPANY_TITLE' => array(
'TYPE' => 'string'
),
'SOURCE_ID' => array(
'TYPE' => 'crm_status',
'CRM_STATUS_TYPE' => 'SOURCE',
'ATTRIBUTES' => [CCrmFieldInfoAttr::HasDefaultValue],
),
'SOURCE_DESCRIPTION' => array(
'TYPE' => 'string'
),
'STATUS_ID' => array(
'TYPE' => 'crm_status',
'CRM_STATUS_TYPE' => 'STATUS',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::Progress)
),
'STATUS_DESCRIPTION' => array(
'TYPE' => 'string'
),
'STATUS_SEMANTIC_ID' => array(
'TYPE' => 'string',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'POST' => array(
'TYPE' => 'string'
),
'ADDRESS' => array(
'TYPE' => 'string'
),
'ADDRESS_2' => array(
'TYPE' => 'string'
),
'ADDRESS_CITY' => array(
'TYPE' => 'string'
),
'ADDRESS_POSTAL_CODE' => array(
'TYPE' => 'string'
),
'ADDRESS_REGION' => array(
'TYPE' => 'string'
),
'ADDRESS_PROVINCE' => array(
'TYPE' => 'string'
),
'ADDRESS_COUNTRY' => array(
'TYPE' => 'string'
),
'ADDRESS_COUNTRY_CODE' => array(
'TYPE' => 'string'
),
'ADDRESS_LOC_ADDR_ID' => array(
'TYPE' => 'integer'
),
'CURRENCY_ID' => array(
'TYPE' => 'crm_currency'
),
'OPPORTUNITY' => array(
'TYPE' => 'double'
),
'IS_MANUAL_OPPORTUNITY' => array(
'TYPE' => 'char'
),
'OPENED' => array(
'TYPE' => 'char'
),
'COMMENTS' => array(
'TYPE' => 'string',
'VALUE_TYPE' => 'html',
),
'HAS_PHONE' => array(
'TYPE' => 'char',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'HAS_EMAIL' => array(
'TYPE' => 'char',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'HAS_IMOL' => array(
'TYPE' => 'char',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'ASSIGNED_BY_ID' => array(
'TYPE' => 'user',
),
'CREATED_BY_ID' => array(
'TYPE' => 'user',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'MODIFY_BY_ID' => array(
'TYPE' => 'user',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'MOVED_BY_ID' => [
'TYPE' => 'user',
'ATTRIBUTES' => [CCrmFieldInfoAttr::ReadOnly],
],
'DATE_CREATE' => array(
'TYPE' => 'datetime',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'DATE_MODIFY' => array(
'TYPE' => 'datetime',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'MOVED_TIME' => [
'TYPE' => 'datetime',
'ATTRIBUTES' => [CCrmFieldInfoAttr::ReadOnly],
],
'COMPANY_ID' => array(
'TYPE' => 'crm_company',
'SETTINGS' => [
'parentEntityTypeId' => \CCrmOwnerType::Company,
],
),
'CONTACT_ID' => array(
'TYPE' => 'crm_contact',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::Deprecated)
),
'CONTACT_IDS' => array(
'TYPE' => 'crm_contact',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::Multiple)
),
'IS_RETURN_CUSTOMER' => array(
'TYPE' => 'char',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'DATE_CLOSED' => array(
'TYPE' => 'datetime',
'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)
),
'ORIGINATOR_ID' => array(
'TYPE' => 'string'
),
'ORIGIN_ID' => array(
'TYPE' => 'string'
),
/*'DISCOUNT_TYPE_ID' => array(
'TYPE' => 'integer'
),
'DISCOUNT_RATE' => array(
'TYPE' => 'double'
),
'DISCOUNT_SUM' => array(
'TYPE' => 'double'
)*/
);
// add utm fields
self::$FIELD_INFOS += UtmTable::getUtmFieldsInfo();
self::$FIELD_INFOS += Crm\Service\Container::getInstance()->getParentFieldManager()->getParentFieldsInfo(\CCrmOwnerType::Lead);
self::$FIELD_INFOS += self::getLastActivityAdapter()->getFieldsInfo();
}
return self::$FIELD_INFOS;
}