- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/classes/general/taskservice.php
- Класс: CBPTaskService
- Вызов: CBPTaskService::add
static function add($arFields)
{
global $DB;
self::ParseFields($arFields, 0);
$arInsert = $DB->PrepareInsert("b_bp_task", $arFields);
$strSql =
"INSERT INTO b_bp_task (".$arInsert[0].", MODIFIED) ".
"VALUES(".$arInsert[1].", ".$DB->CurrentTimeFunction().")";
$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__);
$taskId = intval($DB->LastID());
if ($taskId > 0)
{
$users = [];
foreach ($arFields["USERS"] as $userId)
{
$userId = intval($userId);
if (in_array($userId, $users))
continue;
$DB->Query(
"INSERT INTO b_bp_task_user (USER_ID, TASK_ID, ORIGINAL_USER_ID) ".
"VALUES (".intval($userId).", ".intval($taskId).", ".intval($userId).") "
);
CUserCounter::Increment($userId, 'bp_tasks', '**');
$users[] = $userId;
}
$arFields['COUNTERS_INCREMENTED'] = $users;
self::onTaskChange($taskId, $arFields, CBPTaskChangedStatus::Add);
foreach (GetModuleEvents("bizproc", "OnTaskAdd", true) as $arEvent)
ExecuteModuleEventEx($arEvent, array($taskId, $arFields));
}
return $taskId;
}