CBPTaskService :: Add: Bitrix method

      
<?php 
//  CBPTaskService :: Add()
//  /dist/bitrix/modules/bizproc/classes/mysql/taskservice.php:12

    
public static function Add($arFields)
    {
        global 
$DB;

        
self::ParseFields($arFields0);

        
$arInsert $DB->PrepareInsert("b_bp_task"$arFields);

        
$strSql =
            
"INSERT INTO b_bp_task (".$arInsert[0].", MODIFIED) ".
            
"VALUES(".$arInsert[1].", ".$DB->CurrentTimeFunction().")";
        
$DB->Query($strSqlFalse"File: ".__FILE__."<br>Line: ".__LINE__);

        
$taskId intval($DB->LastID());

        if (
$taskId 0)
        {
            
$ar = array();
            foreach (
$arFields["USERS"] as $userId)
            {
                
$userId intval($userId);
                if (
in_array($userId$ar))
                    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''**');

                
$ar[] = $userId;
            }

            
self::onTaskChange($taskId$arFieldsCBPTaskChangedStatus::Add);

            foreach (
GetModuleEvents("bizproc""OnTaskAdd"true) as $arEvent)
                
ExecuteModuleEventEx($arEvent, array($taskId$arFields));
        }

        return 
$taskId;
    }