示例#1
0
 }
 $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);
示例#2
0
        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();
示例#3
0
 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);
 }
示例#4
0
 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);
     }
 }
示例#5
0
 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);
 }