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