• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/taskservice.php
  • Класс: CBPTaskService
  • Вызов: CBPTaskService::delete
static function delete($id)
{
	global $DB;

	$id = intval($id);
	if ($id <= 0)
		throw new Exception("id");

	$removedUsers = $decremented = [];
	$dbRes = $DB->Query("SELECT USER_ID, STATUS FROM b_bp_task_user WHERE TASK_ID = ".intval($id)." ");
	while ($arRes = $dbRes->Fetch())
	{
		if ($arRes['STATUS'] == CBPTaskUserStatus::Waiting)
		{
			CUserCounter::Decrement($arRes["USER_ID"], 'bp_tasks', '**');
			$decremented[] = $arRes["USER_ID"];
		}
		$removedUsers[] = $arRes["USER_ID"];
	}
	$DB->Query("DELETE FROM b_bp_task_user WHERE TASK_ID = ".intval($id)." ", true);
	$DB->Query("DELETE FROM b_bp_task WHERE ID = ".intval($id)." ", true);

	self::onTaskChange(
		$id,
		[
			'USERS_REMOVED' => $removedUsers,
			'COUNTERS_DECREMENTED' => $decremented
		],
		CBPTaskChangedStatus::Delete
	);
	foreach (GetModuleEvents("bizproc", "OnTaskDelete", true) as $arEvent)
		ExecuteModuleEventEx($arEvent, array($id));
}