コード例 #1
0
ファイル: crm_event.php プロジェクト: DarneoStudio/bitrix
 public function Add($arFields, $bPermCheck = true)
 {
     $err_mess = self::err_mess() . '<br />Function: Add<br />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'] : ''));
         } 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' => serialize($arFiles));
     if (isset($arFields['DATE_CREATE']) && !empty($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__ . '<br /> 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;
 }