public function initialize()
 {
     if ($this->currentPhase === DealConversionPhase::INTERMEDIATE) {
         $this->currentPhase = DealConversionPhase::INVOICE_CREATION;
     }
     if (!\CCrmDeal::Exists($this->entityID)) {
         throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Undefined, EntityConversionException::TARG_SRC, EntityConversionException::NOT_FOUND);
     }
     /** @var \CCrmPerms $permissions */
     $permissions = $this->getUserPermissions();
     if (!\CCrmAuthorizationHelper::CheckReadPermission(\CCrmOwnerType::DealName, $this->entityID, $permissions)) {
         throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Undefined, EntityConversionException::TARG_SRC, EntityConversionException::READ_DENIED);
     }
     if (!\CCrmAuthorizationHelper::CheckUpdatePermission(\CCrmOwnerType::DealName, $this->entityID, $permissions)) {
         throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Undefined, EntityConversionException::TARG_SRC, EntityConversionException::UPDATE_DENIED);
     }
 }
$entityTypeName = isset($params['ENTITY_TYPE_NAME']) ? strtoupper($params['ENTITY_TYPE_NAME']) : '';
if ($entityTypeName === '') {
    die;
}
$entityTypeID = CCrmOwnerType::ResolveID($entityTypeName);
if ($entityTypeID === CCrmOwnerType::Undefined) {
    die;
}
$entityID = isset($params['ENTITY_ID']) ? $params['ENTITY_ID'] : 0;
if ($entityID <= 0) {
    die;
}
$userPermissions = CCrmPerms::GetCurrentUserPermissions();
if (!CCrmAuthorizationHelper::CheckReadPermission($entityTypeName, $entityID, $userPermissions)) {
    die;
}
$formID = isset($params['FORM_ID']) ? $params['FORM_ID'] : '';
$pathToUserProfile = isset($params['PATH_TO_USER_PROFILE']) ? $params['PATH_TO_USER_PROFILE'] : '';
$postFormUri = isset($params['POST_FORM_URI']) ? $params['POST_FORM_URI'] : '';
if ($postFormUri !== '') {
    $tabKey = $formID !== '' ? "{$formID}_active_tab" : 'active_tab';
    $tabID = isset($params['TAB_ID']) ? $params['TAB_ID'] : '';
    $postFormUri = CHTTP::urlAddParams($postFormUri, array($tabKey => $tabID));
}
$actionUri = isset($params['ACTION_URI']) ? $params['ACTION_URI'] : '';
global $APPLICATION;
Header('Content-Type: text/html; charset=' . LANG_CHARSET);
$APPLICATION->ShowAjaxHead();
$APPLICATION->IncludeComponent('bitrix:crm.entity.livefeed', '', array('DATE_TIME_FORMAT' => LANGUAGE_ID == 'en' ? "j F Y g:i a" : (LANGUAGE_ID == 'de' ? "j. F Y, G:i" : "j F Y G:i"), 'CAN_EDIT' => CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $userPermissions), 'ENTITY_TYPE_ID' => $entityTypeID, 'ENTITY_ID' => $entityID, 'POST_FORM_URI' => $postFormUri, 'ACTION_URI' => $actionUri, 'FORM_ID' => $formID, 'PATH_TO_USER_PROFILE' => $pathToUserProfile), null, array('HIDE_ICONS' => 'Y'));
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php';
die;
Exemple #3
0
 public static function CheckCreatePermission($entityType, $entityID, $userPermissions = null)
 {
     $canonicalEntityType = CCrmOwnerType::ResolveName(CCrmLiveFeedEntity::ResolveEntityTypeID($entityType));
     return CCrmAuthorizationHelper::CheckUpdatePermission($canonicalEntityType, $entityID, $userPermissions);
 }
