...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/communicationstatistics.php
- Класс: Bitrix\Crm\Activity\CommunicationStatistics
- Вызов: CommunicationStatistics::getActivities
static function getActivities($ownerTypeId, array $ownerIds, $activity) { if (count($ownerIds) <= 0) return array(); $date = static::getDeadline($activity); $startTime = new DateTime($date->format(DateTime::getFormat())); $endTime = new DateTime($date->format(DateTime::getFormat())); $endTime->setTime(23, 59, 59); $provider = \CCrmActivity::GetActivityProvider($activity); $filter = array( '>=DEADLINE' => $startTime, '<=DEADLINE' => $endTime, '=BINDINGS.OWNER_TYPE_ID' => $ownerTypeId, '@BINDINGS.OWNER_ID' => $ownerIds, ); $typeId = \CCrmActivity::GetActivityType($activity); if ($typeId !== \CCrmActivityType::Provider) $filter['=TYPE_ID'] = $typeId; else { $filter['=PROVIDER_ID'] = $provider::getId(); $filter['=PROVIDER_TYPE_ID'] = $provider::getTypeId($activity); } \CTimeZone::Disable(); $activitiesList = Crm\ActivityTable::getList(array( 'select' => array( 'ID', 'TYPE_ID', 'PROVIDER_ID', 'PROVIDER_TYPE_ID', 'COMPLETED', 'B_OWNER_ID' => 'BINDINGS.OWNER_ID', 'RESULT_STATUS', 'RESULT_SOURCE_ID', 'RESULT_MARK', 'RESULT_STREAM', 'RESULT_VALUE', 'RESULT_SUM', 'RESULT_CURRENCY_ID' ), 'filter' => $filter )); \CTimeZone::Enable(); $result = array(); if ($activitiesList) { while($activity = $activitiesList->fetch()) { if (!isset($result[$activity['B_OWNER_ID']])) $result[$activity['B_OWNER_ID']] = array(); $result[$activity['B_OWNER_ID']][] = $activity; } } return $result; }