public static function GetList($arOrder = array('CREATED_DATE' => 'DESC'), $arFilter = array(), $arSelect = array(), $nPageTop = false) { $ENTITY_ID = 'TASKS_TASK'; $arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0, LANGUAGE_ID); if ($arElement == false || !isset($arElement['UF_CRM_TASK'])) { $arFields = array(); $arFields['ENTITY_ID'] = $ENTITY_ID; $arFields['FIELD_NAME'] = 'UF_CRM_TASK'; $arFields['USER_TYPE_ID'] = 'crm'; $arFields['EDIT_FORM_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME'); $arFields['LIST_COLUMN_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME'); $arFields['LIST_FILTER_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME'); $arFields['SETTINGS']['LEAD'] = 'Y'; $arFields['SETTINGS']['CONTACT'] = 'Y'; $arFields['SETTINGS']['COMPANY'] = 'Y'; $arFields['SETTINGS']['DEAL'] = 'Y'; $arFields['MULTIPLE'] = 'Y'; $CAllUserTypeEntity = new CUserTypeEntity(); $CAllUserTypeEntity->Add($arFields); } if (isset($arFilter['ENTITY_TYPE']) && isset($arFilter['ENTITY_ID'])) { $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']); $arFilter['UF_CRM_TASK'] = $arFilter['ENTITY_TYPE'] . '_' . $arFilter['ENTITY_ID']; unset($arFilter['ENTITY_TYPE'], $arFilter['ENTITY_ID']); } else { if (isset($arFilter['ENTITY_TYPE'])) { if (!empty($arFilter['ENTITY_TYPE'])) { $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']); $arFilter['%UF_CRM_TASK'] = $arFilter['ENTITY_TYPE'] . '_'; } else { $arFilter['!=UF_CRM_TASK'] = ''; } unset($arFilter['ENTITY_TYPE']); } else { $arFilter['!=UF_CRM_TASK'] = ''; } } if (isset($arFilter['TITLE'])) { $arFilter['%TITLE'] = $arFilter['TITLE']; unset($arFilter['TITLE']); } if (isset($arFilter['REAL_STATUS'])) { $arFilter['STATUS'] = $arFilter['REAL_STATUS']; unset($arFilter['REAL_STATUS']); } if (isset($arOrder['ID']) || isset($arOrder['id'])) { $arSelect[] = 'ID'; } if (in_array('RESPONSIBLE_ID', $arSelect)) { $arSelect[] = 'RESPONSIBLE_NAME'; $arSelect[] = 'RESPONSIBLE_LAST_NAME'; $arSelect[] = 'RESPONSIBLE_SECOND_NAME'; $arSelect[] = 'RESPONSIBLE_LOGIN'; } $obRes = CTasks::GetList($arOrder, $arFilter, $arSelect, $nPageTop); return $obRes; }
public static function GetList($arOrder = array('CREATED_DATE' => 'DESC'), $arFilter = array(), $arSelect = array(), $nPageTop = false) { // Fix for #27449 if (!CModule::IncludeModule('calendar')) { $obRes = new CDBResult(); $obRes->InitFromArray(array()); return $obRes; } global $USER; $ENTITY_ID = 'CALENDAR_EVENT'; $arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0, LANGUAGE_ID); if ($arElement == false || !isset($arElement['UF_CRM_CAL_EVENT'])) { $arFields = array(); $arFields['ENTITY_ID'] = $ENTITY_ID; $arFields['FIELD_NAME'] = 'UF_CRM_CAL_EVENT'; $arFields['USER_TYPE_ID'] = 'crm'; $arFields['EDIT_FORM_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME'); $arFields['LIST_COLUMN_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME'); $arFields['LIST_FILTER_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME'); $arFields['SETTINGS']['LEAD'] = 'Y'; $arFields['SETTINGS']['CONTACT'] = 'Y'; $arFields['SETTINGS']['COMPANY'] = 'Y'; $arFields['SETTINGS']['DEAL'] = 'Y'; $arFields['MULTIPLE'] = 'Y'; $CAllUserTypeEntity = new CUserTypeEntity(); $CAllUserTypeEntity->Add($arFields); } if (isset($arFilter['ENTITY_TYPE']) && isset($arFilter['ENTITY_ID'])) { $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']); $arFilter['UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_' . $arFilter['ENTITY_ID']; unset($arFilter['ENTITY_TYPE'], $arFilter['ENTITY_ID']); } else { if (!empty($arFilter['ENTITY_TYPE'])) { $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']); $arFilter['%UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_'; unset($arFilter['ENTITY_TYPE']); } else { $arFilter['!=UF_CRM_CAL_EVENT'] = ''; } } $arFilter['CAL_TYPE'] = 'user'; $arFilter['DELETED'] = 'N'; if (isset($arFilter['OWNER_ID']) && is_array($arFilter['OWNER_ID'])) { $arFilter['OWNER_ID'] = current($arFilter['OWNER_ID']); } $arCal = CCalendarEvent::GetList(array('arFilter' => $arFilter, 'parseRecursion' => false, 'userId' => $USER->GetID(), 'fetchAttendees' => false, 'fetchMeetings' => true)); $obRes = new CDBResult(); $obRes->InitFromArray($arCal); return $obRes; }
public static function RefreshCalendarBindings() { if (!(IsModuleInstalled('calendar') && CModule::IncludeModule('calendar'))) { return false; } global $DB; $dbResult = $DB->Query('SELECT OWNER_ID, OWNER_TYPE_ID, ASSOCIATED_ENTITY_ID FROM ' . CCrmActivity::TABLE_NAME . ' WHERE OWNER_ID > 0 AND OWNER_TYPE_ID > 0 AND ASSOCIATED_ENTITY_ID > 0 AND TYPE_ID IN (' . CCrmActivityType::Call . ', ' . CCrmActivityType::Meeting . ')', false, 'File: ' . __FILE__ . '<br>Line: ' . __LINE__); if (!$dbResult) { return false; } while ($arResult = $dbResult->Fetch()) { $ownerID = intval($arResult['OWNER_ID']); $ownerTypeID = intval($arResult['OWNER_TYPE_ID']); $assocEntityID = intval($arResult['ASSOCIATED_ENTITY_ID']); if ($ownerID > 0 && $ownerTypeID > 0 && $assocEntityID > 0) { CCalendarEvent::UpdateUserFields($assocEntityID, array('UF_CRM_CAL_EVENT' => array(CUserTypeCrm::GetShortEntityType(CCrmOwnerType::ResolveName($ownerTypeID)) . '_' . $ownerID))); } } return true; }
if (!empty($arParams['INTERNAL_FILTER']) && is_array($arParams['INTERNAL_FILTER'])) { $arParams['GRID_ID_SUFFIX'] = $this->GetParent() !== null ? $this->GetParent()->GetName() : ''; $arFilter = $arParams['INTERNAL_FILTER']; } if (!empty($arParams['INTERNAL_SORT']) && is_array($arParams['INTERNAL_SORT'])) { $arSort = $arParams['INTERNAL_SORT']; } $sShortEntity = ''; $iEntityID = 0; if (isset($arFilter['ENTITY_TYPE'])) { $sShortEntity = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']); } if (isset($arFilter['ENTITY_ID'])) { $iEntityID = (int) $arFilter['ENTITY_ID']; if ($iEntityID > 0 && !empty($sShortEntity)) { $sShortEntity = CUserTypeCrm::GetShortEntityType('LEAD'); } } if (empty($arParams['ACTIVITY_CALENDAR_COUNT'])) { $arParams['ACTIVITY_CALENDAR_COUNT'] = 20; } $arNavParams = array('nPageSize' => $arParams['ACTIVITY_CALENDAR_COUNT']); $arNavigation = CDBResult::GetNavParams($arNavParams); global $APPLICATION; $arResult['GRID_ID'] = 'CRM_ACTIVITY_CALENDAR_LIST' . ($bInternal ? '_' . $arParams['GRID_ID_SUFFIX'] : ''); $arResult['FILTER'] = array(); $arResult['FILTER_PRESETS'] = array(); if (!$bInternal) { $arEntityType = array('' => '', 'LEAD' => GetMessage('CRM_ENTITY_TYPE_LEAD'), 'CONTACT' => GetMessage('CRM_ENTITY_TYPE_CONTACT'), 'COMPANY' => GetMessage('CRM_ENTITY_TYPE_COMPANY'), 'DEAL' => GetMessage('CRM_ENTITY_TYPE_DEAL')); ob_start(); $GLOBALS["APPLICATION"]->IncludeComponent('bitrix:crm.entity.selector', '', array('ENTITY_TYPE' => array('LEAD', 'CONTACT', 'COMPANY', 'DEAL'), 'INPUT_NAME' => 'UF_CRM_CAL_EVENT', 'INPUT_VALUE' => isset($_REQUEST['UF_CRM_CAL_EVENT']) ? $_REQUEST['UF_CRM_CAL_EVENT'] : '', 'FORM_NAME' => $arResult['GRID_ID'], 'MULTIPLE' => 'N', 'FILTER' => true), false, array('HIDE_ICONS' => 'Y'));
if (0 >= $intRemLen) { $intRemLen = 15; } } $strPriority = ''; if (isset($_POST['PRIORITY'])) { $strPriority = ToLower($_POST['PRIORITY']); } if (!in_array($strPriority, $arPriorityType)) { $strPriority = 'normal'; } $arResult['VALUES']['REMIND_LEN'] = $intRemLen; $arResult['VALUES']['REMIND_TYPE'] = $strRemType; $arResult['VALUES']['PRIORITY'] = $strPriority; if (false == $boolError) { $strEntityShort = CUserTypeCrm::GetShortEntityType($arResult['ENTITY_TYPE']) . '_'; foreach ($arID as $intID => $iUserID) { $arCrmEvents = array(); $arCrmEvents[] = $strEntityShort . $intID; $arFields = array('CAL_TYPE' => 'user', 'OWNER_ID' => $iUserID, 'NAME' => $arResult['VALUES']['CALENDAR_TOPIC'], 'DT_FROM' => $arResult['VALUES']['CALENDAR_FROM'], 'DT_TO' => $arResult['VALUES']['CALENDAR_TO'], 'DESCRIPTION' => $arResult['VALUES']['CALENDAR_DESC'], 'IMPORTANCE' => $strPriority); if ('Y' == $arResult['VALUES']['REMIND_FLAG']) { $arFields['REMIND'] = array(array('type' => $strRemType, 'count' => $intRemLen)); } $intEventID = CCalendar::SaveEvent(array('arFields' => $arFields, 'userId' => $iUserID, 'autoDetectSection' => true, 'autoCreateSection' => true)); if (0 < intval($intEventID)) { CCalendarEvent::UpdateUserFields($intEventID, array('UF_CRM_CAL_EVENT' => $arCrmEvents)); } else { $boolError = true; $arResult['ERROR_MESSAGE'][] = GetMessage('BX_CRM_CACA_ERR_ADD_FAIL'); } }