Exemple #4
0
if ($entityID <= 0) {
    ShowError(GetMessage('CRM_ENTITY_QPV_ENTITY_ID_NOT_DEFINED'));
    return;
}
$arResult['ENTITY_ID'] = $entityID;
$currentUserPremissions = CCrmPerms::GetCurrentUserPermissions();
if (!CCrmAuthorizationHelper::CheckReadPermission($entityTypeName, $entityID, $currentUserPremissions)) {
    ShowError(GetMessage('CRM_ENTITY_QPV_ACCESS_DENIED'));
    return;
}
$entityFields = isset($arParams['~ENTITY_FIELDS']) ? $arParams['~ENTITY_FIELDS'] : null;
if (!is_array($entityFields)) {
    ShowError(GetMessage('CRM_ENTITY_QPV_ENTITY_FIELDS_NOT_FOUND'));
    return;
}
$canEdit = $arResult['CAN_EDIT'] = CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $currentUserPremissions);
$userProfilePath = $arResult['PATH_TO_USER_PROFILE'] = $arParams['PATH_TO_USER_PROFILE'] = CrmCheckPath('PATH_TO_USER_PROFILE', $arParams['PATH_TO_USER_PROFILE'], '/company/personal/user/#user_id#/');
$nameTemplate = $arResult['NAME_TEMPLATE'] = $arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat(false) : str_replace(array("#NOBR#", "#/NOBR#"), array("", ""), $arParams["NAME_TEMPLATE"]);
$enableInstantEdit = $arResult['ENABLE_INSTANT_EDIT'] = isset($arParams['ENABLE_INSTANT_EDIT']) ? $arParams['ENABLE_INSTANT_EDIT'] : false;
$arResult['INSTANT_EDITOR_ID'] = isset($arParams['INSTANT_EDITOR_ID']) ? $arParams['INSTANT_EDITOR_ID'] : '';
$arResult['SERVICE_URL'] = isset($arParams['SERVICE_URL']) ? $arParams['SERVICE_URL'] : '';
$arResult['FORM_ID'] = $arParams['FORM_ID'] = isset($arParams['FORM_ID']) ? $arParams['FORM_ID'] : strtolower($entityTypeName) . '_' . $entityID;
$arResult['GUID'] = isset($arParams['GUID']) ? $arParams['GUID'] : strtolower($arResult['FORM_ID']) . '_qpv';
//CONFIG -->
$config = CUserOptions::GetOption('crm.entity.quickpanelview', $arResult['GUID'], null, $currentUser->GetID());
$enableDefaultConfig = !is_array($config);
if ($enableDefaultConfig) {
    $config = array('enabled' => 'N', 'expanded' => 'Y', 'fixed' => 'Y');
}
// <-- CONFIG
//$defaultCompanyLogoUrl = SITE_DIR.'bitrix/js/crm/images/crm-default-company.jpg';
Exemple #5
0
 static function CanUserOperateDocument($operation, $userId, $documentId, $arParameters = array())
 {
     $arDocumentID = self::GetDocumentInfo($documentId);
     if (empty($arDocumentID)) {
         throw new CBPArgumentNullException('documentId');
     }
     $userId = intval($userId);
     $key = "{$documentId}_{$userId}_{$operation}";
     if (isset(self::$USER_PERMISSION_CHECK[$key])) {
         return self::$USER_PERMISSION_CHECK[$key];
     }
     if (!array_key_exists('AllUserGroups', $arParameters)) {
         if (!array_key_exists('UserGroups', $arParameters)) {
             $arParameters['UserGroups'] = self::PrepareUserGroups($userId);
             if (!array_key_exists('CreatedBy', $arParameters)) {
                 $responsibleID = CCrmOwnerType::GetResponsibleID(CCrmOwnerType::ResolveID($arDocumentID['TYPE']), $arDocumentID['ID'], false);
                 if ($responsibleID <= 0) {
                     self::$USER_PERMISSION_CHECK[$key] = false;
                     return false;
                 }
                 $arParameters['CreatedBy'] = $responsibleID;
             }
         }
         $arParameters['AllUserGroups'] = $arParameters['UserGroups'];
         if ($userId == $arParameters['CreatedBy']) {
             $arParameters['AllUserGroups'][] = 'Author';
         }
     }
     if (isset($arParameters['UserIsAdmin']) && $arParameters['UserIsAdmin'] === true || in_array(1, $arParameters['AllUserGroups'])) {
         self::$USER_PERMISSION_CHECK[$key] = true;
         return true;
     }
     $userPermissions = CCrmPerms::GetUserPermissions($userId);
     if ($arDocumentID['ID'] > 0) {
         $entityAttrs = isset($arParameters['CRMEntityAttr']) && is_array($arParameters['CRMEntityAttr']) && !empty($arParameters['CRMEntityAttr']) ? $arParameters['CRMEntityAttr'] : null;
         if ($operation == CBPCanUserOperateOperation::ViewWorkflow || $operation == CBPCanUserOperateOperation::ReadDocument) {
             $result = CCrmAuthorizationHelper::CheckReadPermission($arDocumentID['TYPE'], $arDocumentID['ID'], $userPermissions, $entityAttrs);
         } else {
             $result = CCrmAuthorizationHelper::CheckUpdatePermission($arDocumentID['TYPE'], $arDocumentID['ID'], $userPermissions, $entityAttrs);
         }
     } else {
         $result = CCrmAuthorizationHelper::CheckCreatePermission($arDocumentID['TYPE'], $userPermissions);
     }
     self::$USER_PERMISSION_CHECK[$key] = $result;
     return $result;
 }
