$ownerTypeID = CCrmOwnerType::ResolveID(isset($_POST['OWNER_TYPE']) ? strtoupper(strval($_POST['OWNER_TYPE'])) : ''); $ownerID = isset($_POST['OWNER_ID']) ? intval($_POST['OWNER_ID']) : 0; if (!CCrmOwnerType::IsDefined($ownerTypeID) || $ownerID > 0) { $ownerTypeID = isset($arActivity['OWNER_TYPE_ID']) ? intval($arActivity['OWNER_TYPE_ID']) : CCrmOwnerType::Undefined; $ownerID = isset($arActivity['OWNER_ID']) ? intval($arActivity['OWNER_ID']) : 0; } if (!CCrmOwnerType::IsDefined($ownerTypeID)) { echo CUtil::PhpToJSObject(array('ERROR' => 'OWNER TYPE IS NOT DEFINED!')); die; } if ($ownerID <= 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'OWNER TYPE IS NOT DEFINED!')); die; } $userPermissions = CCrmPerms::GetCurrentUserPermissions(); if (!CCrmActivity::CheckCompletePermission($ownerTypeID, $ownerID, $userPermissions, array('FIELDS' => $arActivity))) { echo CUtil::PhpToJSObject(array('ERROR' => GetMessage('CRM_PERMISSION_DENIED'))); die; } $completed = (isset($_POST['COMPLETED']) ? intval($_POST['COMPLETED']) : 0) > 0; if (CCrmActivity::Complete($ID, $completed, array('REGISTER_SONET_EVENT' => true))) { echo CUtil::PhpToJsObject(array('ITEM_ID' => $ID, 'COMPLETED' => $completed)); } else { $errorMsg = CCrmActivity::GetLastErrorMessage(); if (!isset($errorMsg[0])) { $errorMsg = "Could not complete activity ('{$ID}')!"; } echo CUtil::PhpToJsObject(array('ERROR' => $errorMsg)); } } elseif ($action == 'SET_PRIORITY') { $ID = isset($_POST['ITEM_ID']) ? intval($_POST['ITEM_ID']) : 0;
// Ignore select: we need all fields for editor $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;