$dbActivity = CCrmActivity::GetList(array('DEADLINE' => 'ASC'), $activityFilter, false, array('nTopCount' => 5), array('ID', 'TYPE_ID', 'DIRECTION', 'SUBJECT', 'RESPONSIBLE_ID', 'START_TIME', 'END_TIME', 'DEADLINE', 'COMPLETED', 'OWNER_TYPE_ID', 'OWNER_ID')); if (is_object($dbActivity)) { $userPermissions = CCrmPerms::GetCurrentUserPermissions(); $responsibleIDs = array(); $activities = array(); while ($activityFields = $dbActivity->GetNext()) { $itemID = intval($activityFields['~ID']); $activityIDs[] = $itemID; $ownerID = intval($activityFields['~OWNER_ID']); $ownerTypeID = intval($activityFields['~OWNER_TYPE_ID']); if ($arResult['READ_ONLY']) { $activityFields['CAN_EDIT'] = $activityFields['CAN_DELETE'] = false; } else { if ($ownerID > 0 && $ownerTypeID > 0) { $activityFields['CAN_EDIT'] = CCrmActivity::CheckUpdatePermission($ownerTypeID, $ownerID, $userPermissions); $activityFields['CAN_DELETE'] = CCrmActivity::CheckDeletePermission($ownerTypeID, $ownerID, $userPermissions); } else { $activityFields['CAN_EDIT'] = $activityFields['CAN_DELETE'] = true; } } $responsibleID = isset($activityFields['~RESPONSIBLE_ID']) ? intval($activityFields['~RESPONSIBLE_ID']) : 0; $activityFields['~RESPONSIBLE_ID'] = $responsibleID; if ($responsibleID <= 0) { $activityFields['RESPONSIBLE_FULL_NAME'] = ''; $activityFields['PATH_TO_RESPONSIBLE'] = ''; } elseif (!in_array($responsibleID, $responsibleIDs, true)) { $responsibleIDs[] = $responsibleID; } $activityFields['REFERENCE_TITLE'] = $ownerTypeID > 0 && $ownerID > 0 && ($ownerTypeID === CCrmOwnerType::Lead || $ownerTypeID === CCrmOwnerType::Deal) ? CCrmOwnerType::GetCaption($ownerTypeID, $ownerID, false) : ''; $activityFields['CLIENT_TITLE'] = ''; if (isset($activityFields['~DEADLINE']) && CCrmDateTimeHelper::IsMaxDatabaseDate($activityFields['~DEADLINE'])) {
protected function innerDelete($ID, &$errors) { $currentFields = CCrmActivity::GetByID($ID); if (!is_array($currentFields)) { $errors[] = 'Activity is not found.'; return false; } if (!CCrmActivity::CheckDeletePermission($currentFields['OWNER_TYPE_ID'], $currentFields['OWNER_ID'])) { $errors[] = 'Access denied.'; return false; } $result = CCrmActivity::Delete($ID, false, true, array()); if ($result === false) { $errors[] = CCrmActivity::GetLastErrorMessage(); } return $result; }
$dbRes = CCrmActivity::GetList($arSort, $arFilter, false, $arNavParams, array(), array()); $arResult['ITEMS'] = array(); $bbCodeParser = new CTextParser(); $responsibleIDs = array(); $items = array(); while ($arRes = $dbRes->GetNext()) { $itemID = intval($arRes['~ID']); $ownerID = intval($arRes['~OWNER_ID']); $ownerTypeID = intval($arRes['~OWNER_TYPE_ID']); if ($arResult['READ_ONLY']) { $arRes['CAN_EDIT'] = $arRes['CAN_COMPLETE'] = $arRes['CAN_DELETE'] = false; } else { if ($ownerID > 0 && $ownerTypeID > 0) { $arRes['CAN_EDIT'] = CCrmActivity::CheckUpdatePermission($ownerTypeID, $ownerID, $currentUserPermissions); $arRes['CAN_COMPLETE'] = (int) $arRes['~TYPE_ID'] !== CCrmActivityType::Task ? $arRes['CAN_EDIT'] : CCrmActivity::CheckCompletePermission($ownerTypeID, $ownerID, $currentUserPermissions, array('FIELDS' => $arRes)); $arRes['CAN_DELETE'] = CCrmActivity::CheckDeletePermission($ownerTypeID, $ownerID, $currentUserPermissions); } else { $arRes['CAN_EDIT'] = $arRes['CAN_COMPLETE'] = $arRes['CAN_DELETE'] = true; } } $responsibleID = isset($arRes['~RESPONSIBLE_ID']) ? intval($arRes['~RESPONSIBLE_ID']) : 0; $arRes['~RESPONSIBLE_ID'] = $responsibleID; if ($responsibleID <= 0) { $arRes['RESPONSIBLE'] = false; $arRes['RESPONSIBLE_FULL_NAME'] = ''; $arRes['PATH_TO_RESPONSIBLE'] = ''; } elseif (!in_array($responsibleID, $responsibleIDs, true)) { $responsibleIDs[] = $responsibleID; } $storageTypeID = isset($arRes['STORAGE_TYPE_ID']) ? intval($arRes['STORAGE_TYPE_ID']) : CCrmActivityStorageType::Undefined; if ($storageTypeID === CCrmActivityStorageType::Undefined || !CCrmActivityStorageType::IsDefined($storageTypeID)) {