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