• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/tools/correction.php
  • Класс: BitrixImOpenLinesToolsCorrection
  • Вызов: Correction::setStatusClosedSessions
static function setStatusClosedSessions(bool $correction = true, int $limit = 0): array
{
	$result = [];

	$query = new ORMQueryQuery(SessionTable::getEntity());
	$query->setSelect([
		'ID',
		'CHECK_SESSION_ID' => 'CHECK.SESSION_ID'
	]);
	$query->setFilter([
		' Session::STATUS_CLOSE,
		'CLOSED' => 'Y'
	]);
	if (!empty($limit))
	{
		$query->setLimit($limit);
	}
	$sessionManager = $query->exec();

	while ($session = $sessionManager->fetch())
	{
		if ($correction)
		{
			$resultSessionUpdate = SessionTable::update($session['ID'], ['STATUS' => Session::STATUS_CLOSE]);

			if ($resultSessionUpdate->isSuccess())
			{
				if ($session['CHECK_SESSION_ID'] > 0)
				{
					SessionCheckTable::delete($session['CHECK_SESSION_ID']);
				}

				$result[] = (int)$session['ID'];
			}
		}
		else
		{
			$result[] = (int)$session['ID'];
		}
	}

	return $result;
}