• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/report/handler/customers/financialrating.php
  • Класс: Bitrix\Crm\Integration\Report\Handler\Customers\FinancialRating
  • Вызов: FinancialRating::preparePreviousWonAmountQuery
public function preparePreviousWonAmountQuery($entityType, array $entityId)
{
	$filterParameters = $this->getFilterParameters();
	$query = DealTable::query();
	$this->addToQueryFilterCase($query, $filterParameters);
	$this->addPreviousTimePeriodToQuery($query, $filterParameters['TIME_PERIOD']);
	$this->addPermissionsCheck($query);

	$query->addSelect(Query::expr()->sum("OPPORTUNITY_ACCOUNT"), "SUCCESS_AMOUNT");
	$query->addSelect(Query::expr()->count("ID"), "SUCCESS_COUNT");
	$query->where("STAGE_SEMANTIC_ID", PhaseSemantics::SUCCESS);

	if ($entityType === \CCrmOwnerType::ContactName)
	{
		$query->addSelect("CONTACT.ID", "OWNER_ID");
		$query->whereIn('CONTACT_ID', $entityId);
		$query->where(Query::filter()->logic('or')->where('COMPANY_ID', 0)->whereNull('COMPANY_ID'));
	}
	else if ($entityType === \CCrmOwnerType::CompanyName)
	{
		$query->addSelect("COMPANY.ID", "OWNER_ID");
		$query->whereIn('COMPANY_ID', $entityId);
	}
	else
	{
		throw new SystemException("Unknown entity type " . $entityType);
	}

	return $query;
}