Exemple #6
0
 public static function CheckUpdatePermission($ID, $userPermissions = null)
 {
     return CCrmAuthorizationHelper::CheckUpdatePermission(self::$TYPE_NAME, $ID, $userPermissions);
 }
Exemple #7
0
 public function isMergable($entityID, $roleID)
 {
     if (!$this->enablePermissionCheck) {
         return true;
     }
     if (!is_int($entityID)) {
         $entityID = (int) $entityID;
     }
     if ($entityID <= 0) {
         throw new Main\ArgumentException('Must be greater than zero', 'entityID');
     }
     if (!is_int($roleID)) {
         $roleID = (int) $roleID;
     }
     if (!self::isRoleDefined($roleID)) {
         throw new Main\ArgumentException('Merge role is not defined', 'roleID');
     }
     $entityTypeID = $this->entityTypeID;
     $entityTypeName = \CCrmOwnerType::ResolveName($entityTypeID);
     $permissions = $this->getUserPermissions();
     if ($roleID === self::ROLE_SEED) {
         return \CCrmAuthorizationHelper::CheckReadPermission($entityTypeName, $entityID, $permissions) && \CCrmAuthorizationHelper::CheckDeletePermission($entityTypeName, $entityID, $permissions);
     } else {
         return \CCrmAuthorizationHelper::CheckReadPermission($entityTypeName, $entityID, $permissions) && \CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $permissions);
     }
 }
