...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/communicationstatistics.php
- Класс: Bitrix\Crm\Activity\CommunicationStatistics
- Вызов: CommunicationStatistics::getDataForRebuild
static function getDataForRebuild($ownerTypeId, array $ownerIds) { $filter = array( '=BINDINGS.OWNER_TYPE_ID' => $ownerTypeId, '@BINDINGS.OWNER_ID' => $ownerIds, ); \CTimeZone::Disable(); $activitiesList = Crm\ActivityTable::getList(array( 'select' => array( 'ID', 'TYPE_ID', 'PROVIDER_ID', 'PROVIDER_TYPE_ID', 'B_OWNER_ID' => 'BINDINGS.OWNER_ID', 'COMPLETED', 'DEADLINE', 'RESULT_STATUS', 'RESULT_SOURCE_ID', 'RESULT_MARK', 'RESULT_STREAM', 'RESULT_VALUE', 'RESULT_SUM', 'RESULT_CURRENCY_ID' ), 'filter' => $filter )); \CTimeZone::Enable(); $data = array(); while ($activity = $activitiesList->fetch()) { $provider = \CCrmActivity::GetActivityProvider($activity); if (!$provider || !$activity['DEADLINE']) continue; $date = $activity['DEADLINE']->format('Y-m-d'); $providerId = $provider::getId(); $typeId = $provider::getTypeId($activity); $ownerId = (int)$activity['B_OWNER_ID']; if ($ownerId <= 0) continue; if (!isset($data[$providerId])) $data[$providerId] = array(); if (!isset($data[$providerId][$typeId])) $data[$providerId][$typeId] = array(); if (!isset($data[$providerId][$typeId][$ownerId])) $data[$providerId][$typeId][$ownerId] = array(); if (!isset($data[$providerId][$typeId][$ownerId][$date])) $data[$providerId][$typeId][$ownerId][$date] = array(); $data[$providerId][$typeId][$ownerId][$date][] = $activity; } return $data; }