CCrmEvent::Delete

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmEvent
  4. Delete
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_event.php
  • Класс: \CCrmEvent
  • Вызов: CCrmEvent::Delete
public function Delete($ID, $arOptions = array())
{
	global $USER;

	if(isset($arOptions['CURRENT_USER']))
	{
		$iUserId = intval($arOptions['CURRENT_USER']);
	}
	else
	{
		$iUserId = $USER->GetId();
	}

	$err_mess = (self::err_mess()).'
Function: Delete
Line: '; $ID = intval($ID); $db_events = GetModuleEvents('crm', 'OnBeforeCrmEventDelete'); while($arEvent = $db_events->Fetch()) ExecuteModuleEventEx($arEvent, array($ID)); // if not admin - delete only self items if (!CCrmPerms::IsAdmin($iUserId)) { $sql = "SELECT CER.ID FROM b_crm_event_relations CER, b_crm_event CE WHERE CE.ID = CER.EVENT_ID AND CER.ID = '$ID' AND CER.ASSIGNED_BY_ID = '".$iUserId."' AND CE.EVENT_TYPE = 0"; $res = $this->cdb->Query($sql, false, $err_mess.__LINE__); if (!$res->Fetch()) return false; } // check unrelated events $sql = "SELECT EVENT_ID, COUNT(ID) as CNT FROM b_crm_event_relations WHERE EVENT_ID = (SELECT EVENT_ID FROM b_crm_event_relations WHERE ID = '$ID') GROUP BY EVENT_ID"; $res = $this->cdb->Query($sql, false, $err_mess.__LINE__); if ($row = $res->Fetch()) { // delete event if ($row['CNT'] == 1) { $obRes = $this->cdb->Query("SELECT ID, FILES FROM b_crm_event WHERE ID = '$row[EVENT_ID]'", false, $err_mess.__LINE__); if (($aRow = $obRes->Fetch()) !== false) { if (($arFiles = unserialize($aRow['FILES'], ['allowed_classes' => false])) !== false) { foreach ($arFiles as $iFileId) CFile::Delete((int) $iFileId); } $this->cdb->Query("DELETE FROM b_crm_event WHERE ID = '$row[EVENT_ID]'", false, $err_mess.__LINE__); } } } // delete event relation $res = $this->cdb->Query("DELETE FROM b_crm_event_relations WHERE ID = '$ID'", false, $err_mess.__LINE__); return $res; }

Добавить комментарий