Exemple #8
0
     if (isset($entityInfo['TITLE'])) {
         $info['TITLE'] = $entityInfo['TITLE'];
     }
     if (isset($entityInfo['RESPONSIBLE_ID'])) {
         $responsibleID = $entityInfo['RESPONSIBLE_ID'];
         $info['RESPONSIBLE_ID'] = $responsibleID;
         if (isset($entityInfo['RESPONSIBLE_FULL_NAME'])) {
             $info['RESPONSIBLE_FULL_NAME'] = $entityInfo['RESPONSIBLE_FULL_NAME'];
         }
         if (isset($entityInfo['RESPONSIBLE_PHOTO_URL'])) {
             $info['RESPONSIBLE_PHOTO_URL'] = $entityInfo['RESPONSIBLE_PHOTO_URL'];
         }
         $info['RESPONSIBLE_URL'] = CComponentEngine::MakePathFromTemplate($userProfileUrlTemplate, array('user_id' => $responsibleID, 'USER_ID' => $responsibleID));
         $entityTypeName = CCrmOwnerType::ResolveName($entityTypeID);
         $isReadable = CCrmAuthorizationHelper::CheckReadPermission($entityTypeName, $entityID, $userPermissions);
         $isEditable = CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $userPermissions);
         if ($isEditable && isset($entityInfo['EDIT_URL'])) {
             $info['URL'] = $entityInfo['EDIT_URL'];
         } elseif ($isReadable && isset($entityInfo['SHOW_URL'])) {
             $info['URL'] = $entityInfo['SHOW_URL'];
         } else {
             $info['URL'] = '';
         }
     }
 }
 if (isset($entityMultiFields[$entityTypeID]) && isset($entityMultiFields[$entityTypeID][$entityID])) {
     $multiFields = $entityMultiFields[$entityTypeID][$entityID];
     if (isset($multiFields['PHONE'])) {
         $info['PHONE'] = $multiFields['PHONE'];
     }
     if (isset($multiFields['EMAIL'])) {
 public function isUpdatable($userID = 0, $userPermissions = null)
 {
     if (!is_int($userID)) {
         throw new Main\ArgumentTypeException('userID', 'integer');
     }
     if ($userPermissions === null) {
         $userPermissions = \CCrmPerms::GetUserPermissions($userID);
     }
     return \CCrmAuthorizationHelper::CheckUpdatePermission(\CCrmOwnerType::ResolveName($this->entityTypeID), $this->entityID, $userPermissions);
 }
Exemple #10
0
 public function executePhase()
 {
     if ($this->currentPhase === LeadConversionPhase::COMPANY_CREATION || $this->currentPhase === LeadConversionPhase::CONTACT_CREATION || $this->currentPhase === LeadConversionPhase::DEAL_CREATION) {
         if ($this->currentPhase === LeadConversionPhase::COMPANY_CREATION) {
             $entityTypeID = \CCrmOwnerType::Company;
         } elseif ($this->currentPhase === LeadConversionPhase::CONTACT_CREATION) {
             $entityTypeID = \CCrmOwnerType::Contact;
         } else {
             $entityTypeID = \CCrmOwnerType::Deal;
         }
         $entityTypeName = \CCrmOwnerType::ResolveName($entityTypeID);
         $config = $this->config->getItem($entityTypeID);
         if (!$config->isActive()) {
             return false;
         }
         /** @var \CCrmPerms $permissions */
         $permissions = $this->getUserPermissions();
         $entityID = isset($this->contextData[$entityTypeName]) ? $this->contextData[$entityTypeName] : 0;
         if ($entityID > 0) {
             if ($entityTypeID === \CCrmOwnerType::Company) {
                 if (!\CCrmCompany::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Company, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 $entity = new \CCrmCompany(false);
             } elseif ($entityTypeID === \CCrmOwnerType::Contact) {
                 if (!\CCrmContact::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Contact, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 $entity = new \CCrmContact(false);
             } else {
                 if (!\CCrmDeal::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Deal, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 $entity = new \CCrmDeal(false);
             }
             if (!\CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $permissions)) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::UPDATE_DENIED);
             }
             $fields = array('LEAD_ID' => $this->entityID);
             $entity->Update($entityID, $fields);
             $this->resultData[$entityTypeName] = $entityID;
             return true;
         }
         if (!\CCrmAuthorizationHelper::CheckCreatePermission($entityTypeName, $permissions)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::CREATE_DENIED);
         }
         if (UserFieldSynchronizer::needForSynchronization(\CCrmOwnerType::Lead, $entityTypeID)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::NOT_SYNCHRONIZED);
         }
         if (!ConversionSettings::getCurrent()->isAutocreationEnabled()) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::AUTOCREATION_DISABLED);
         }
         if (\CCrmBizProcHelper::HasAutoWorkflows($entityTypeID, \CCrmBizProcEventType::Create)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::HAS_WORKFLOWS);
         }
         /** @var LeadConversionMapper $mapper */
         $mapper = $this->getMapper();
         $map = self::prepareMap($entityTypeID);
         $fields = $mapper->map($map);
         if (empty($fields)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::EMPTY_FIELDS);
         }
         if ($entityTypeID === \CCrmOwnerType::Company) {
             $entity = new \CCrmCompany(false);
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Company, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             //region BizProcess
             $arErrors = array();
             \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Company, $entityID, \CCrmBizProcEventType::Create, $arErrors);
             //endregion
             $this->resultData[\CCrmOwnerType::CompanyName] = $entityID;
         } elseif ($entityTypeID === \CCrmOwnerType::Contact) {
             if (isset($this->resultData[\CCrmOwnerType::CompanyName])) {
                 $fields['COMPANY_ID'] = $this->resultData[\CCrmOwnerType::CompanyName];
             }
             $entity = new \CCrmContact(false);
             if (!$entity->CheckFields($fields)) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::INVALID_FIELDS, $entity->LAST_ERROR);
             }
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Contact, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             //region BizProcess
             $arErrors = array();
             \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Contact, $entityID, \CCrmBizProcEventType::Create, $arErrors);
             //endregion
             $this->resultData[\CCrmOwnerType::ContactName] = $entityID;
         } else {
             if (isset($this->resultData[\CCrmOwnerType::ContactName])) {
                 $fields['CONTACT_ID'] = $this->resultData[\CCrmOwnerType::ContactName];
             }
             if (isset($this->resultData[\CCrmOwnerType::CompanyName])) {
                 $fields['COMPANY_ID'] = $this->resultData[\CCrmOwnerType::CompanyName];
             }
             $productRows = isset($fields['PRODUCT_ROWS']) && is_array($fields['PRODUCT_ROWS']) ? $fields['PRODUCT_ROWS'] : array();
             if (!empty($productRows)) {
                 $result = \CCrmProductRow::CalculateTotalInfo('D', 0, false, $fields, $productRows);
                 $fields['OPPORTUNITY'] = isset($result['OPPORTUNITY']) ? $result['OPPORTUNITY'] : 1.0;
                 $fields['TAX_VALUE'] = isset($result['TAX_VALUE']) ? $result['TAX_VALUE'] : 0.0;
             }
             $entity = new \CCrmDeal(false);
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Deal, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             if (!empty($productRows)) {
                 \CCrmDeal::SaveProductRows($entityID, $productRows, false, false, false);
             }
             //region BizProcess
             $arErrors = array();
             \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Deal, $entityID, \CCrmBizProcEventType::Create, $arErrors);
             //endregion
             $this->resultData[\CCrmOwnerType::DealName] = $entityID;
         }
         return true;
     } elseif ($this->currentPhase === LeadConversionPhase::FINALIZATION) {
         $result = \CCrmLead::GetListEx(array(), array('=ID' => $this->entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('STATUS_ID'));
         $presentFields = is_object($result) ? $result->Fetch() : null;
         if (is_array($presentFields)) {
             $fields = array();
             $statusID = isset($presentFields['STATUS_ID']) ? $presentFields['STATUS_ID'] : '';
             if ($statusID !== 'CONVERTED') {
                 $fields['STATUS_ID'] = 'CONVERTED';
             }
             if (isset($this->resultData[\CCrmOwnerType::CompanyName])) {
                 $fields['COMPANY_ID'] = $this->resultData[\CCrmOwnerType::CompanyName];
             }
             if (isset($this->resultData[\CCrmOwnerType::ContactName])) {
                 $fields['CONTACT_ID'] = $this->resultData[\CCrmOwnerType::ContactName];
             }
             if (!empty($fields)) {
                 $entity = new \CCrmLead(false);
                 if ($entity->Update($this->entityID, $fields)) {
                     //region BizProcess
                     $arErrors = array();
                     \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Lead, $this->entityID, \CCrmBizProcEventType::Edit, $arErrors);
                     //endregion
                 }
             }
         }
         return true;
     }
     return false;
 }
