...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/statistics/contactactivitystatusstatisticentry.php
- Класс: Bitrix\Crm\Statistics\ContactActivityStatusStatisticEntry
- Вызов: ContactActivityStatusStatisticEntry::prepareTimeline
static function prepareTimeline($ownerID) { if(!is_int($ownerID)) { $ownerID = (int)$ownerID; } if($ownerID <= 0) { throw new Main\ArgumentException('Owner ID must be greater than zero.', 'ownerID'); } $query = new Query(Crm\ActivityTable::getEntity()); $connection = Main\Application::getConnection(); if($connection instanceof Main\DB\MysqlCommonConnection) { $query->registerRuntimeField('', new ExpressionField('DEADLINE_DATE', 'DATE(DEADLINE)')); } elseif($connection instanceof Main\DB\MssqlConnection) { $query->registerRuntimeField('', new ExpressionField('DEADLINE_DATE', 'CAST(FLOOR(CAST(DEADLINE AS FLOAT)) AS DATETIME)')); } elseif($connection instanceof Main\DB\OracleConnection) { $query->registerRuntimeField('', new ExpressionField('DEADLINE_DATE', 'TRUNC(DEADLINE)')); } $query->addSelect('DEADLINE_DATE'); $query->addGroup('DEADLINE_DATE'); $subQuery = new Query(Crm\ActivityBindingTable::getEntity()); $subQuery->addSelect('ACTIVITY_ID'); $subQuery->addFilter('=OWNER_TYPE_ID', \CCrmOwnerType::Contact); $subQuery->addFilter('=OWNER_ID', $ownerID); $query->registerRuntimeField('', new ReferenceField('B', Base::getInstanceByQuery($subQuery), array('=this.ID' => 'ref.ACTIVITY_ID'), array('join_type' => 'INNER') ) ); $dbResult = $query->exec(); $dates = array(); while($fieilds = $dbResult->fetch()) { $dates[] = $fieilds['DEADLINE_DATE']; } return $dates; }