Beispiel #1
0
$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'])) {
Beispiel #2
0
 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;
 }
Beispiel #3
0
$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)) {