Exemple #11
0
if (CCrmOwnerType::IsDefined($entityTypeID)) {
    $entityTypeName = CCrmOwnerType::ResolveName($entityTypeID);
} else {
    $entityTypeName = isset($arParams['ENTITY_TYPE_NAME']) ? $arParams['ENTITY_TYPE_NAME'] : '';
    $entityTypeID = CCrmOwnerType::ResolveID($entityTypeName);
}
$entityID = isset($arParams['ENTITY_ID']) ? intval($arParams['ENTITY_ID']) : 0;
$arResult['ENABLE_LIVE_FEED_EXTENDED_MODE'] = true;
$arResult['LIVE_FEED_ENTITY_TYPE'] = CCrmLiveFeedEntity::GetByEntityTypeID($entityTypeID);
$arResult['ENTITY_TYPE_NAME'] = $entityTypeName;
$arResult['ENTITY_TYPE_ID'] = $entityTypeID;
$arResult['ENTITY_ID'] = $entityID;
$userID = CCrmSecurityHelper::GetCurrentUserID();
$arResult['USER_ID'] = $userID;
$userPerms = CCrmPerms::GetCurrentUserPermissions();
if ($entityTypeName !== '' && !CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $userPerms)) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
$arResult['PERMISSIONS'] = $userPerms;
$uid = isset($arParams['UID']) ? $arParams['UID'] : '';
if ($uid === '') {
    $uid = 'crm_sl_event_edit';
}
$arResult['UID'] = $arParams['UID'] = $uid;
$arResult['MESSAGE_TITLE_FIELD_NAME'] = $arParams['UID'] = $uid;
$cacheManager = $GLOBALS['CACHE_MANAGER'];
$allowLiveFeedToAll = $defaultLiveFeedToAll = false;
$arParams['USE_CUT'] = isset($arParams['USE_CUT']) && $arParams['USE_CUT'] === 'Y' ? 'Y' : 'N';
global $USER_FIELD_MANAGER;
$sonetFields = $USER_FIELD_MANAGER->GetUserFields('SONET_LOG', 0);
Exemple #12
0
     __CrmDedupeListEndResonse($result);
 }
 $dup = $criterion->createDuplicate($entityTypeID, $rootEntityID, $currentUserID, $enablePermissionCheck, $enableRanking, 50);
 if ($dup) {
     $entities = $dup->getEntitiesByType($entityTypeID);
     foreach ($entities as $entity) {
         $entityID = $entity->getEntityID();
         $info = array('ID' => $entityID);
         $entityCriterion = $entity->getCriterion();
         if ($entityCriterion !== null) {
             $info['INDEX_MATCHES'] = $entityCriterion->getMatches();
         }
         if (!$enablePermissionCheck) {
             $info['CAN_UPDATE'] = $info['CAN_DELETE'] = true;
         } else {
             $info['CAN_UPDATE'] = \CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $currentUserPermissions);
             $info['CAN_DELETE'] = \CCrmAuthorizationHelper::CheckDeletePermission($entityTypeName, $entityID, $currentUserPermissions);
         }
         $entityInfos[$entityID] =& $info;
         unset($info);
     }
     if (empty($entityInfos)) {
         $result = array('INDEX_TYPE_NAME' => Integrity\DuplicateIndexType::resolveName($typeID), 'ENTITY_TYPE_NAME' => $entityTypeName, 'ENTITY_INFOS' => array(), 'TEXT_TOTALS' => GetMessage("CRM_DEDUPE_LIST_JUNK"));
         __CrmDedupeListEndResonse($result);
     }
     $entityInfoOptions = array('ENABLE_EDIT_URL' => false, 'ENABLE_RESPONSIBLE' => true, 'ENABLE_RESPONSIBLE_PHOTO' => false);
     if ($entityTypeID === CCrmOwnerType::Lead) {
         $entityInfoOptions[$layoutID === CCrmOwnerType::Company ? 'TREAT_AS_COMPANY' : 'TREAT_AS_CONTACT'] = true;
     }
     \CCrmOwnerType::PrepareEntityInfoBatch($entityTypeID, $entityInfos, $enablePermissionCheck, $entityInfoOptions);
     \CCrmFieldMulti::PrepareEntityInfoBatch('PHONE', $entityTypeName, $entityInfos, array('ENABLE_NORMALIZATION' => true));
