• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/effective.php
  • Класс: BitrixTasksInternalsEffective
  • Вызов: Effective::agent
static function agent($date = '')
{
	$date = ($date? new DateTime($date, 'Y-m-d') : new DateTime());

	$sql = "
		SELECT DISTINCT 
		   ef1.USER_ID 
		FROM 
		   b_tasks_effective ef1
		WHERE 
		   NOT EXISTS (
		    SELECT ef2.ID FROM b_tasks_effective ef2 
		    WHERE 
		      ef2.DATETIME > '".$date->format('Y-m-d')." 00:00:00' AND 
		      ef2.DATETIME <= '".$date->format('Y-m-d')." 23:59:59' AND 
		      ef2.USER_ID = ef1.USER_ID 
			)
	";
	$users = Application::getConnection()->query($sql)->fetchAll();

	if (!empty($users))
	{
		foreach ($users as $user)
		{
			$userId = $user['USER_ID'];

			EffectiveTable::add([
				'DATETIME' => $date,
				'USER_ID' => $userId,
				'USER_TYPE' => '',
				'GROUP_ID' => 0,
				'EFFECTIVE' => static::getEfficiencyForNow($userId),
				'TASK_ID' => '',
				'IS_VIOLATION' => 'N'
			]);
		}
	}

	$date->addDay(1);

	return 'BitrixTasksInternalsEffective::agent("'.$date->format('Y-m-d').'");';
}