- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/effective.php
- Класс: BitrixTasksInternalsEffective
- Вызов: Effective::getEfficiencyForGraph
static function getEfficiencyForGraph(
DateTime $timeFrom = null,
Datetime $timeTo = null,
int $userId = 0,
int $groupId = 0,
string $groupBy = 'DATE'
)
{
if ($groupBy !== 'HOUR')
{
$groupBy = 'DATE';
}
$expressions = [
'EFFECTIVE' => new EntityExpressionField('EFFECTIVE', 'AVG(EFFECTIVE)'),
'DATE' => new EntityExpressionField('DATE', 'DATE(DATETIME)'),
'HOUR' => new EntityExpressionField('HOUR', 'DATE_FORMAT(DATETIME, "%%Y-%%m-%%d %%H:00:01")')
];
$select = [$expressions['EFFECTIVE'], $expressions[$groupBy]];
$group = [$groupBy];
$query = EffectiveTable::query();
$query->setSelect($select);
$query
->where('DATETIME', '>=', $timeFrom)
->where('DATETIME', '<=', $timeTo)
;
if ($userId)
{
$query->where('USER_ID', $userId);
$group[] = 'USER_ID';
}
if ($groupId)
{
$query->where('GROUP_ID', $groupId);
$group[] = 'GROUP_ID';
}
$query->setGroup($group);
return $query->exec()->fetchAll();
}