Exemple #13
0
    die;
}
if (!CModule::IncludeModule('crm')) {
    ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED'));
    return;
}
$entityID = $arParams['ENTITY_ID'] = isset($arParams['ENTITY_ID']) ? intval($arParams['ENTITY_ID']) : 0;
if ($entityID < 0) {
    $entityID = 0;
}
if ($entityID === 0 && isset($_REQUEST['invoice_id'])) {
    $entityID = $arParams['ENTITY_ID'] = intval($_REQUEST['invoice_id']);
}
$arResult['ENTITY_ID'] = $entityID;
$userPerms = CCrmPerms::GetCurrentUserPermissions();
if (!($entityID !== 0 ? CCrmAuthorizationHelper::CheckUpdatePermission(CCrmOwnerType::InvoiceName, $entityID, $userPerms) : CCrmAuthorizationHelper::CheckCreatePermission(CCrmOwnerType::InvoiceName, $userPerms))) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
global $APPLICATION;
$arParams['INVOICE_SHOW_URL_TEMPLATE'] = isset($arParams['INVOICE_SHOW_URL_TEMPLATE']) ? $arParams['INVOICE_SHOW_URL_TEMPLATE'] : '';
$arParams['INVOICE_EDIT_URL_TEMPLATE'] = isset($arParams['INVOICE_EDIT_URL_TEMPLATE']) ? $arParams['INVOICE_EDIT_URL_TEMPLATE'] : '';
//$arParams['CURRENCY_SELECTOR_URL_TEMPLATE'] = isset($arParams['CURRENCY_SELECTOR_URL_TEMPLATE']) ? $arParams['CURRENCY_SELECTOR_URL_TEMPLATE'] : '';
$arParams['REQUISITE_EDIT_URL_TEMPLATE'] = isset($arParams['REQUISITE_EDIT_URL_TEMPLATE']) ? $arParams['REQUISITE_EDIT_URL_TEMPLATE'] : '';
$arParams['PRODUCT_ROW_EDIT_URL_TEMPLATE'] = isset($arParams['PRODUCT_ROW_EDIT_URL_TEMPLATE']) ? $arParams['PRODUCT_ROW_EDIT_URL_TEMPLATE'] : '';
$arParams['PRODUCT_SELECTOR_URL_TEMPLATE'] = isset($arParams['PRODUCT_SELECTOR_URL_TEMPLATE']) ? $arParams['PRODUCT_SELECTOR_URL_TEMPLATE'] : '';
$arParams['CLIENT_SELECTOR_URL_TEMPLATE'] = isset($arParams['CLIENT_SELECTOR_URL_TEMPLATE']) ? $arParams['CLIENT_SELECTOR_URL_TEMPLATE'] : '';
$arParams['DEAL_SELECTOR_URL_TEMPLATE'] = isset($arParams['DEAL_SELECTOR_URL_TEMPLATE']) ? $arParams['DEAL_SELECTOR_URL_TEMPLATE'] : '';
$arParams['INVOICE_STATUS_SELECTOR_URL_TEMPLATE'] = isset($arParams['INVOICE_STATUS_SELECTOR_URL_TEMPLATE']) ? $arParams['INVOICE_STATUS_SELECTOR_URL_TEMPLATE'] : '';
$arParams['PAY_SYSTEM_SELECTOR_URL_TEMPLATE'] = isset($arParams['PAY_SYSTEM_SELECTOR_URL_TEMPLATE']) ? $arParams['PAY_SYSTEM_SELECTOR_URL_TEMPLATE'] : '';
$arParams['LOCATION_SELECTOR_URL_TEMPLATE'] = isset($arParams['LOCATION_SELECTOR_URL_TEMPLATE']) ? $arParams['LOCATION_SELECTOR_URL_TEMPLATE'] : '';
Exemple #14
0
 public function processMethodRequest($name, $nameDetails, $arParams, $nav, $server)
 {
     $name = strtoupper($name);
     if ($name === 'ADD') {
         $fields = $this->resolveArrayParam($arParams, 'fields');
         $arComponentResult = array('USER_ID' => $this->getCurrentUserID());
         $arPOST = array('ENABLE_POST_TITLE' => 'Y', 'MESSAGE' => $fields['MESSAGE'], 'SPERM' => $fields['SPERM']);
         if (isset($fields['POST_TITLE']) && strlen($fields['POST_TITLE']) > 0) {
             $arPOST['POST_TITLE'] = $fields['POST_TITLE'];
         }
         $entityTypeID = $fields['ENTITYTYPEID'];
         $entityID = $fields['ENTITYID'];
         $entityTypeName = CCrmOwnerType::ResolveName($entityTypeID);
         $userPerms = CCrmPerms::GetCurrentUserPermissions();
         if ($entityTypeName !== '' && !CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $userPerms)) {
             throw new RestException('Access denied.');
         }
         $res = CCrmLiveFeedComponent::ProcessLogEventEditPOST($arPOST, $entityTypeID, $entityID, $arComponentResult);
         if (is_array($res)) {
             throw new RestException(implode(", ", $res));
         }
         return $res;
     }
     throw new RestException('Method not found!', RestException::ERROR_METHOD_NOT_FOUND, CRestServer::STATUS_NOT_FOUND);
 }
