- Модуль: 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));
}
}