- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/report/handler/customers/regularcustomersgrid.php
- Класс: Bitrix\Crm\Integration\Report\Handler\Customers\RegularCustomersGrid
- Вызов: RegularCustomersGrid::prepareEntityListFilter
public function prepareEntityListFilter($requestParameters)
{
$filterParameters = $this->getFilterParameters();
$query = DealTable::query();
$query->addSelect('ID');
$ownerType = $requestParameters['OWNER_TYPE'];
$ownerId = $requestParameters['OWNER_ID'];
if($ownerType === \CCrmOwnerType::CompanyName)
{
$query->where('COMPANY_ID', $ownerId);
}
else
{
$query->where('CONTACT_ID', $ownerId);
$query->where(Query::filter()->logic('or')->where('COMPANY_ID', 0)->whereNull('COMPANY_ID'));
}
$this->addToQueryFilterCase($query, $filterParameters);
$this->addTimePeriodToQuery($query, $filterParameters['TIME_PERIOD']);
foreach ($requestParameters as $parameter => $value)
{
switch ($parameter)
{
case 'STAGE_SEMANTIC_ID':
$query->where($parameter, $value);
break;
}
}
return [
'__JOINS' => [
[
'TYPE' => 'INNER',
'SQL' => 'INNER JOIN('.$query->getQuery().') REP ON REP.ID = L.ID'
]
]
];
}