• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_event.php
  • Класс: \CCrmEvent
  • Вызов: CCrmEvent::Add
public function Add($arFields, $bPermCheck = true)
{
	$err_mess = (self::err_mess()).'
Function: Add
Line: '; $db_events = GetModuleEvents('crm', 'OnBeforeCrmAddEvent'); while($arEvent = $db_events->Fetch()) $arFields = ExecuteModuleEventEx($arEvent, array($arFields)); if (isset($arFields['ENTITY']) && is_array($arFields['ENTITY'])) { foreach($arFields['ENTITY'] as $key => $arEntity) if (!(isset($arEntity['ENTITY_TYPE']) && isset($arEntity['ENTITY_ID']))) unset($arEntity['ENTITY'][$key]); } else if (isset($arFields['ENTITY_TYPE']) && isset($arFields['ENTITY_ID'])) { $arFields['ENTITY'] = array( array( 'ENTITY_TYPE' => $arFields['ENTITY_TYPE'], 'ENTITY_ID' => $arFields['ENTITY_ID'], 'ENTITY_FIELD' => isset($arFields['ENTITY_FIELD']) ? $arFields['ENTITY_FIELD'] : '', 'USER_ID' => (int)(isset($arFields['USER_ID']) ? intval($arFields['USER_ID']) : $this->currentUserID) ) ); } else return false; if (isset($arFields['EVENT_ID'])) { $CCrmStatus = new CCrmStatus('EVENT_TYPE'); $ar = $CCrmStatus->GetStatusByStatusId($arFields['EVENT_ID']); $arFields['EVENT_NAME'] = isset($ar['NAME'])? $ar['NAME']: ''; } if (!$this->CheckFields($arFields)) return false; if (!isset($arFields['EVENT_TYPE'])) $arFields['EVENT_TYPE'] = 0; $arFiles = Array(); if (isset($arFields['FILES']) && !empty($arFields['FILES'])) { $arFields['~FILES'] = Array(); if (isset($arFields['FILES'][0])) $arFields['~FILES'] = $arFields['FILES']; else { foreach($arFields['FILES'] as $type => $ar) foreach($ar as $key => $value) $arFields['~FILES'][$key][$type] = $value; } foreach($arFields['~FILES'] as &$arFile) { $arFile['del'] = 'N'; $arFile['MODULE_ID'] = 'crm'; $fid = intval(CFile::SaveFile($arFile, 'crm')); if ($fid > 0) { $arFiles[] = $fid; } } unset($arFile); } $arFields_i = Array( 'ASSIGNED_BY_ID'=> (int)(isset($arFields['USER_ID']) ? intval($arFields['USER_ID']) : $this->currentUserID), 'CREATED_BY_ID' => (int)(isset($arFields['USER_ID']) ? intval($arFields['USER_ID']) : $this->currentUserID), 'EVENT_ID' => isset($arFields['EVENT_ID'])? $arFields['EVENT_ID']: '', 'EVENT_NAME' => $arFields['EVENT_NAME'], 'EVENT_TYPE' => intval($arFields['EVENT_TYPE']), 'EVENT_TEXT_1' => isset($arFields['EVENT_TEXT_1'])? $arFields['EVENT_TEXT_1']: '', 'EVENT_TEXT_2' => isset($arFields['EVENT_TEXT_2'])? $arFields['EVENT_TEXT_2']: '', 'FILES' => null, ); if (count($arFiles) > 0) { $arFields_i['FILES'] = serialize($arFiles); } //Validate DATE_CREATE if (isset($arFields['DATE_CREATE'])) { $sqlTime = CDatabase::FormatDate($arFields['DATE_CREATE'], CLang::GetDateFormat('FULL', false), 'YYYY-MM-DD HH:MI:SS'); if (!(is_string($sqlTime) && $sqlTime !== '')) { unset($arFields['DATE_CREATE']); } } if (isset($arFields['DATE_CREATE'])) { $arFields_i['DATE_CREATE'] = $arFields['DATE_CREATE']; } else { $arFields_i['~DATE_CREATE'] = $this->cdb->GetNowFunction(); } $EVENT_ID = $this->cdb->Add('b_crm_event', $arFields_i, array("FILES"), 'FILE: '.__FILE__.'
LINE: '.__LINE__); $this->AddRelation($EVENT_ID, $arFields['ENTITY'], $bPermCheck); $db_events = GetModuleEvents('crm', 'OnAfterCrmAddEvent'); while($arEvent = $db_events->Fetch()) ExecuteModuleEventEx($arEvent, array($EVENT_ID, $arFields)); return $EVENT_ID; }