• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_entry.php
  • Класс: CAllTimeManEntry
  • Вызов: CAllTimeManEntry::Update
static function Update($id, $arFields)
{
	global $DB, $USER;

	if ($id <= 0)
	{
		return false;
	}

	$arFields['ID'] = $id;

	$e = GetModuleEvents('timeman', 'OnBeforeTMEntryUpdate');
	while ($a = $e->Fetch())
	{
		if (false === ExecuteModuleEventEx($a, [$arFields]))
		{
			return false;
		}
	}

	if (!self::CheckFields('UPDATE', $arFields))
	{
		return false;
	}

	$strUpdate = $DB->PrepareUpdate('b_timeman_entries', $arFields);
	$query = 'UPDATE b_timeman_entries SET ' . $strUpdate . ' WHERE ID='' . intval($id) . ''';

	if ($strUpdate)
	{
		$arBind = [];
		if (isset($arFields['TASKS']))
		{
			$arBind = ['TASKS' => $arFields['TASKS']];
		}
		$DB->QueryBind($query, $arBind);

		if (isset($arFields['REPORTS']) && is_array($arFields['REPORTS']))
		{
			foreach ($arFields['REPORTS'] as $report)
			{
				$report['ENTRY_ID'] = $id;
				$report['USER_ID'] = $USER->GetID(); // we need CURRENT user in this field

				CTimeManReport::Add($report);
			}
		}

		$e = GetModuleEvents('timeman', 'OnAfterTMEntryUpdate');
		while ($a = $e->Fetch())
		{
			ExecuteModuleEventEx($a, [$id, $arFields]);
		}

		return $id;
	}

	return false;
}