- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/effective.php
- Класс: BitrixTasksInternalsEffective
- Вызов: Effective::getAverageEfficiency
static function getAverageEfficiency(DateTime $dateFrom = null, DateTime $dateTo = null, $userId = 0, $groupId = 0)
{
if (!$dateFrom || !$dateTo)
{
// DO NOT USE DEFAULT FILTER FOR NOW
// $defaultFilterFieldsValues = static::getDefaultFilterFieldsValues($userId);
//
// $dateFrom = $defaultFilterFieldsValues['FROM'];
// $dateTo = $defaultFilterFieldsValues['TO'];
// $groupId = $defaultFilterFieldsValues['GROUP_ID'];
//
// // filter options probably were not set in b_user_options, anyway still haven't dates
// if (!$dateFrom || !$dateTo)
// {
// $datesRange = static::getDatesRange();
//
// $dateFrom = $datesRange['FROM'];
// $dateTo = $datesRange['TO'];
// }
$datesRange = static::getDatesRange();
$dateFrom = $datesRange['FROM'];
$dateTo = $datesRange['TO'];
}
$efficiency = 100;
$violations = static::getViolationsCount($dateFrom, $dateTo, $userId, $groupId);
$inProgress = static::getInProgressCount($dateFrom, $dateTo, $userId, $groupId);
if ($inProgress > 0)
{
$efficiency = (int)round(100 - ($violations / $inProgress) * 100);
}
else if ($violations > 0)
{
$efficiency = 0;
}
if ($efficiency < 0)
{
$efficiency = 0;
}
return $efficiency;
}