• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/internals/queue.php
  • Класс: Bitrix\Sender\Internals\Queue
  • Вызов: Queue::next
public function next()
{
	if (count($this->list) == 0)
	{
		return null;
	}

	$nextItem = null;
	$reservedItem = null;
	$list = $this->getStack();
	foreach ($list as $item)
	{
		if ($this->isUserCheckEnabled && !$this->checkUser($item))
		{
			continue;
		}

		if ($this->isWorkTimeCheckEnabled && !$this->checkUserWorkTime($item))
		{
			if (!$reservedItem)
			{
				$reservedItem = $item;
			}

			continue;
		}

		$nextItem = $item;
		break;
	}

	if (!$nextItem)
	{
		$nextItem = $reservedItem ? $reservedItem : $list[0];
	}

	$this->setLastItem($nextItem);

	if ($this->isAutoSaveEnabled)
	{
		$this->save();
	}

	return $nextItem;
}