- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/uncompletedactivity.php
- Класс: Bitrix\Crm\Activity\UncompletedActivity
- Вызов: UncompletedActivity::getUncompletedActivity
private function getUncompletedActivity(): ?array
{
$filter = $this->prepareUncompletedActivityFilter();
$explicitDeadlineFilter = $filter;
$explicitDeadlineFilter['!=DEADLINE'] = null;
$firstUncompletedActivityWithExplicitDeadline = \CCrmActivity::GetList(
[
'DEADLINE' => 'ASC',
],
$explicitDeadlineFilter,
false,
['nTopCount' => 1],
[
'ID',
'DEADLINE'
]
)->Fetch();
if ($firstUncompletedActivityWithExplicitDeadline)
{
return $firstUncompletedActivityWithExplicitDeadline;
}
/*
* at this point there are either activities with DEADLINE === null or no activities at all.
* if an activity has DEADLINE === null, it's essentially means that its deadline is \CCrmDateTimeHelper::GetMaxDatabaseDate().
* so simply fetch the most recent activity, if it exists. DEADLINE for all of them is going be the same.
*/
$lastUncompletedActivity = \CCrmActivity::GetList(
[
'CREATED' => 'DESC',
],
$filter,
false,
['nTopCount' => 1],
[
'ID',
'DEADLINE'
]
)->Fetch();
return $lastUncompletedActivity ? $lastUncompletedActivity : null;
}