} $dbRes = CCrmActivity::GetList(array('deadline' => 'asc'), array('OWNER_ID' => $ownerID, 'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($ownerTypeName), 'COMPLETED' => $completed > 0 ? 'Y' : 'N')); $arItems = array(); while ($arRes = $dbRes->GetNext()) { $responsibleID = isset($arRes['~RESPONSIBLE_ID']) ? intval($arRes['~RESPONSIBLE_ID']) : 0; if ($responsibleID > 0) { $dbResUser = CUser::GetByID($responsibleID); $arRes['RESPONSIBLE'] = $dbResUser->Fetch(); $arRes['RESPONSIBLE_FULL_NAME'] = is_array($arRes['RESPONSIBLE']) ? CUser::FormatName(CSite::GetNameFormat(false), $arRes['RESPONSIBLE'], true, false) : ''; } else { $arRes['RESPONSIBLE'] = false; $arRes['RESPONSIBLE_FULL_NAME'] = ''; $arRes['PATH_TO_RESPONSIBLE'] = ''; } $arRes['FILES'] = array(); CCrmActivity::PrepareStorageElementIDs($arRes); $arFileID = $arRes['STORAGE_ELEMENT_IDS']; if (is_array($arFileID)) { $fileCount = count($arFileID); for ($i = 0; $i < $fileCount; $i++) { if (is_array($arData = CFile::GetFileArray($arFileID[$i]))) { $arRes['FILES'][] = array('fileID' => $arData['ID'], 'fileName' => $arData['FILE_NAME'], 'fileURL' => CCrmUrlUtil::UrnEncode($arData['SRC']), 'fileSize' => $arData['FILE_SIZE']); } } } $arRes['SETTINGS'] = isset($arRes['~SETTINGS']) ? unserialize($arRes['~SETTINGS']) : array(); $arRes['COMMUNICATIONS'] = CCrmActivity::GetCommunications($arRes['~ID']); $commData = array(); if (is_array($arRes['COMMUNICATIONS'])) { foreach ($arRes['COMMUNICATIONS'] as &$arComm) { CCrmActivity::PrepareCommunicationInfo($arComm);
ShowError(GetMessage('CRM_PERMISSION_DENIED')); return; } } elseif (!CCrmPerms::IsAccessEnabled()) { ShowError(GetMessage('CRM_PERMISSION_DENIED')); return; } $arResult['TYPE_ID'] = $typeID; $arResult['OWNER_ID'] = $ownerID; $arResult['OWNER_TYPE_ID'] = $ownerTypeID; $arResult['OWNER_TYPE_NAME'] = $ownerTypeName = $ownerTypeID !== CCrmOwnerType::Undefined ? CCrmOwnerType::ResolveName($ownerTypeID) : ''; $arResult['OWNER_TITLE'] = $ownerTypeID !== CCrmOwnerType::Undefined && $ownerID > 0 ? CCrmOwnerType::GetCaption($ownerTypeID, $ownerID) : ''; $arResult['CAN_CHANGE_OWNER'] = $ownerTypeID !== CCrmOwnerType::Deal; if ($entityID > 0) { $storageTypeID = isset($arFields['STORAGE_TYPE_ID']) ? intval($arFields['STORAGE_TYPE_ID']) : \Bitrix\Crm\Integration\StorageType::Undefined; CCrmActivity::PrepareStorageElementIDs($arFields); CCrmActivity::PrepareStorageElementInfo($arFields); $arFields['START_TIME_STAMP'] = isset($arFields['START_TIME']) ? MakeTimeStamp($arFields['START_TIME']) : 0; $arFields['END_TIME_STAMP'] = isset($arFields['END_TIME']) ? MakeTimeStamp($arFields['END_TIME']) : 0; $arFields['NOTIFY_TYPE'] = isset($arFields['NOTIFY_TYPE']) ? intval($arFields['NOTIFY_TYPE']) : CCrmActivityNotifyType::None; $arFields['NOTIFY_VALUE'] = isset($arFields['NOTIFY_VALUE']) ? intval($arFields['NOTIFY_VALUE']) : 0; } else { $arFields['ID'] = 0; $arFields['START_TIME_STAMP'] = $arFields['END_TIME_STAMP'] = time() + CTimeZone::GetOffset(); $arFields['START_TIME'] = $arFields['END_TIME'] = ConvertTimeStamp($arFields['START_TIME_STAMP'], 'FULL', SITE_ID); $arFields['NOTIFY_TYPE'] = CCrmActivityNotifyType::None; $arFields['NOTIFY_VALUE'] = 0; $arFields['RESPONSIBLE_ID'] = $arResult['USER_ID']; if ($arFields['RESPONSIBLE_ID'] > 0) { $dbUser = CUser::GetList($by = 'id', $order = 'asc', array('ID' => $arFields['RESPONSIBLE_ID']), array('FIELDS' => array('ID', 'LOGIN', 'EMAIL', 'NAME', 'LAST_NAME', 'SECOND_NAME'))); $user = $dbUser->Fetch();
protected function externalizeFields(&$fields, &$fieldsInfo) { if (isset($fields['STORAGE_ELEMENT_IDS'])) { CCrmActivity::PrepareStorageElementIDs($fields); $fields['WEBDAV_ELEMENTS'] = $fields['STORAGE_ELEMENT_IDS']; unset($fields['STORAGE_ELEMENT_IDS']); } parent::externalizeFields($fields, $fieldsInfo); }
public static function PrepareActivityItem(&$item, &$params, $options = null) { if (!is_array($options)) { $options = array(); } $itemID = intval($item['ID']); if (!isset($item['SUBJECT'])) { $item['SUBJECT'] = ''; } if (!isset($item['DESCRIPTION'])) { $item['DESCRIPTION'] = ''; } if (!isset($item['LOCATION'])) { $item['LOCATION'] = ''; } $typeID = isset($item['TYPE_ID']) ? intval($item['TYPE_ID']) : CCrmActivityType::Undefined; $item['TYPE_ID'] = $typeID; $direction = isset($item['DIRECTION']) ? intval($item['DIRECTION']) : CCrmActivityDirection::Undefined; $item['DIRECTION'] = $direction; $priority = isset($item['PRIORITY']) ? intval($item['PRIORITY']) : CCrmActivityPriority::None; $item['PRIORITY'] = $priority; $item['IS_IMPORTANT'] = $priority === CCrmActivityPriority::High; $completed = isset($item['COMPLETED']) ? $item['COMPLETED'] === 'Y' : false; $item['COMPLETED'] = $completed ? 'Y' : 'N'; if ($typeID === CCrmActivityType::Task) { $taskID = isset($item['ASSOCIATED_ENTITY_ID']) ? intval($item['ASSOCIATED_ENTITY_ID']) : 0; $item['SHOW_URL'] = $taskID > 0 && isset($params['TASK_SHOW_URL_TEMPLATE']) ? CComponentEngine::MakePathFromTemplate($params['TASK_SHOW_URL_TEMPLATE'], array('user_id' => isset($params['USER_ID']) ? $params['USER_ID'] : CCrmSecurityHelper::GetCurrentUserID(), 'task_id' => $taskID)) : ''; $item['DEAD_LINE'] = isset($item['DEADLINE']) ? $item['DEADLINE'] : (isset($item['END_TIME']) ? $item['END_TIME'] : ''); } else { if (isset($params['ACTIVITY_SHOW_URL_TEMPLATE'])) { $item['SHOW_URL'] = CComponentEngine::makePathFromTemplate($params['ACTIVITY_SHOW_URL_TEMPLATE'], array('activity_id' => $itemID)); } $item['DEAD_LINE'] = isset($item['DEADLINE']) ? $item['DEADLINE'] : (isset($item['START_TIME']) ? $item['START_TIME'] : ''); } //OWNER_TITLE $ownerTitle = ''; $ownerID = isset($item['OWNER_ID']) ? intval($item['OWNER_ID']) : 0; $item['OWNER_ID'] = $ownerID; $ownerTypeID = isset($item['OWNER_TYPE_ID']) ? intval($item['OWNER_TYPE_ID']) : 0; $item['OWNER_TYPE_ID'] = $ownerTypeID; if ($ownerID > 0 && $ownerTypeID > 0) { $ownerTitle = CCrmOwnerType::GetCaption($ownerTypeID, $ownerID); } $item['OWNER_TITLE'] = $ownerTitle; //OWNER_SHOW_URL $ownerShowUrl = ''; if ($ownerID > 0) { if ($ownerTypeID === CCrmOwnerType::Lead) { $ownerShowUrl = isset($params['LEAD_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['LEAD_SHOW_URL_TEMPLATE'], array('lead_id' => $ownerID)) : ''; } elseif ($ownerTypeID === CCrmOwnerType::Contact) { $ownerShowUrl = isset($params['CONTACT_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $ownerID)) : ''; } elseif ($ownerTypeID === CCrmOwnerType::Company) { $ownerShowUrl = isset($params['COMPANY_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['COMPANY_SHOW_URL_TEMPLATE'], array('company_id' => $ownerID)) : ''; } elseif ($ownerTypeID === CCrmOwnerType::Deal) { $ownerShowUrl = isset($params['DEAL_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['DEAL_SHOW_URL_TEMPLATE'], array('deal_id' => $ownerID)) : ''; } } $item['OWNER_SHOW_URL'] = $ownerShowUrl; //IS_EXPIRED if ($item['COMPLETED'] === 'Y') { $item['IS_EXPIRED'] = false; } else { $time = isset($item['DEAD_LINE']) ? MakeTimeStamp($item['DEAD_LINE']) : 0; $item['IS_EXPIRED'] = $time !== 0 && $time <= time() + CTimeZone::GetOffset(); } $responsibleID = isset($item['RESPONSIBLE_ID']) ? intval($item['RESPONSIBLE_ID']) : 0; $item['RESPONSIBLE_ID'] = $responsibleID; $item['RESPONSIBLE_SHOW_URL'] = $responsibleID > 0 ? CComponentEngine::MakePathFromTemplate($params['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $responsibleID)) : ''; $item['RESPONSIBLE_FORMATTED_NAME'] = $responsibleID > 0 && isset($params['NAME_TEMPLATE']) ? CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => isset($item['RESPONSIBLE_LOGIN']) ? $item['RESPONSIBLE_LOGIN'] : '', 'NAME' => isset($item['RESPONSIBLE_NAME']) ? $item['RESPONSIBLE_NAME'] : '', 'LAST_NAME' => isset($item['RESPONSIBLE_LAST_NAME']) ? $item['RESPONSIBLE_LAST_NAME'] : '', 'SECOND_NAME' => isset($item['RESPONSIBLE_SECOND_NAME']) ? $item['RESPONSIBLE_SECOND_NAME'] : ''), true, false) : ''; //COMMUNICATIONS if ($itemID > 0 && isset($options['ENABLE_COMMUNICATIONS']) && $options['ENABLE_COMMUNICATIONS'] && !isset($item['COMMUNICATIONS'])) { $item['COMMUNICATIONS'] = CCrmActivity::GetCommunications($itemID); } $storageTypeID = isset($item['STORAGE_TYPE_ID']) ? intval($item['STORAGE_TYPE_ID']) : CCrmActivityStorageType::Undefined; if ($storageTypeID === CCrmActivityStorageType::Undefined || !CCrmActivityStorageType::IsDefined($storageTypeID)) { $storageTypeID = CCrmActivity::GetDefaultStorageTypeID(); } $item['STORAGE_TYPE_ID'] = $storageTypeID; $item['FILES'] = array(); $item['DISK_FILES'] = array(); $item['WEBDAV_ELEMENTS'] = array(); if (isset($options['ENABLE_FILES']) && $options['ENABLE_FILES']) { CCrmActivity::PrepareStorageElementIDs($item); CCrmActivity::PrepareStorageElementInfo($item); } }
protected function externalizeFields(&$fields, &$fieldsInfo) { $storageTypeID = isset($fields['STORAGE_TYPE_ID']) ? $fields['STORAGE_TYPE_ID'] : CCrmActivity::GetDefaultStorageTypeID(); if (isset($fields['STORAGE_ELEMENT_IDS'])) { CCrmActivity::PrepareStorageElementIDs($fields); if ($storageTypeID === Bitrix\Crm\Integration\StorageType::Disk) { $fields['FILES'] = $fields['STORAGE_ELEMENT_IDS']; } elseif ($storageTypeID === Bitrix\Crm\Integration\StorageType::WebDav) { $fields['WEBDAV_ELEMENTS'] = $fields['STORAGE_ELEMENT_IDS']; } unset($fields['STORAGE_ELEMENT_IDS']); } parent::externalizeFields($fields, $fieldsInfo); }