Exemple #15
0
 public static function PrepareConversionPermissionFlags($ID, array &$params, $userPermissions = null)
 {
     if (!$userPermissions) {
         $userPermissions = CCrmPerms::GetCurrentUserPermissions();
     }
     $canEdit = CCrmAuthorizationHelper::CheckUpdatePermission(self::$TYPE_NAME, $ID, $userPermissions);
     $canCreateContact = CCrmContact::CheckCreatePermission($userPermissions);
     $canCreateCompany = CCrmCompany::CheckCreatePermission($userPermissions);
     $canCreateDeal = CCrmDeal::CheckCreatePermission($userPermissions);
     $params['CAN_CONVERT_TO_CONTACT'] = $canEdit && $canCreateContact;
     $params['CAN_CONVERT_TO_COMPANY'] = $canEdit && $canCreateCompany;
     $params['CAN_CONVERT_TO_DEAL'] = $canEdit && $canCreateDeal;
     $params['CAN_CONVERT'] = $params['CONVERT'] = $canEdit && ($canCreateContact || $canCreateCompany || $canCreateDeal);
     $params['CONVERSION_PERMITTED'] = true;
 }
Exemple #16
0
    __CrmMobileInvoiceEditEndResonse(array('SAVED_ENTITY_ID' => $ID, 'SAVED_ENTITY_DATA' => CCrmMobileHelper::PrepareInvoiceData($item)));
} elseif ($action === 'SET_STATUS') {
    __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
    $typeName = isset($_REQUEST['ENTITY_TYPE_NAME']) ? $_REQUEST['ENTITY_TYPE_NAME'] : '';
    if ($typeName !== CCrmOwnerType::InvoiceName) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_TYPE_NOT_SUPPORTED', array('#ENTITY_TYPE#' => $typeName))));
    }
    $data = isset($_REQUEST['ENTITY_DATA']) && is_array($_REQUEST['ENTITY_DATA']) ? $_REQUEST['ENTITY_DATA'] : array();
    if (count($data) == 0) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_DATA_NOT_FOUND')));
    }
    $ID = isset($data['ID']) ? intval($data['ID']) : 0;
    if ($ID <= 0) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_ID_NOT_FOUND')));
    }
    if (!CCrmAuthorizationHelper::CheckUpdatePermission(CCrmOwnerType::InvoiceName, $ID, $curUserPrems)) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ACCESS_DENIED')));
    }
    $statusID = isset($data['STATUS_ID']) ? $data['STATUS_ID'] : '';
    if ($statusID === '') {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_STATUS_NOT_FOUND')));
    }
    $additionalData = isset($data['ADDITIONAL_DATA']) && is_array($data['ADDITIONAL_DATA']) ? $data['ADDITIONAL_DATA'] : null;
    $isSuccess = CCrmStatusInvoice::isStatusSuccess($statusID);
    $isFail = CCrmStatusInvoice::isStatusFailed($statusID);
    $statusParams = array('STATE_SUCCESS' => $isSuccess, 'STATE_FAILED' => $isFail);
    if ($isSuccess) {
        $timestamp = isset($additionalData['PAYMENT_TIME_STAMP']) ? max(intval($additionalData['PAYMENT_TIME_STAMP']), 0) : 0;
        $statusParams['PAY_VOUCHER_DATE'] = $timestamp > 0 ? ConvertTimeStamp($timestamp, 'SHORT', SITE_ID) : null;
        $statusParams['PAY_VOUCHER_NUM'] = isset($additionalData['PAYMENT_DOC']) ? substr(trim($additionalData['PAYMENT_DOC']), 0, 20) : '';
        $statusParams['REASON_MARKED'] = isset($additionalData['PAYMENT_COMMENT']) ? substr(trim($additionalData['PAYMENT_COMMENT']), 0, 255) : '';