• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/helper/sort.php
  • Класс: BitrixTasksHelperSort
  • Вызов: Sort::getSortByStatus
private function getSortByStatus(int $taskId, array $taskIds, string $order): int
{
	if (empty($taskIds))
	{
		return 0;
	}

	$orderBy = '
		STATUS_COMPLETE ASC,
		T.DEADLINE ASC
	';
	if ($order === 'asc')
	{
		$orderBy = '
			STATUS_COMPLETE DESC,
			T.DEADLINE DESC
		';
	}

	$sql = "
		SELECT
			T.ID, 
			SRT.SORT,
		    CASE WHEN T.STATUS = '5' THEN '2' ELSE '1' END AS STATUS_COMPLETE
		FROM
			b_tasks T
		LEFT JOIN b_tasks_sorting SRT 
			ON SRT.TASK_ID = T.ID
		WHERE
			T.ID IN (".implode(',', $taskIds).")
		ORDER BY ". $orderBy ."
		LIMIT 2
	";
	$res = $this->db->Query($sql);

	while ($row = $res->fetch())
	{
		if ((int)$row['ID'] !== $taskId)
		{
			return (int) $row['ID'];
		}
	}

	return 0;
}