- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/effective.php
- Класс: BitrixTasksInternalsEffective
- Вызов: Effective::getViolationsCount
static function getViolationsCount(DateTime $dateFrom, DateTime $dateTo, $userId, $groupId)
{
$query = new Query(EffectiveTable::getEntity());
$query->setSelect([new EntityExpressionField('COUNT', 'COUNT(%s)', 'TASK_ID')]);
$query->registerRuntimeField('T', new EntityReferenceField(
'T',
TaskTable::getEntity(),
Join::on('this.TASK_ID', 'ref.ID'),
['join_type' => 'inner']
));
$query
->where(($userId? Query::filter()->where('USER_ID', $userId) : []))
->where(($groupId? Query::filter()->where('GROUP_ID', $groupId) : []))
->where('IS_VIOLATION', 'Y')
->where('T.RESPONSIBLE_ID', '>', 0)
->where(
Query::filter()
->where('DATETIME', '<=', $dateTo)
->where(
Query::filter()
->logic('or')
->where('DATETIME', '>=', $dateFrom)
->where('DATETIME_REPAIR', NULL)
->where('DATETIME_REPAIR', '>=', $dateFrom)
)
);
$count = $query->exec()->fetch();
return $count['COUNT'];
}