• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_user.php
  • Класс: CTimeManUser
  • Вызов: CTimeManUser::TaskActions
public function TaskActions($arActions, $site_id = SITE_ID)
{
	if (
	($last_entry = $this->_GetLastData())
		//&& $this->isDayOpen()
		//&& !$this->isDayExpired()
	)
	{
		$this->SITE_ID = $site_id;
		$arTasks = $last_entry['TASKS'];

		if (!is_array($arTasks))
		{
			$arTasks = [];
		}

		if ($arActions['name'] <> '')
		{
			$obt = new CTasks();
			if ($ID = $obt->Add([
				'RESPONSIBLE_ID' => $this->USER_ID,
				'TITLE' => $arActions['name'],
				'TAGS' => [],
				'STATUS' => 2,
				'SITE_ID' => $this->SITE_ID,
			]))
			{
				if (!is_array($arActions['add']))
				{
					$arActions['add'] = [$ID];
				}
				else
				{
					$arActions['add'][] = $ID;
				}
			}
		}

		if (is_array($arActions['add']))
		{
			foreach ($arActions['add'] as $task_id)
			{
				$arTasks[] = intval($task_id);
			}

			$GLOBALS['BX_TIMEMAN_RECENTLY_ADDED_TASK_ID'] = $task_id;
		}

		$arTasks = array_unique($arTasks);

		if (is_array($arActions['remove']))
		{
			$arActions['remove'] = array_unique($arActions['remove']);

			foreach ($arActions['remove'] as $task_id)
			{
				$task_id = intval($task_id);

				if (false !== ($key = array_search($task_id, $arTasks)))
				{
					unset($arTasks[$key]);
				}
			}
		}

		$arFields = ['TASKS' => []];

		if (count($arTasks) > 0)
		{
			$arCheck = $this->GetTasks($arTasks);
			foreach ($arCheck as $a)
			{
				$arFields['TASKS'][] = $a['ID'];
			}
		}

		if (CTimeManEntry::Update($last_entry['ID'], $arFields))
		{
			return $this->_GetLastData(true);
		}
	}

	return false;
}