• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/taskservice.php
  • Класс: CBPTaskService
  • Вызов: CBPTaskService::markCompleted
public function markCompleted($taskId, $userId, $status = CBPTaskUserStatus::Ok)
{
	global $DB;

	$taskId = (int)$taskId;
	if ($taskId <= 0)
		throw new Exception("id");
	$userId = (int)$userId;
	if ($userId <= 0)
		throw new Exception("userId");
	$status = (int)$status;

	$DB->Query("UPDATE b_bp_task_user SET STATUS = ".$status.", DATE_UPDATE = ".$DB->CurrentTimeFunction()." WHERE TASK_ID = ".$taskId." AND USER_ID = ".$userId, true);

	CUserCounter::Decrement($userId, 'bp_tasks', '**');

	self::onTaskChange(
		$taskId,
		[
			'USERS_STATUSES' => [$userId => $status],
			'COUNTERS_DECREMENTED' => [$userId]
		],
		CBPTaskChangedStatus::Update
	);
	foreach (GetModuleEvents("bizproc", "OnTaskMarkCompleted", true) as $arEvent)
	{
		ExecuteModuleEventEx($arEvent, array($taskId, $userId, $status));
	}
}