• Модуль: 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'
			]
		]
	];
}