- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
- Класс: \CCrmReportHelper
- Вызов: CCrmReportHelper::fillFilterReferenceColumn
static function fillFilterReferenceColumn(&$filterElement, Main\Entity\ReferenceField $field)
{
if (
$field->getRefEntityName() === '\Bitrix\Crm\Company'
|| $field->getRefEntityName() === '\Bitrix\Crm\CompanyTable'
)
{
// CrmCompany
if ($filterElement['value'])
{
$entity = CCrmCompany::GetById($filterElement['value']);
if ($entity)
{
$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['TITLE']);
}
else
{
$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_COMPANY_NOT_FOUND'));
}
}
else
{
$filterElement['value'] = array('id' => '');
}
}
elseif (
$field->getRefEntityName() == '\Bitrix\Crm\Contact'
|| $field->getRefEntityName() == '\Bitrix\Crm\ContactTable'
)
{
// CrmContact
if ($filterElement['value'])
{
$entity = CCrmContact::GetById($filterElement['value']);
if ($entity)
{
$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['FULL_NAME']);
}
else
{
$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_CONTACT_NOT_FOUND'));
}
}
else
{
$filterElement['value'] = array('id' => '');
}
}
elseif ($field->getRefEntityName() == '\Bitrix\Crm\Invoice')
{
// CrmInvoice
if ($filterElement['value'])
{
$entity = CCrmInvoice::GetById($filterElement['value']);
if ($entity)
{
$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['ORDER_TOPIC']);
}
else
{
$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_INVOICE_NOT_FOUND'));
}
}
else
{
$filterElement['value'] = array('id' => '');
}
}
elseif ($field->getRefEntityName() == '\Bitrix\Crm\Deal')
{
// CrmDeal
if ($filterElement['value'])
{
$entity = CCrmDeal::GetById($filterElement['value']);
if ($entity)
{
$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['TITLE']);
}
else
{
$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_DEAL_NOT_FOUND'));
}
}
else
{
$filterElement['value'] = array('id' => '');
}
}
elseif ($field->getRefEntityName() == '\Bitrix\Crm\Lead')
{
// CrmLead
if ($filterElement['value'])
{
$entity = CCrmLead::GetById($filterElement['value']);
if ($entity)
{
$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['TITLE']);
}
else
{
$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_LEAD_NOT_FOUND'));
}
}
else
{
$filterElement['value'] = array('id' => '');
}
}
parent::fillFilterReferenceColumn($filterElement, $field);
}