public static function GetUserWorkflowTaskCount($workflowIDs, $userID = 0) { if (!is_array($workflowIDs)) { return 0; } if (!(IsModuleInstalled('bizproc') && CModule::IncludeModule('bizproc'))) { return 0; } $userID = intval($userID); if ($userID <= 0) { $userID = CCrmSecurityHelper::GetCurrentUserID(); } $filter = array('USER_ID' => $userID); $workflowQty = count($workflowIDs); if ($workflowQty > 1) { //IMPORTANT: will produce SQL error due to CBPTaskService::GetList bug //$filter['@WORKFLOW_ID'] = $workflowIDs; $filter['WORKFLOW_ID'] = $workflowIDs[0]; } /*elseif($workflowQty === 1) { $filter['WORKFLOW_ID'] = $workflowIDs[0]; }*/ $result = CBPTaskService::GetList(array(), $filter, array(), false, array()); return is_int($result) ? $result : 0; }
public function __construct(array $settings, $userID = 0, $enablePermissionCheck = true) { $this->settings = $settings; if (!is_int($userID)) { $userID = (int) $userID; } if ($userID <= 0) { $userID = \CCrmSecurityHelper::GetCurrentUserID(); } $this->userID = $userID; if (!is_bool($enablePermissionCheck)) { $enablePermissionCheck = (bool) $enablePermissionCheck; } $this->enablePermissionCheck = $enablePermissionCheck; }
public static function EnsureAllResponsibilityImported($userID, $reset = false) { $userID = intval($userID); if ($userID <= 0) { $userID = CCrmSecurityHelper::GetCurrentUser(); } $reset = (bool) $reset; $optionName = 'sl_subscr_import'; if ($reset || CUserOptions::GetOption('crm', $optionName, 'N', $userID) !== 'Y') { self::EnsureResponsibilityImported(CCrmOwnerType::Lead, $userID); self::EnsureResponsibilityImported(CCrmOwnerType::Contact, $userID); self::EnsureResponsibilityImported(CCrmOwnerType::Company, $userID); self::EnsureResponsibilityImported(CCrmOwnerType::Deal, $userID); self::EnsureResponsibilityImported(CCrmOwnerType::Activity, $userID); CUserOptions::SetOption('crm', $optionName, 'Y', false, $userID); } }
protected function __construct(array $settings, Filter $filter, $userID = 0, $enablePermissionCheck = true) { $this->settings = $settings; $this->filter = $filter; $this->responsibleIDs = $this->filter->getResponsibleIDs(); if (!is_int($userID)) { $userID = (int) $userID; } if ($userID <= 0) { $userID = \CCrmSecurityHelper::GetCurrentUserID(); } $this->userID = $userID; if (!is_bool($enablePermissionCheck)) { $enablePermissionCheck = (bool) $enablePermissionCheck; } $this->enablePermissionCheck = $enablePermissionCheck; //Disable permission check if filter by current user is enabled. if ($this->enablePermissionCheck && is_array($this->responsibleIDs) && count($this->responsibleIDs) === 1 && (int) $this->responsibleIDs[0] === $this->userID) { $this->enablePermissionCheck = false; } }
public static function checkCompletePermission($taskID, $userID = 0) { if (!is_int($userID)) { $userID = (int) $userID; } if ($userID <= 0) { $userID = \CCrmSecurityHelper::GetCurrentUserID(); } if (!is_int($taskID)) { $taskID = (int) $taskID; } $taskItem = self::getTaskItem($taskID, $userID); if ($taskItem === null) { return false; } try { return $taskItem->isActionAllowed(\CTaskItem::ACTION_COMPLETE); } catch (\TasksException $e) { return false; } }
Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); if (!empty($result)) { echo json_encode($result); } require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php'; die; } } if (CModule::IncludeModule('compression')) { CCompress::Disable2048Spaces(); } CUtil::JSPostUnescape(); if (!CModule::IncludeModule('crm')) { __CrmMobileFileEndResonse(array('error' => 'Could not include "crm" module.')); } if (!(check_bitrix_sessid() && CCrmSecurityHelper::IsAuthorized())) { __CrmMobileFileEndResonse(array('error' => 'Access denied.')); } global $APPLICATION; if ($_SERVER['REQUEST_METHOD'] === 'POST' && is_array($_FILES) && !empty($_FILES)) { $ID = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; $hasPermission = $ID > 0 ? CCrmContact::CheckUpdatePermission($ID) : CCrmContact::CheckCreatePermission(); if (!$hasPermission) { __CrmMobileFileEndResonse(array('error' => 'Access denied.')); } else { $result = array(); if (!CCrmMobileHelper::TryUploadFile($result, array('OWNER_TYPE_ID' => CCrmOwnerType::Contact, 'OWNER_ID' => $ID, 'SCOPE' => 'I', 'MAX_FILE_SIZE' => 5242880))) { __CrmMobileFileEndResonse(array('error' => $result['ERROR_MESSAGE'])); } else { $fileID = $result['FILE_ID']; $fileInfo = CFile::ResizeImageGet($fileID, array('width' => 55, 'height' => 55), BX_RESIZE_IMAGE_EXACT, false, false, true);
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die; } global $APPLICATION; $APPLICATION->SetAdditionalCSS('/bitrix/js/crm/css/crm.css'); $APPLICATION->IncludeComponent('bitrix:crm.control_panel', '', array('ID' => 'DEAL_WIDGET', 'ACTIVE_ITEM_ID' => 'DEAL', 'PATH_TO_COMPANY_LIST' => isset($arResult['PATH_TO_COMPANY_LIST']) ? $arResult['PATH_TO_COMPANY_LIST'] : '', 'PATH_TO_COMPANY_EDIT' => isset($arResult['PATH_TO_COMPANY_EDIT']) ? $arResult['PATH_TO_COMPANY_EDIT'] : '', 'PATH_TO_CONTACT_LIST' => isset($arResult['PATH_TO_CONTACT_LIST']) ? $arResult['PATH_TO_CONTACT_LIST'] : '', 'PATH_TO_DEAL_WIDGET' => isset($arResult['PATH_TO_DEAL_WIDGET']) ? $arResult['PATH_TO_DEAL_WIDGET'] : '', 'PATH_TO_DEAL_INDEX' => isset($arResult['PATH_TO_DEAL_INDEX']) ? $arResult['PATH_TO_DEAL_INDEX'] : '', 'PATH_TO_DEAL_LIST' => isset($arResult['PATH_TO_DEAL_LIST']) ? $arResult['PATH_TO_DEAL_LIST'] : '', 'PATH_TO_DEAL_EDIT' => isset($arResult['PATH_TO_DEAL_EDIT']) ? $arResult['PATH_TO_DEAL_EDIT'] : '', 'PATH_TO_LEAD_LIST' => isset($arResult['PATH_TO_LEAD_LIST']) ? $arResult['PATH_TO_LEAD_LIST'] : '', 'PATH_TO_LEAD_EDIT' => isset($arResult['PATH_TO_LEAD_EDIT']) ? $arResult['PATH_TO_LEAD_EDIT'] : '', 'PATH_TO_QUOTE_LIST' => isset($arResult['PATH_TO_QUOTE_LIST']) ? $arResult['PATH_TO_QUOTE_LIST'] : '', 'PATH_TO_QUOTE_EDIT' => isset($arResult['PATH_TO_QUOTE_EDIT']) ? $arResult['PATH_TO_QUOTE_EDIT'] : '', 'PATH_TO_INVOICE_LIST' => isset($arResult['PATH_TO_INVOICE_LIST']) ? $arResult['PATH_TO_INVOICE_LIST'] : '', 'PATH_TO_INVOICE_EDIT' => isset($arResult['PATH_TO_INVOICE_EDIT']) ? $arResult['PATH_TO_INVOICE_EDIT'] : '', 'PATH_TO_REPORT_LIST' => isset($arResult['PATH_TO_REPORT_LIST']) ? $arResult['PATH_TO_REPORT_LIST'] : '', 'PATH_TO_DEAL_FUNNEL' => isset($arResult['PATH_TO_DEAL_FUNNEL']) ? $arResult['PATH_TO_DEAL_FUNNEL'] : '', 'PATH_TO_EVENT_LIST' => isset($arResult['PATH_TO_EVENT_LIST']) ? $arResult['PATH_TO_EVENT_LIST'] : '', 'PATH_TO_PRODUCT_LIST' => isset($arResult['PATH_TO_PRODUCT_LIST']) ? $arResult['PATH_TO_PRODUCT_LIST'] : ''), $component); ?> <div class="bx-crm-view"><?php $APPLICATION->IncludeComponent('bitrix:crm.widget_panel', '', array('GUID' => 'deal_widget', 'ENTITY_TYPE' => 'DEAL', 'LAYOUT' => '50/50', 'NAVIGATION_CONTEXT_ID' => $arResult['NAVIGATION_CONTEXT_ID'], 'PATH_TO_WIDGET' => isset($arResult['PATH_TO_DEAL_WIDGET']) ? $arResult['PATH_TO_DEAL_WIDGET'] : '', 'PATH_TO_LIST' => isset($arResult['PATH_TO_DEAL_LIST']) ? $arResult['PATH_TO_DEAL_LIST'] : '', 'ROWS' => array(array('height' => 380, 'cells' => array(array('controls' => array(array('title' => GetMessage('CRM_DEAL_WGT_FUNNEL'), 'typeName' => 'funnel'))), array('controls' => array(array('typeName' => 'number', 'layout' => 'tiled', 'configs' => array(array('name' => 'sum1', 'title' => GetMessage('CRM_DEAL_WGT_SUM_DEAL_OVERALL'), 'dataPreset' => 'DEAL_SUM_STATS::OVERALL_SUM', 'dataSource' => 'DEAL_SUM_STATS', 'select' => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'), 'format' => array('isCurrency' => 'Y', 'enableDecimals' => 'N')), array('name' => 'sum2', 'title' => GetMessage('CRM_DEAL_WGT_SUM_DEAL_WON'), 'dataPreset' => 'DEAL_SUM_STATS::OVERALL_SUM', 'dataSource' => 'DEAL_SUM_STATS', 'select' => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'), 'filter' => array('semanticID' => 'S'), 'format' => array('isCurrency' => 'Y', 'enableDecimals' => 'N')), array('name' => 'diff', 'title' => GetMessage('CRM_DEAL_WGT_SUM_DEAL_IN_WORK'), 'dataSource' => array('name' => 'EXPRESSION', 'operation' => 'diff', 'arguments' => array('%sum1%', '%sum2%')), 'format' => array('isCurrency' => 'Y', 'enableDecimals' => 'N')))))))), array('height' => 180, 'cells' => array(array('controls' => array(array('title' => GetMessage('CRM_DEAL_WGT_RATING'), 'typeName' => 'rating', 'group' => 'USER', 'nominee' => CCrmSecurityHelper::GetCurrentUserID(), 'configs' => array(array('name' => 'sum1', 'dataPreset' => 'DEAL_SUM_STATS::OVERALL_SUM', 'dataSource' => 'DEAL_SUM_STATS', 'select' => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'), 'filter' => array('semanticID' => 'S'), 'format' => array('isCurrency' => 'Y', 'enableDecimals' => 'N')))))))), array('height' => 380, 'cells' => array(array('controls' => array(array('typeName' => 'number', 'layout' => 'tiled', 'configs' => array(array('name' => 'sum1', 'title' => GetMessage('CRM_DEAL_WGT_SUM_INVOICE_OVERALL'), 'dataPreset' => 'DEAL_INVOICE_STATS::OVERALL_SUM', 'dataSource' => 'DEAL_INVOICE_STATS', 'select' => array('name' => 'TOTAL_INVOICE_SUM', 'aggregate' => 'SUM'), 'filter' => array('semanticID' => 'S'), 'format' => array('isCurrency' => 'Y', 'enableDecimals' => 'N')), array('name' => 'sum2', 'title' => GetMessage('CRM_DEAL_WGT_SUM_INVOICE_OWED'), 'dataPreset' => 'DEAL_INVOICE_STATS::OVERALL_OWED_SUM', 'dataSource' => 'DEAL_INVOICE_STATS', 'select' => array('name' => 'TOTAL_OWED', 'aggregate' => 'SUM'), 'filter' => array('semanticID' => 'S'), 'format' => array('isCurrency' => 'Y', 'enableDecimals' => 'N')), array('name' => 'sum3', 'title' => GetMessage('CRM_DEAL_WGT_SUM_DEAL_WON'), 'dataPreset' => 'DEAL_SUM_STATS::OVERALL_SUM', 'dataSource' => 'DEAL_SUM_STATS', 'select' => array('name' => 'SUM_TOTAL', 'aggregate' => 'SUM'), 'filter' => array('semanticID' => 'S'), 'format' => array('isCurrency' => 'Y', 'enableDecimals' => 'N')))))), array('controls' => array(array('title' => GetMessage('CRM_DEAL_WGT_PAYMENT_CONTROL'), 'typeName' => 'bar', 'group' => 'DATE', 'context' => 'F', 'combineData' => true, 'configs' => array(array('name' => 'sum1', 'title' => GetMessage('CRM_DEAL_WGT_SUM_INVOICE_OVERALL'), 'dataPreset' => 'DEAL_INVOICE_STATS::OVERALL_SUM', 'dataSource' => 'DEAL_INVOICE_STATS', 'select' => array('name' => 'TOTAL_INVOICE_SUM', 'aggregate' => 'SUM'), 'filter' => array('semanticID' => 'S'), 'display' => array('graph' => array('clustered' => 'N'), 'colorScheme' => 'green')), array('name' => 'sum2', 'title' => GetMessage('CRM_DEAL_WGT_SUM_INVOICE_OWED'), 'dataPreset' => 'DEAL_INVOICE_STATS::OVERALL_OWED_SUM', 'dataSource' => 'DEAL_INVOICE_STATS', 'select' => array('name' => 'TOTAL_OWED', 'aggregate' => 'SUM'), 'filter' => array('semanticID' => 'S'), 'display' => array('graph' => array('clustered' => 'N'), 'colorScheme' => 'red')))))))), array('height' => 380, 'cells' => array(array('controls' => array(array('title' => GetMessage('CRM_DEAL_WGT_DEAL_IN_WORK'), 'typeName' => 'graph', 'group' => 'DATE', 'context' => 'E', 'combineData' => true, 'configs' => array(array('name' => 'qty1', 'title' => GetMessage('CRM_DEAL_WGT_QTY_DEAL_IN_WORK'), 'dataPreset' => 'DEAL_IN_WORK::OVERALL_COUNT', 'dataSource' => 'DEAL_IN_WORK', 'select' => array('name' => 'COUNT')), array('name' => 'qty2', 'title' => GetMessage('CRM_DEAL_WGT_QTY_CALL'), 'dataPreset' => 'DEAL_ACTIVITY_STATS::CALL_OVERALL_COUNT', 'dataSource' => 'DEAL_ACTIVITY_STATS', 'select' => array('name' => 'CALL_QTY', 'aggregate' => 'SUM'), 'filter' => array()), array('name' => 'qty3', 'title' => GetMessage('CRM_DEAL_WGT_QTY_ACTIVITY'), 'dataPreset' => 'DEAL_ACTIVITY_STATS::OVERALL_COUNT', 'dataSource' => 'DEAL_ACTIVITY_STATS', 'select' => array('name' => 'TOTAL', 'aggregate' => 'SUM'), 'filter' => array()))))), array('controls' => array(array('typeName' => 'number', 'layout' => 'tiled', 'configs' => array(array('name' => 'qty1', 'title' => GetMessage('CRM_DEAL_WGT_QTY_DEAL_IN_WORK'), 'dataPreset' => 'DEAL_IN_WORK::OVERALL_COUNT', 'dataSource' => 'DEAL_IN_WORK', 'select' => array('name' => 'COUNT')), array('name' => 'qty2', 'title' => GetMessage('CRM_DEAL_WGT_QTY_ACTIVITY'), 'dataPreset' => 'DEAL_ACTIVITY_STATS::OVERALL_COUNT', 'dataSource' => 'DEAL_ACTIVITY_STATS', 'select' => array('name' => 'TOTAL', 'aggregate' => 'SUM'), 'filter' => array()), array('name' => 'qty3', 'title' => GetMessage('CRM_DEAL_WGT_QTY_CALL'), 'dataPreset' => 'DEAL_ACTIVITY_STATS::CALL_OVERALL_COUNT', 'dataSource' => 'DEAL_ACTIVITY_STATS', 'select' => array('name' => 'CALL_QTY', 'aggregate' => 'SUM'), 'filter' => array()))))))), array('height' => 180, 'cells' => array(array('controls' => array(array('typeName' => 'number', 'configs' => array(array('name' => 'qty1', 'title' => GetMessage('CRM_DEAL_WGT_QTY_DEAL_IDLE'), 'dataPreset' => 'DEAL_IDLE::OVERALL_COUNT', 'dataSource' => 'DEAL_IDLE', 'select' => array('name' => 'COUNT'))))))))))); ?> </div>
$userPerms = CCrmPerms::GetCurrentUserPermissions(); if ($userPerms->HavePerm('CONTACT', BX_CRM_PERM_NONE, 'READ')) { ShowError(GetMessage('CRM_PERMISSION_DENIED')); return; } global $APPLICATION; $arResult['RUBRIC'] = array('ENABLED' => false); $enablePaging = $arResult['ENABLE_PAGING'] = isset($_GET['PAGING']) && strtoupper($_GET['PAGING']) === 'Y'; $enableSearch = $arResult['ENABLE_SEARCH'] = isset($_GET['SEARCH']) && strtoupper($_GET['SEARCH']) === 'Y'; if ($enableSearch) { // decode encodeURIComponent params CUtil::JSPostUnescape(); } $companyID = $arResult['COMPANY_ID'] = isset($_GET['company_id']) ? intval($_GET['company_id']) : 0; $arResult['SHOW_SEARCH_PANEL'] = $companyID <= 0; $currentUserID = $arResult['USER_ID'] = intval(CCrmSecurityHelper::GetCurrentUserID()); $arParams['CONTACT_EDIT_URL_TEMPLATE'] = isset($arParams['CONTACT_EDIT_URL_TEMPLATE']) ? $arParams['CONTACT_EDIT_URL_TEMPLATE'] : ''; $arParams['CONTACT_SHOW_URL_TEMPLATE'] = isset($arParams['CONTACT_SHOW_URL_TEMPLATE']) ? $arParams['CONTACT_SHOW_URL_TEMPLATE'] : ''; $arParams['COMPANY_SHOW_URL_TEMPLATE'] = isset($arParams['COMPANY_SHOW_URL_TEMPLATE']) ? $arParams['COMPANY_SHOW_URL_TEMPLATE'] : ''; $arParams['USER_PROFILE_URL_TEMPLATE'] = isset($arParams['USER_PROFILE_URL_TEMPLATE']) ? $arParams['USER_PROFILE_URL_TEMPLATE'] : ''; $arParams['NAME_TEMPLATE'] = isset($arParams['NAME_TEMPLATE']) ? str_replace(array('#NOBR#', '#/NOBR#'), array('', ''), $arParams['NAME_TEMPLATE']) : CSite::GetNameFormat(false); $arParams['UID'] = isset($arParams['UID']) ? $arParams['UID'] : ''; if (!isset($arParams['UID']) || $arParams['UID'] === '') { $arParams['UID'] = 'mobile_crm_contact_list'; } $arResult['UID'] = $arParams['UID']; /* $arParams['PULL_TAG'] = $arResult['PULL_TAG'] = isset($arParams['PULL_TAG']) ? $arParams['PULL_TAG'] : 'CRM_CONTACT_CHANGE'; $arParams['PULL_UPDATE_CMD'] = $arResult['PULL_UPDATE_CMD'] = isset($arParams['PULL_UPDATE_CMD']) ? $arParams['PULL_UPDATE_CMD'] : 'crm_contact_update'; $arParams['PULL_DELETE_CMD'] = $arResult['PULL_DELETE_CMD'] = isset($arParams['PULL_DELETE_CMD']) ? $arParams['PULL_DELETE_CMD'] : 'crm_contact_delete'; */
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/bx_root.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; if (!defined('LANGUAGE_ID')) { $dbSite = CSite::GetByID(SITE_ID); $arSite = $dbSite ? $dbSite->Fetch() : null; define('LANGUAGE_ID', $arSite ? $arSite['LANGUAGE_ID'] : 'en'); } //session_write_close(); if (!CModule::IncludeModule('crm')) { die; } if (CModule::IncludeModule('compression')) { CCompress::Disable2048Spaces(); } global $APPLICATION, $DB; $curUser = CCrmSecurityHelper::GetCurrentUser(); if (!$curUser || !$curUser->IsAuthorized() || !check_bitrix_sessid() || $_SERVER['REQUEST_METHOD'] != 'POST') { die; } //$langID = isset($_REQUEST['lang_id'])? $_REQUEST['lang_id']: LANGUAGE_ID; //__IncludeLang(dirname(__FILE__).'/lang/'.$langID.'/'.basename(__FILE__)); CUtil::JSPostUnescape(); if (!function_exists('__CrmMobileDealEditEndResonse')) { function __CrmMobileDealEditEndResonse($result) { $GLOBALS['APPLICATION']->RestartBuffer(); Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); if (!empty($result)) { echo CUtil::PhpToJSObject($result); } require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php';
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule('crm')) { return; } $currentUserID = CCrmSecurityHelper::GetCurrentUserID(); $CrmPerms = CCrmPerms::GetCurrentUserPermissions(); if ($CrmPerms->HavePerm('DEAL', BX_CRM_PERM_NONE)) { return; } $arParams['PATH_TO_DEAL_LIST'] = CrmCheckPath('PATH_TO_DEAL_LIST', $arParams['PATH_TO_DEAL_LIST'], $APPLICATION->GetCurPage()); $arParams['PATH_TO_DEAL_SHOW'] = CrmCheckPath('PATH_TO_DEAL_SHOW', $arParams['PATH_TO_DEAL_SHOW'], $APPLICATION->GetCurPage() . '?deal_id=#deal_id#&show'); $arParams['PATH_TO_DEAL_EDIT'] = CrmCheckPath('PATH_TO_DEAL_EDIT', $arParams['PATH_TO_DEAL_EDIT'], $APPLICATION->GetCurPage() . '?deal_id=#deal_id#&edit'); $arParams['PATH_TO_DEAL_IMPORT'] = CrmCheckPath('PATH_TO_DEAL_IMPORT', $arParams['PATH_TO_DEAL_IMPORT'], $APPLICATION->GetCurPage() . '?import'); $arParams['ELEMENT_ID'] = isset($arParams['ELEMENT_ID']) ? intval($arParams['ELEMENT_ID']) : 0; if (!isset($arParams['TYPE'])) { $arParams['TYPE'] = 'list'; } if (isset($_REQUEST['copy'])) { $arParams['TYPE'] = 'copy'; } $toolbarID = 'toolbar_deal_' . $arParams['TYPE']; if ($arParams['ELEMENT_ID'] > 0) { $toolbarID .= '_' . $arParams['ELEMENT_ID']; } $arResult['TOOLBAR_ID'] = $toolbarID; $arResult['BUTTONS'] = array(); if ($arParams['TYPE'] == 'list') {
public function Delete($ID, $arEntityAttr) { if (!CModule::IncludeModule('bizproc')) { return true; } $userID = CCrmSecurityHelper::GetCurrentUserID(); $bDeleteError = !CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::WriteDocument, $userID, array('crm', $this->sDocument, $this->sEntityType . '_' . $ID), array('UserGroups' => $this->arCurrentUserGroups, 'UserIsAdmin' => CCrmPerms::IsAdmin($userID), 'CRMEntityAttr' => $arEntityAttr)); if (!$bDeleteError) { return $this->ProcessDeletion($ID); } return true; }
if (!empty($result)) { echo CUtil::PhpToJSObject($result); } require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php'; die; } } if (!CModule::IncludeModule('crm')) { __CrmConfigFieldEditEndResonse(array('ERROR' => 'Could not include crm module.')); } /* * ONLY 'POST' METHOD SUPPORTED * SUPPORTED ACTIONS: * 'ADD_FIELD' - add new field */ if (!CCrmSecurityHelper::IsAuthorized() || !check_bitrix_sessid()) { __CrmConfigFieldEditEndResonse(array('ERROR' => 'Access denied.')); } if ($_SERVER['REQUEST_METHOD'] != 'POST') { __CrmConfigFieldEditEndResonse(array('ERROR' => 'Request method is not allowed.')); } CUtil::JSPostUnescape(); $action = isset($_POST['ACTION']) ? $_POST['ACTION'] : ''; if ($action === 'ADD_FIELD') { if (!CCrmAuthorizationHelper::CheckConfigurationUpdatePermission()) { __CrmConfigFieldEditEndResonse(array('ERROR' => 'Access denied.')); } $data = isset($_POST['DATA']) && is_array($_POST['DATA']) ? $_POST['DATA'] : array(); if (count($data) == 0) { __CrmConfigFieldEditEndResonse(array('ERROR' => "The parameter 'data' is not found or empty.")); }
/** * @param array $fileData * @param string $siteID * @param array $params * @return int|false */ public static function saveFile(array $fileData, $siteID = '', $params = array()) { if (!(IsModuleInstalled('disk') && Loader::includeModule('disk'))) { return false; } if ($siteID === '') { $siteID = self::getDefaultSiteID(); } if (!is_array($params)) { $params = array(); } $typeID = isset($params['TYPE_ID']) ? (int) $params['TYPE_ID'] : StorageFileType::Undefined; if (!StorageFileType::IsDefined($typeID)) { $typeID = StorageFileType::EmailAttachment; } $folder = self::ensureFolderCreated($typeID, $siteID); if (!$folder) { return false; } $userID = isset($params['USER_ID']) ? (int) $params['USER_ID'] : 0; if ($userID <= 0) { $userID = \CCrmSecurityHelper::GetCurrentUserID(); } else { if ($userID <= 0) { $userID = SystemUser::SYSTEM_USER_ID; } } $file = $folder->addFile(array('NAME' => Text::correctFilename($fileData['ORIGINAL_NAME']), 'FILE_ID' => (int) $fileData['ID'], 'SIZE' => (int) $fileData['FILE_SIZE'], 'CREATED_BY' => $userID), array(), true); return $file ? $file->getId() : false; }
public function Delete($ID, $arOptions = array()) { global $DB, $APPLICATION; $ID = intval($ID); $iUserId = CCrmSecurityHelper::GetCurrentUserID(); $sWherePerm = ''; if ($this->bCheckPermission) { $arEntityAttr = $this->cPerms->GetEntityAttr('COMPANY', $ID); $sEntityPerm = $this->cPerms->GetPermType('COMPANY', 'DELETE', $arEntityAttr[$ID]); if ($sEntityPerm == BX_CRM_PERM_NONE) { return false; } else { if ($sEntityPerm == BX_CRM_PERM_SELF) { $sWherePerm = " AND ASSIGNED_BY_ID = {$iUserId}"; } else { if ($sEntityPerm == BX_CRM_PERM_OPEN) { $sWherePerm = " AND (OPENED = 'Y' OR ASSIGNED_BY_ID = {$iUserId})"; } } } } $APPLICATION->ResetException(); $events = GetModuleEvents('crm', 'OnBeforeCrmCompanyDelete'); while ($arEvent = $events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { $err = GetMessage("MAIN_BEFORE_DEL_ERR") . ' ' . $arEvent['TO_NAME']; if ($ex = $APPLICATION->GetException()) { $err .= ': ' . $ex->GetString(); } $APPLICATION->throwException($err); return false; } } $obRes = $DB->Query("DELETE FROM b_crm_company WHERE ID = {$ID}{$sWherePerm}", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); if (is_object($obRes) && $obRes->AffectedRowsCount() > 0) { $DB->Query("DELETE FROM b_crm_entity_perms WHERE ENTITY='COMPANY' AND ENTITY_ID = {$ID}", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); $GLOBALS['USER_FIELD_MANAGER']->Delete(self::$sUFEntityID, $ID); $CCrmFieldMulti = new CCrmFieldMulti(); $CCrmFieldMulti->DeleteByElement('COMPANY', $ID); $CCrmEvent = new CCrmEvent(); $CCrmEvent->DeleteByElement('COMPANY', $ID); \Bitrix\Crm\Integrity\DuplicateEntityRanking::unregisterEntityStatistics(CCrmOwnerType::Company, $ID); \Bitrix\Crm\Integrity\DuplicateOrganizationCriterion::unregister(CCrmOwnerType::Company, $ID); \Bitrix\Crm\Integrity\DuplicateCommunicationCriterion::unregister(CCrmOwnerType::Company, $ID); \Bitrix\Crm\Integrity\DuplicateIndexMismatch::unregisterEntity(CCrmOwnerType::Company, $ID); $enableDupIndexInvalidation = is_array($arOptions) && isset($arOptions['ENABLE_DUP_INDEX_INVALIDATION']) ? (bool) $arOptions['ENABLE_DUP_INDEX_INVALIDATION'] : true; if ($enableDupIndexInvalidation) { \Bitrix\Crm\Integrity\DuplicateIndexBuilder::markAsJunk(CCrmOwnerType::Company, $ID); } CCrmActivity::DeleteByOwner(CCrmOwnerType::Company, $ID); CCrmSearch::DeleteSearch('COMPANY', $ID); CCrmSonetSubscription::UnRegisterSubscriptionByEntity(CCrmOwnerType::Company, $ID); CCrmLiveFeed::DeleteLogEvents(array('ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $ID)); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("crm_entity_name_" . CCrmOwnerType::Company . "_" . $ID); } } return true; }
public static function GetCurrentUserAttr() { return self::GetUserAttr(CCrmSecurityHelper::GetCurrentUserID()); }
<?php define('STOP_STATISTICS', true); define('BX_SECURITY_SHOW_MESSAGE', true); require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; if (!CModule::IncludeModule('crm')) { return; } if (!CCrmSecurityHelper::IsAuthorized() || $_REQUEST['MODE'] != 'SEARCH') { return; } $bResultWithValue = isset($_REQUEST['RESULT_WITH_VALUE']) && $_REQUEST['RESULT_WITH_VALUE'] === 'Y'; $CrmPerms = CCrmPerms::GetCurrentUserPermissions(); if (!(CCrmPerms::IsAccessEnabled($CrmPerms) && $CrmPerms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'READ'))) { return; } __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); CUtil::JSPostUnescape(); $GLOBALS['APPLICATION']->RestartBuffer(); $search = trim($_REQUEST['VALUE']); $multi = isset($_REQUEST['MULTI']) && $_REQUEST['MULTI'] == 'Y' ? true : false; $arData = array(); $enableSearchByID = true; if (isset($_REQUEST['ENABLE_SEARCH_BY_ID'])) { $enableSearchByID = strtoupper($_REQUEST['ENABLE_SEARCH_BY_ID']) === 'Y'; } if ($enableSearchByID && is_numeric($search)) { $arFilter['ID'] = (int) $search; } elseif (preg_match('/(.*)\\[(\\d+?)\\]/i' . BX_UTF_PCRE_MODIFIER, $search, $arMatches)) { $arFilter['ID'] = intval($arMatches[2]); $arFilter['%NAME'] = trim($arMatches[1]);
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule('crm')) { return false; } $arGadgetParams['PATH_TO_FULL_VIEW'] = CrmCheckPath('PATH_TO_FULL_VIEW', $arGadgetParams['PATH_TO_FULL_VIEW'], COption::GetOptionString('crm', 'path_to_activity_list')); if (!is_array($arGadgetParams) || !array_key_exists('ITEM_COUNT', $arGadgetParams) || $arGadgetParams['ITEM_COUNT'] <= 0) { $arGadgetParams['ITEM_COUNT'] = 5; } global $APPLICATION; $APPLICATION->IncludeComponent('bitrix:crm.activity.list', 'gadget', array('PERMISSION_TYPE' => 'WRITE', 'ENABLE_TOOLBAR' => false, 'ENABLE_NAVIGATION' => true, 'DISPLAY_REFERENCE' => true, 'DISPLAY_CLIENT' => true, 'AJAX_MODE' => 'N', 'PREFIX' => 'GADGET_MY_ACTIVITIES', 'ITEM_COUNT' => $arGadgetParams['ITEM_COUNT'], 'PATH_TO_FULL_VIEW' => $arGadgetParams['PATH_TO_FULL_VIEW'], 'DEFAULT_FILTER' => array('LOGIC' => 'AND', 'RESPONSIBLE_ID' => CCrmSecurityHelper::GetCurrentUserID(), '__INNER_FILTER_RECENT_CHANGED' => array('LOGIC' => 'OR', 'COMPLETED' => 'N', '>=LAST_UPDATED' => ConvertTimeStamp(AddToTimeStamp(array('HH' => -1), time() + CTimeZone::GetOffset()), 'FULL')))), false, array('HIDE_ICONS' => 'Y'));
public function createInvoices(array $params) { $count = isset($params['COUNT']) ? (int) $params['COUNT'] : 0; if ($count <= 0) { return; } $sum = isset($params['SUM']) ? (int) $params['SUM'] : 0; if ($sum <= 0) { return; } $dealID = isset($params['DEAL_ID']) ? (int) $params['DEAL_ID'] : 0; $companyID = isset($params['COMPANY_ID']) ? (int) $params['COMPANY_ID'] : 0; $contactID = isset($params['CONTACT_ID']) ? (int) $params['CONTACT_ID'] : 0; $userIDs = isset($params['USER_IDS']) && is_array($params['USER_IDS']) ? $params['USER_IDS'] : array(); if (empty($userIDs)) { $userIDs[] = \CCrmSecurityHelper::GetCurrentUserID(); } $prefix = isset($params['PREFIX']) ? $params['PREFIX'] : ''; if ($prefix === '') { $prefix = $this->id; } $date = isset($params['DATE']) ? $params['DATE'] : null; if (!$date) { $date = $date = new Date(); } $maxDateOffset = isset($params['MAX_DATE_OFFSET']) ? (int) $params['MAX_DATE_OFFSET'] : 0; $dateFormat = Date::convertFormatToPhp(FORMAT_DATE); $dateTimeFormat = Date::convertFormatToPhp(FORMAT_DATETIME); $isWon = isset($params['IS_WON']) ? $params['IS_WON'] : false; if ($isWon) { $totalSum = $sum; } else { $totalSum = $sum - mt_rand((int) ($sum / 3), $sum); } $entity = new \CCrmInvoice(false); $invoiceSum = (int) $totalSum / $count; $totalInvoiceSum = 0; for ($i = 1; $i <= $count; $i++) { if ($i == $count) { $invoiceSum = $totalSum - $totalInvoiceSum; } $totalInvoiceSum += $invoiceSum; $time = DateTime::createFromTimestamp($date->getTimestamp()); if ($maxDateOffset > 0) { $time->add(mt_rand(0, $maxDateOffset) . ' days'); } $time->setTime(mt_rand(8, 20), mt_rand(0, 59), 0); $siteTime = $time->format($dateTimeFormat); $siteDate = $time->format($dateFormat); \CCrmOwnerType::GetCaption(\CCrmOwnerType::Company, $companyID, false); $companyInfo = self::getCompanyInfo($companyID); $contactInfo = self::getContactInfo($contactID); $fields = array('ORDER_TOPIC' => "{$prefix} invoice # {$i}", 'STATUS_ID' => $isWon ? 'P' : 'N', 'DATE_INSERT' => $siteTime, 'DATE_BILL' => $siteDate, 'RESPONSIBLE_ID' => self::getRandomItem($userIDs), 'UF_DEAL_ID' => $dealID, 'UF_COMPANY_ID' => $companyID, 'UF_CONTACT_ID' => $contactID, 'PERSON_TYPE_ID' => 1, 'PAY_SYSTEM_ID' => 1, 'INVOICE_PROPERTIES' => array(10 => $companyInfo['TITLE'], 11 => $companyInfo['FULL_ADDRESS'], 12 => $contactInfo['FULL_NAME'], 13 => $contactInfo['EMAIL'], 14 => $contactInfo['PHONE']), 'PRODUCT_ROWS' => array(array('ID' => 0, 'PRODUCT_NAME' => "{$prefix} product", 'QUANTITY' => 1, 'PRICE' => $invoiceSum, 'PRODUCT_ID' => 0, 'CUSTOMIZED' => 'Y'))); $ID = $entity->Add($fields); } }
private static function GetSubSelect($arLogFields, $bDecrement = false) { global $DB; $author_id = CCrmSecurityHelper::GetCurrentUserID(); if ($author_id <= 0 && isset($arLogFields["USER_ID"])) { $author_id = intval($arLogFields["USER_ID"]); } if ($author_id <= 0) { return ""; } $entityTypeID = CCrmLiveFeedEntity::ResolveEntityTypeID($arLogFields["ENTITY_TYPE"]); $entityID = $arLogFields["ENTITY_ID"]; $arEntities = array(); if ($entityTypeID == CCrmOwnerType::Activity) { if ($arActivity = CCrmActivity::GetByID($entityID)) { $entityTypeID = $arActivity["OWNER_TYPE_ID"]; $entityID = $arActivity["OWNER_ID"]; $entityName = CCrmOwnerType::ResolveName($entityTypeID); $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false); $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false); if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0) { if (!array_key_exists($entityName, $arEntities)) { $arEntities[$entityName] = array(); } $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id); } $arCommunications = CCrmActivity::GetCommunications($arActivity["ID"]); foreach ($arCommunications as $arActivityCommunication) { $entityTypeID = $arActivityCommunication["ENTITY_TYPE_ID"]; $entityID = $arActivityCommunication["ENTITY_ID"]; $entityName = CCrmOwnerType::ResolveName($entityTypeID); $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false); $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false); if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0) { if (!array_key_exists($entityName, $arEntities)) { $arEntities[$entityName] = array(); } $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id); } } } } elseif ($entityTypeID == CCrmOwnerType::Invoice) { if ($arInvoice = CCrmInvoice::GetByID($entityID)) { $arBindings = array(CCrmOwnerType::Contact => $arInvoice["UF_CONTACT_ID"], CCrmOwnerType::Company => $arInvoice["UF_COMPANY_ID"], CCrmOwnerType::Deal => $arInvoice["UF_DEAL_ID"]); foreach ($arBindings as $entityTypeID => $entityID) { if (intval($entityID) > 0) { $entityName = CCrmOwnerType::ResolveName($entityTypeID); $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false); $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false); if ($entityName && intval($responsible_id) > 0) { if (!array_key_exists($entityName, $arEntities)) { $arEntities[$entityName] = array(); } $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id); } } } } } else { $entityName = CCrmOwnerType::ResolveName($entityTypeID); $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false); $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false); if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0) { if (!array_key_exists($entityName, $arEntities)) { $arEntities[$entityName] = array(); } $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id); } } if (intval($arLogFields["LOG_ID"]) > 0 && in_array($arLogFields["EVENT_ID"], array("crm_lead_message", "crm_deal_message", "crm_contact_message", "crm_company_message"))) { $dbRight = CSocNetLogRights::GetList(array(), array("LOG_ID" => $arLogFields["LOG_ID"])); while ($arRight = $dbRight->Fetch()) { if (preg_match('/^(' . CCrmLiveFeedEntity::Contact . '|' . CCrmLiveFeedEntity::Lead . '|' . CCrmLiveFeedEntity::Company . '|' . CCrmLiveFeedEntity::Deal . ')(\\d+)$/', $arRight["GROUP_CODE"], $matches)) { $entityTypeID = CCrmLiveFeedEntity::ResolveEntityTypeID($matches[1]); $entityID = $matches[2]; $entityName = CCrmOwnerType::ResolveName($entityTypeID); $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false); if (!array_key_exists($entityName, $arEntities)) { $arEntities[$entityName] = array(); } if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0 && !array_key_exists($entityTypeID . "_" . $entityID, $arEntities[$entityName])) { $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => CCrmOwnerType::isOpened($entityTypeID, $entityID, false), "RESPONSIBLE_ID" => $responsible_id); } } } } $arUserID = array(); foreach ($arEntities as $entityName => $arTmp) { $sSql = "SELECT RL.RELATION, RP.ATTR \n\t\t\t\tFROM b_crm_role_relation RL \n\t\t\t\tINNER JOIN b_crm_role_perms RP ON RL.ROLE_ID = RP.ROLE_ID AND RP.ENTITY = '" . $entityName . "' AND RP.PERM_TYPE = 'READ'\n\t\t\t"; $res = $DB->Query($sSql, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); while ($row = $res->Fetch()) { $user_id = false; switch ($row["ATTR"]) { case BX_CRM_PERM_SELF: foreach ($arTmp as $arEntity) { $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tUA.USER_ID = " . intval($arEntity["RESPONSIBLE_ID"]) . "\n\t\t\t\t\t\t\t\tAND UA.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'"; $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); if (($arUser = $rsUser->Fetch()) && !in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) { $arUserID[] = $arUser["USER_ID"]; } } break; case BX_CRM_PERM_ALL: case BX_CRM_PERM_CONFIG: $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tUA.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'"; $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); while ($arUser = $rsUser->Fetch()) { if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) { $arUserID[] = $arUser["USER_ID"]; } } break; case BX_CRM_PERM_OPEN: foreach ($arTmp as $arEntity) { if ($arEntity["IS_OPENED"]) { $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\tUA.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'"; $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); while ($arUser = $rsUser->Fetch()) { if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) { $arUserID[] = $arUser["USER_ID"]; } } } } break; case BX_CRM_PERM_DEPARTMENT: foreach ($arTmp as $arEntity) { $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\tINNER JOIN b_user_access UA1 ON \n\t\t\t\t\t\t\t\tUA1.USER_ID = " . intval($arEntity["RESPONSIBLE_ID"]) . "\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE LIKE 'D%'\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE NOT LIKE 'DR%'\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE = UA.ACCESS_CODE\n\t\t\t\t\t\t\tINNER JOIN b_user_access UA2 ON \n\t\t\t\t\t\t\t\tUA2.USER_ID = UA.USER_ID\n\t\t\t\t\t\t\t\tAND UA2.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'"; $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); while ($arUser = $rsUser->Fetch()) { if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) { $arUserID[] = $arUser["USER_ID"]; } } } break; case BX_CRM_PERM_SUBDEPARTMENT: foreach ($arTmp as $arEntity) { $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\tINNER JOIN b_user_access UA1 ON \n\t\t\t\t\t\t\t\tUA1.USER_ID = " . intval($arEntity["RESPONSIBLE_ID"]) . "\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE LIKE 'DR%'\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE = UA.ACCESS_CODE\n\t\t\t\t\t\t\tINNER JOIN b_user_access UA2 ON \n\t\t\t\t\t\t\t\tUA2.USER_ID = UA.USER_ID\n\t\t\t\t\t\t\t\tAND UA2.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'"; $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); while ($arUser = $rsUser->Fetch()) { if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) { $arUserID[] = $arUser["USER_ID"]; } } } break; } } } $strSubscription = ""; $cnt = 0; foreach ($arEntities as $entityName => $arTmp) { foreach ($arTmp as $arEntity) { if ($cnt > 0) { $strSubscription .= " OR "; } $strSubscription .= "\n\t\t\t\t\tEXISTS (\n\t\t\t\t\t\t\tSELECT S.USER_ID \n\t\t\t\t\t\t\tFROM " . CCrmSonetSubscription::TABLE_NAME . " S \n\t\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t\tS.SL_ENTITY_TYPE = '" . CCrmLiveFeedEntity::GetByEntityTypeID($arEntity["ENTITY_TYPE_ID"]) . "'\n\t\t\t\t\t\t\t\tAND S.ENTITY_ID = " . intval($arEntity["ENTITY_ID"]) . "\n\t\t\t\t\t\t\t\tAND U.ID = S.USER_ID\n\t\t\t\t\t\t) "; $cnt++; } } $strReturn = "SELECT \n\t\t\tU.ID as ID\n\t\t\t," . ($bDecrement ? "-1" : "1") . " as CNT\n\t\t\t,'**' as SITE_ID\n\t\t\t,'CRM_**' as CODE,\n\t\t\t0 as SENT\n\t\tFROM b_user U \n\t\tWHERE\n\t\t\t(\n\t\t\t\tU.ID IN (SELECT USER_ID FROM b_user_access WHERE ACCESS_CODE = 'G1' AND USER_ID <> " . $author_id . ")\n\t\t\t\t" . (!empty($arUserID) ? " OR U.ID IN (" . implode(",", $arUserID) . ") " : "") . "\n\t\t\t)" . (strlen($strSubscription) > 0 || intval($arLogFields["LOG_ID"]) > 0 ? "\n\t\t\t\t\tAND\n\t\t\t\t\t(\n\t\t\t\t\t\t" . $strSubscription . (intval($arLogFields["LOG_ID"]) > 0 ? (strlen($strSubscription) > 0 ? " OR " : "") . " \n\t\t\t\t\t\t\t\tEXISTS (\n\t\t\t\t\t\t\t\t\tSELECT GROUP_CODE \n\t\t\t\t\t\t\t\t\tFROM b_sonet_log_right LR\n\t\t\t\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t\t\t\tLR.LOG_ID = " . intval($arLogFields["LOG_ID"]) . " \n\t\t\t\t\t\t\t\t\t\tAND LR.GROUP_CODE = " . $DB->Concat("'U'", $DB->type == "MSSQL" ? "CAST(U.ID as varchar(17))" : "U.ID") . "\n\t\t\t\t\t\t\t\t) " : "") . "\n\t\t\t\t\t)\n\t\t\t\t\t" : ""); return $strReturn; }
public function Delete($ID, $arOptions = array()) { global $DB, $APPLICATION; $ID = intval($ID); $iUserId = CCrmSecurityHelper::GetCurrentUserID(); $this->LAST_ERROR = ''; $APPLICATION->ResetException(); if (!is_array($arOptions)) { $arOptions = array(); } if (isset($arOptions['CHECK_DEPENDENCIES']) && (bool) $arOptions['CHECK_DEPENDENCIES']) { $dbRes = self::GetListEx(array(), array('=ID' => $ID), false, false, array('TITLE', 'STATUS_ID', 'COMPANY_ID', 'CONTACT_ID')); $arFields = $dbRes ? $dbRes->Fetch() : null; if (is_array($arFields) && isset($arFields['STATUS_ID']) && $arFields['STATUS_ID'] === 'CONVERTED' && (CCrmCompany::Exists(isset($arFields['COMPANY_ID']) ? intval($arFields['COMPANY_ID']) : 0) || CCrmContact::Exists(isset($arFields['CONTACT_ID']) ? intval($arFields['CONTACT_ID']) : 0))) { $title = isset($arFields['TITLE']) && $arFields['TITLE'] !== '' ? $arFields['TITLE'] : $ID; $err = GetMessage('CRM_LEAD_DELETION_DEPENDENCIES_FOUND', array('#TITLE#' => $title)); $this->LAST_ERROR = $err; $APPLICATION->throwException($err); return false; } } $sWherePerm = ''; if ($this->bCheckPermission) { $arEntityAttr = $this->cPerms->GetEntityAttr('LEAD', $ID); $sEntityPerm = $this->cPerms->GetPermType('LEAD', 'DELETE', $arEntityAttr[$ID]); if ($sEntityPerm == BX_CRM_PERM_NONE) { return false; } else { if ($sEntityPerm == BX_CRM_PERM_SELF) { $sWherePerm = " AND ASSIGNED_BY_ID = {$iUserId}"; } else { if ($sEntityPerm == BX_CRM_PERM_OPEN) { $sWherePerm = " AND (OPENED = 'Y' OR ASSIGNED_BY_ID = {$iUserId})"; } } } } $events = GetModuleEvents('crm', 'OnBeforeCrmLeadDelete'); while ($arEvent = $events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { $err = GetMessage("MAIN_BEFORE_DEL_ERR") . ' ' . $arEvent['TO_NAME']; if ($ex = $APPLICATION->GetException()) { $err .= ': ' . $ex->GetString(); } $APPLICATION->throwException($err); $this->LAST_ERROR = $err; return false; } } //By defaut we need to clean up related bizproc entities $processBizproc = isset($arOptions['PROCESS_BIZPROC']) ? (bool) $arOptions['PROCESS_BIZPROC'] : true; if ($processBizproc) { $bizproc = new CCrmBizProc('LEAD'); $bizproc->ProcessDeletion($ID); } $tableName = CCrmLead::TABLE_NAME; $sSql = "DELETE FROM {$tableName} WHERE ID = {$ID}{$sWherePerm}"; $obRes = $DB->Query($sSql, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); if (is_object($obRes) && $obRes->AffectedRowsCount() > 0) { CCrmSearch::DeleteSearch('LEAD', $ID); $DB->Query("DELETE FROM b_crm_entity_perms WHERE ENTITY='LEAD' AND ENTITY_ID = {$ID}", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); $GLOBALS['USER_FIELD_MANAGER']->Delete(self::$sUFEntityID, $ID); $CCrmFieldMulti = new CCrmFieldMulti(); $CCrmFieldMulti->DeleteByElement('LEAD', $ID); $CCrmEvent = new CCrmEvent(); $CCrmEvent->DeleteByElement('LEAD', $ID); \Bitrix\Crm\EntityAddress::unregister(CCrmOwnerType::Lead, $ID, \Bitrix\Crm\EntityAddress::Primary); \Bitrix\Crm\Integrity\DuplicateEntityRanking::unregisterEntityStatistics(CCrmOwnerType::Lead, $ID); \Bitrix\Crm\Integrity\DuplicatePersonCriterion::unregister(CCrmOwnerType::Lead, $ID); \Bitrix\Crm\Integrity\DuplicateOrganizationCriterion::unregister(CCrmOwnerType::Lead, $ID); \Bitrix\Crm\Integrity\DuplicateCommunicationCriterion::unregister(CCrmOwnerType::Lead, $ID); \Bitrix\Crm\Integrity\DuplicateIndexMismatch::unregisterEntity(CCrmOwnerType::Lead, $ID); $enableDupIndexInvalidation = is_array($arOptions) && isset($arOptions['ENABLE_DUP_INDEX_INVALIDATION']) ? (bool) $arOptions['ENABLE_DUP_INDEX_INVALIDATION'] : true; if ($enableDupIndexInvalidation) { \Bitrix\Crm\Integrity\DuplicateIndexBuilder::markAsJunk(CCrmOwnerType::Lead, $ID); } // Deletion of lead details CCrmProductRow::DeleteByOwner('L', $ID); CCrmProductRow::DeleteSettings('L', $ID); CCrmActivity::DeleteByOwner(CCrmOwnerType::Lead, $ID); CCrmSonetSubscription::UnRegisterSubscriptionByEntity(CCrmOwnerType::Lead, $ID); CCrmLiveFeed::DeleteLogEvents(array('ENTITY_TYPE_ID' => CCrmOwnerType::Lead, 'ENTITY_ID' => $ID)); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("crm_entity_name_" . CCrmOwnerType::Lead . "_" . $ID); } $afterEvents = GetModuleEvents('crm', 'OnAfterCrmLeadDelete'); while ($arEvent = $afterEvents->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID)); } } return true; }
<?php define('NO_KEEP_STATISTIC', 'Y'); define('NO_AGENT_STATISTIC', 'Y'); define('NO_AGENT_CHECK', true); define('PUBLIC_AJAX_MODE', true); define('DisableEventsCheck', true); require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule('crm') || !CCrmSecurityHelper::IsAuthorized() || !check_bitrix_sessid() || $_SERVER['REQUEST_METHOD'] != 'POST') { die; } $action = isset($_REQUEST['ACTION']) ? $_REQUEST['ACTION'] : ''; if ($action === '') { die; } global $APPLICATION; if ($action === 'INDEX') { $entityTypeName = isset($_REQUEST['ENTITY_TYPE_NAME']) ? $_REQUEST['ENTITY_TYPE_NAME'] : ''; if ($entityTypeName !== CCrmOwnerType::DealName) { die; } $entityID = isset($_REQUEST['ENTITY_ID']) ? intval($_REQUEST['ENTITY_ID']) : 0; if ($entityID <= 0) { die; } $params = isset($_REQUEST['PARAMS']) && is_array($_REQUEST['PARAMS']) ? $_REQUEST['PARAMS'] : array(); $formID = isset($params['FORM_ID']) ? $params['FORM_ID'] : ''; $tabKey = $formID !== '' ? "{$formID}_active_tab" : 'active_tab';
public function Delete($ID, $arOptions = array()) { global $DB, $APPLICATION; $ID = intval($ID); $iUserId = CCrmSecurityHelper::GetCurrentUserID(); if (!is_array($arOptions)) { $arOptions = array(); } $sWherePerm = ''; if ($this->bCheckPermission) { $arEntityAttr = $this->cPerms->GetEntityAttr('DEAL', $ID); $sEntityPerm = $this->cPerms->GetPermType('DEAL', 'DELETE', $arEntityAttr[$ID]); if ($sEntityPerm == BX_CRM_PERM_NONE) { return false; } else { if ($sEntityPerm == BX_CRM_PERM_SELF) { $sWherePerm = " AND ASSIGNED_BY_ID = {$iUserId}"; } else { if ($sEntityPerm == BX_CRM_PERM_OPEN) { $sWherePerm = " AND (OPENED = 'Y' OR ASSIGNED_BY_ID = {$iUserId})"; } } } } $APPLICATION->ResetException(); $events = GetModuleEvents('crm', 'OnBeforeCrmDealDelete'); while ($arEvent = $events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { $err = GetMessage("MAIN_BEFORE_DEL_ERR") . ' ' . $arEvent['TO_NAME']; if ($ex = $APPLICATION->GetException()) { $err .= ': ' . $ex->GetString(); } $APPLICATION->throwException($err); return false; } } //By defaut we need to clean up related bizproc entities $processBizproc = isset($arOptions['PROCESS_BIZPROC']) ? (bool) $arOptions['PROCESS_BIZPROC'] : true; if ($processBizproc) { $bizproc = new CCrmBizProc('DEAL'); $bizproc->ProcessDeletion($ID); } $dbRes = $DB->Query("DELETE FROM b_crm_deal WHERE ID = {$ID}{$sWherePerm}", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); if (is_object($dbRes) && $dbRes->AffectedRowsCount() > 0) { CCrmSearch::DeleteSearch('DEAL', $ID); $DB->Query("DELETE FROM b_crm_entity_perms WHERE ENTITY='DEAL' AND ENTITY_ID = {$ID}", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); $GLOBALS['USER_FIELD_MANAGER']->Delete(self::$sUFEntityID, $ID); $CCrmFieldMulti = new CCrmFieldMulti(); $CCrmFieldMulti->DeleteByElement('DEAL', $ID); $CCrmEvent = new CCrmEvent(); $CCrmEvent->DeleteByElement('DEAL', $ID); Bitrix\Crm\History\DealStageHistoryEntry::unregister($ID); Bitrix\Crm\Statistics\DealSumStatisticEntry::unregister($ID); Bitrix\Crm\Statistics\DealInvoiceStatisticEntry::unregister($ID); Bitrix\Crm\Statistics\DealActivityStatisticEntry::unregister($ID); // Deletion of deal details CCrmProductRow::DeleteByOwner('D', $ID); CCrmProductRow::DeleteSettings('D', $ID); CCrmActivity::DeleteByOwner(CCrmOwnerType::Deal, $ID); CCrmSonetSubscription::UnRegisterSubscriptionByEntity(CCrmOwnerType::Deal, $ID); CCrmLiveFeed::DeleteLogEvents(array('ENTITY_TYPE_ID' => CCrmOwnerType::Deal, 'ENTITY_ID' => $ID)); self::PullChange('DELETE', array('ID' => $ID)); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("crm_entity_name_" . CCrmOwnerType::Deal . "_" . $ID); } $afterEvents = GetModuleEvents('crm', 'OnAfterCrmDealDelete'); while ($arEvent = $afterEvents->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID)); } } return true; }
private static function SynchronizeLiveFeedEvent($activityID, $params) { if (!is_array($params)) { $params = array(); } $processBindings = isset($params['PROCESS_BINDINGS']) ? (bool) $params['PROCESS_BINDINGS'] : false; $bindings = isset($params['BINDINGS']) && is_array($params['BINDINGS']) ? $params['BINDINGS'] : array(); $hasBindings = !empty($bindings); if ($processBindings) { CCrmSonetRelation::UnRegisterRelationsByEntity(CCrmOwnerType::Activity, $activityID, array('QUICK' => $hasBindings)); } $arOwners = $hasBindings ? $bindings : self::GetBindings($activityID); $slEntities = CCrmLiveFeed::GetLogEvents(array(), array('ENTITY_TYPE_ID' => CCrmOwnerType::Activity, 'ENTITY_ID' => $activityID), array('ID', 'EVENT_ID')); if (empty($slEntities)) { return false; } global $DB; foreach ($slEntities as &$slEntity) { $slID = intval($slEntity['ID']); $slEventType = $slEntity['EVENT_ID']; if (isset($params['REFRESH_DATE']) ? (bool) $params['REFRESH_DATE'] : false) { //Update LOG_UPDATE for force event to rise in global feed //Update LOG_DATE for force event to rise in entity feed CCrmLiveFeed::UpdateLogEvent($slID, array('=LOG_UPDATE' => $DB->CurrentTimeFunction(), '=LOG_DATE' => $DB->CurrentTimeFunction())); } else { //HACK: FAKE UPDATE FOR INVALIDATE CACHE CCrmLiveFeed::UpdateLogEvent($slID, array('ENTITY_TYPE_ID' => CCrmOwnerType::Activity, 'ENTITY_ID' => $activityID)); } /* 'START_RESPONSIBLE_ID' => $arPrevEntity['RESPONSIBLE_ID'], 'FINAL_RESPONSIBLE_ID' => $responsibleID */ $userID = intval($params['EDITOR_ID']) > 0 ? $params['EDITOR_ID'] : CCrmSecurityHelper::GetCurrentUserID(); if (intval($params['START_RESPONSIBLE_ID']) != intval($params['FINAL_RESPONSIBLE_ID']) && CModule::IncludeModule("im")) { switch ($params['TYPE_ID']) { case CCrmActivityType::Call: $type = 'CALL'; break; case CCrmActivityType::Meeting: $type = 'MEETING'; break; default: $type = false; } if ($type) { $url = "/crm/stream/?log_id=#log_id#"; $url = str_replace(array("#log_id#"), array($slID), $url); $serverName = (CMain::IsHTTPS() ? "https" : "http") . "://" . (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0 ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", "")); $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "FROM_USER_ID" => $userID, "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "crm", "LOG_ID" => $slID, "NOTIFY_EVENT" => "activity_add", "NOTIFY_TAG" => "CRM|ACTIVITY|" . $activityID); if (intval($params['START_RESPONSIBLE_ID']) != $userID) { $bHasPermissions = false; $perms = CCrmPerms::GetUserPermissions($params['START_RESPONSIBLE_ID']); foreach ($arOwners as $arOwner) { if (CCrmActivity::CheckReadPermission($arOwner["OWNER_TYPE_ID"], $arOwner["OWNER_ID"], $perms)) { $bHasPermissions = true; break; } } if ($bHasPermissions) { $arMessageFields["TO_USER_ID"] = $params['START_RESPONSIBLE_ID']; $arMessageFields["NOTIFY_MESSAGE"] = GetMessage("CRM_ACTIVITY_" . $type . "_NOT_RESPONSIBLE_IM_NOTIFY", array("#title#" => '<a href="' . $url . '">' . htmlspecialcharsbx($params['SUBJECT']) . '</a>')); $arMessageFields["NOTIFY_MESSAGE_OUT"] = GetMessage("CRM_ACTIVITY_" . $type . "_NOT_RESPONSIBLE_IM_NOTIFY", array("#title#" => htmlspecialcharsbx($params['SUBJECT']))) . " (" . $serverName . $url . ")"; CIMNotify::Add($arMessageFields); } } if (intval($params['FINAL_RESPONSIBLE_ID']) != $userID) { $bHasPermissions = false; $perms = CCrmPerms::GetUserPermissions($params['FINAL_RESPONSIBLE_ID']); foreach ($arOwners as $arOwner) { if (CCrmActivity::CheckReadPermission($arOwner["OWNER_TYPE_ID"], $arOwner["OWNER_ID"], $perms)) { $bHasPermissions = true; break; } } if ($bHasPermissions) { $arMessageFields["TO_USER_ID"] = $params['FINAL_RESPONSIBLE_ID']; $arMessageFields["NOTIFY_MESSAGE"] = GetMessage("CRM_ACTIVITY_" . $type . "_RESPONSIBLE_IM_NOTIFY", array("#title#" => '<a href="' . $url . '">' . htmlspecialcharsbx($params['SUBJECT']) . '</a>')); $arMessageFields["NOTIFY_MESSAGE_OUT"] = GetMessage("CRM_ACTIVITY_" . $type . "_RESPONSIBLE_IM_NOTIFY", array("#title#" => htmlspecialcharsbx($params['SUBJECT']))) . " (" . $serverName . $url . ")"; CIMNotify::Add($arMessageFields); } } } } if ($processBindings && $hasBindings) { CCrmSonetRelation::RegisterRelationBundle($slID, $slEventType, CCrmOwnerType::Activity, $activityID, $bindings, array('ENTITY_TYPE_ID_KEY' => 'OWNER_TYPE_ID', 'ENTITY_ID_KEY' => 'OWNER_ID', 'TYPE_ID' => CCrmSonetRelationType::Ownership)); } } unset($slEntity); return true; }
public static function RegisterExportEvent($entityTypeID, $entityID, $userID = 0) { if ($userID <= 0) { $userID = CCrmSecurityHelper::GetCurrentUserID(); if ($userID <= 0) { return false; } } $eventType = CCrmEvent::TYPE_EXPORT; $timestamp = time() + CTimeZone::GetOffset(); $entityTypeName = CCrmOwnerType::ResolveName($entityTypeID); $entity = new CCrmEvent(); $entity->Add(array('USER_ID' => $userID, 'ENTITY_ID' => $entityID, 'ENTITY_TYPE' => $entityTypeName, 'EVENT_TYPE' => $eventType, 'EVENT_NAME' => CCrmEvent::GetEventTypeName($eventType), 'DATE_CREATE' => ConvertTimeStamp($timestamp, 'FULL', SITE_ID)), false); return true; }
<?php define('NO_KEEP_STATISTIC', 'Y'); define('NO_AGENT_STATISTIC', 'Y'); define('NO_AGENT_CHECK', true); define('PUBLIC_AJAX_MODE', true); define('DisableEventsCheck', true); $siteID = isset($_REQUEST['site']) ? substr(preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['site']), 0, 2) : ''; if ($siteID !== '') { define('SITE_ID', $siteID); } require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule('crm') || !CCrmSecurityHelper::IsAuthorized() || !check_bitrix_sessid()) { die; } $params = isset($_REQUEST['PARAMS']) ? $_REQUEST['PARAMS'] : array(); $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; }
$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'] : ''; $arParams['USER_PROFILE_URL_TEMPLATE'] = isset($arParams['USER_PROFILE_URL_TEMPLATE']) ? $arParams['USER_PROFILE_URL_TEMPLATE'] : ''; $arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat(false) : str_replace(array('#NOBR#', '#/NOBR#'), array('', ''), $arParams['NAME_TEMPLATE']); $uid = isset($arParams['UID']) ? $arParams['UID'] : ''; if ($uid === '') { $uid = 'mobile_crm_invoice_edit'; } $arResult['UID'] = $arParams['UID'] = $uid; $userID = $arResult['USER_ID'] = CCrmSecurityHelper::GetCurrentUserID(); // CONTEXT_ID --> $contextID = isset($arParams['CONTEXT_ID']) ? $arParams['CONTEXT_ID'] : ''; if ($contextID === '' && isset($_REQUEST['context_id'])) { $contextID = $_REQUEST['context_id']; } if ($contextID === '') { $contextID = "{$uid}_{$entityID}"; } $arResult['CONTEXT_ID'] = $arParams['CONTEXT_ID'] = $contextID; //<-- CONTEXT_ID $arResult['STATUS_LIST'] = CCrmStatus::GetStatus('INVOICE_STATUS'); $personTypes = $arResult['PERSON_TYPES'] = CCrmPaySystem::getPersonTypeIDs(); // '' - NO TAXES // 'VAT' - VAT ONLY // 'EXT' - EXTENDED MODE WITH CUSTOM TAXES
define('SONET_CRM_LEAD_ENTITY', 'CRMLEAD'); define('SONET_CRM_CONTACT_ENTITY', 'CRMCONTACT'); define('SONET_CRM_COMPANY_ENTITY', 'CRMCOMPANY'); define('SONET_CRM_DEAL_ENTITY', 'CRMDEAL'); define('SONET_CRM_ACTIVITY_ENTITY', 'CRMACTIVITY'); define('SONET_CRM_INVOICE_ENTITY', 'CRMINVOICE'); //<-- Sonet entity types global $APPLICATION, $DBType, $DB; IncludeModuleLangFile(__FILE__); require_once $_SERVER['DOCUMENT_ROOT'] . BX_ROOT . '/modules/crm/functions.php'; require_once $_SERVER['DOCUMENT_ROOT'] . BX_ROOT . '/modules/crm/classes/general/crm_usertypecrmstatus.php'; require_once $_SERVER['DOCUMENT_ROOT'] . BX_ROOT . '/modules/crm/classes/general/crm_usertypecrm.php'; CModule::AddAutoloadClasses('crm', array('CAllCrmLead' => 'classes/general/crm_lead.php', 'CCrmLead' => 'classes/' . $DBType . '/crm_lead.php', 'CCrmLeadWS' => 'classes/general/ws_lead.php', 'CCRMLeadRest' => 'classes/general/rest_lead.php', 'CAllCrmDeal' => 'classes/general/crm_deal.php', 'CCrmDeal' => 'classes/' . $DBType . '/crm_deal.php', 'CAllCrmCompany' => 'classes/general/crm_company.php', 'CCrmCompany' => 'classes/' . $DBType . '/crm_company.php', 'CAllCrmContact' => 'classes/general/crm_contact.php', 'CCrmContact' => 'classes/' . $DBType . '/crm_contact.php', 'CCrmContactWS' => 'classes/general/ws_contact.php', 'CCrmPerms' => 'classes/general/crm_perms.php', 'CCrmRole' => 'classes/general/crm_role.php', 'CCrmFields' => 'classes/general/crm_fields.php', 'CCrmUserType' => 'classes/general/crm_usertype.php', 'CCrmGridOptions' => 'classes/general/crm_grids.php', 'CCrmStatus' => 'classes/general/crm_status.php', 'CCrmFieldMulti' => 'classes/general/crm_field_multi.php', 'CCrmEvent' => 'classes/general/crm_event.php', 'CCrmEMail' => 'classes/general/crm_email.php', 'CCrmVCard' => 'classes/general/crm_vcard.php', 'CCrmActivityTask' => 'classes/general/crm_activity_task.php', 'CCrmActivityCalendar' => 'classes/general/crm_activity_calendar.php', 'CUserTypeCrm' => 'classes/general/crm_usertypecrm.php', 'CUserTypeCrmStatus' => 'classes/general/crm_usertypecrmstatus.php', 'CCrmSearch' => 'classes/general/crm_search.php', 'CCrmBizProc' => 'classes/general/crm_bizproc.php', 'CCrmDocument' => 'classes/general/crm_document.php', 'CCrmDocumentLead' => 'classes/general/crm_document_lead.php', 'CCrmDocumentContact' => 'classes/general/crm_document_contact.php', 'CCrmDocumentCompany' => 'classes/general/crm_document_company.php', 'CCrmDocumentDeal' => 'classes/general/crm_document_deal.php', 'CCrmReportHelper' => 'classes/general/crm_report_helper.php', 'Bitrix\\Crm\\StatusTable' => 'lib/status.php', 'Bitrix\\Crm\\EventTable' => 'lib/event.php', 'Bitrix\\Crm\\EventRelationsTable' => 'lib/event.php', 'Bitrix\\Crm\\DealTable' => 'lib/deal.php', 'Bitrix\\Crm\\LeadTable' => 'lib/lead.php', 'Bitrix\\Crm\\ContactTable' => 'lib/contact.php', 'Bitrix\\Crm\\CompanyTable' => 'lib/company.php', '\\Bitrix\\Crm\\StatusTable' => 'lib/status.php', '\\Bitrix\\Crm\\EventTable' => 'lib/event.php', '\\Bitrix\\Crm\\EventRelationsTable' => 'lib/event.php', '\\Bitrix\\Crm\\DealTable' => 'lib/deal.php', '\\Bitrix\\Crm\\LeadTable' => 'lib/lead.php', '\\Bitrix\\Crm\\ContactTable' => 'lib/contact.php', '\\Bitrix\\Crm\\CompanyTable' => 'lib/company.php', 'CCrmExternalSale' => 'classes/general/crm_external_sale.php', 'CCrmExternalSaleProxy' => 'classes/general/crm_external_sale_proxy.php', 'CCrmExternalSaleImport' => 'classes/general/crm_external_sale_import.php', 'CCrmUtils' => 'classes/general/crm_utils.php', 'CCrmEntityHelper' => 'classes/general/entity_helper.php', 'CAllCrmCatalog' => 'classes/general/crm_catalog.php', 'CCrmCatalog' => 'classes/' . $DBType . '/crm_catalog.php', 'CCrmCurrency' => 'classes/general/crm_currency.php', 'CCrmCurrencyHelper' => 'classes/general/crm_currency_helper.php', 'CCrmProductResult' => 'classes/general/crm_product_result.php', 'CCrmProduct' => 'classes/general/crm_product.php', 'CCrmProductHelper' => 'classes/general/crm_product_helper.php', 'CAllCrmProductRow' => 'classes/general/crm_product_row.php', 'CCrmProductRow' => 'classes/' . $DBType . '/crm_product_row.php', 'CAllCrmInvoice' => 'classes/general/crm_invoice.php', 'CCrmInvoice' => 'classes/' . $DBType . '/crm_invoice.php', 'CAllCrmQuote' => 'classes/general/crm_quote.php', 'CCrmQuote' => 'classes/' . $DBType . '/crm_quote.php', 'CCrmOwnerType' => 'classes/general/crm_owner_type.php', 'CCrmOwnerTypeAbbr' => 'classes/general/crm_owner_type.php', 'Bitrix\\Crm\\ProductTable' => 'lib/product.php', 'Bitrix\\Crm\\ProductRowTable' => 'lib/productrow.php', 'Bitrix\\Crm\\IBlockElementProxyTable' => 'lib/iblockelementproxy.php', 'Bitrix\\Crm\\IBlockElementGrcProxyTable' => 'lib/iblockelementproxy.php', '\\Bitrix\\Crm\\ProductTable' => 'lib/product.php', '\\Bitrix\\Crm\\ProductRowTable' => 'lib/productrow.php', '\\Bitrix\\Crm\\IBlockElementProxyTable' => 'lib/iblockelementproxy.php', '\\Bitrix\\Crm\\IBlockElementGrcProxyTable' => 'lib/iblockelementproxy.php', 'CCrmAccountingHelper' => 'classes/general/crm_accounting_helper.php', 'Bitrix\\Crm\\ExternalSaleTable' => 'lib/externalsale.php', '\\Bitrix\\Crm\\ExternalSaleTable' => 'lib/externalsale.php', 'CCrmExternalSaleHelper' => 'classes/general/crm_external_sale_helper.php', 'CCrmEntityListBuilder' => 'classes/general/crm_entity_list_builder.php', 'CCrmComponentHelper' => 'classes/general/crm_component_helper.php', 'CCrmInstantEditorHelper' => 'classes/general/crm_component_helper.php', 'CAllCrmActivity' => 'classes/general/crm_activity.php', 'CCrmActivity' => 'classes/' . $DBType . '/crm_activity.php', 'CCrmActivityType' => 'classes/general/crm_activity.php', 'CCrmActivityStatus' => 'classes/general/crm_activity.php', 'CCrmActivityPriority' => 'classes/general/crm_activity.php', 'CCrmActivityNotifyType' => 'classes/general/crm_activity.php', 'CCrmActivityStorageType' => 'classes/general/crm_activity.php', 'CCrmContentType' => 'classes/general/crm_activity.php', 'CCrmEnumeration' => 'classes/general/crm_enumeration.php', 'CCrmEntitySelectorHelper' => 'classes/general/crm_entity_selector_helper.php', 'CCrmBizProcHelper' => 'classes/general/crm_bizproc_helper.php', 'CCrmBizProcEventType' => 'classes/general/crm_bizproc_helper.php', 'CCrmUrlUtil' => 'classes/general/crm_url_util.php', 'CCrmAuthorizationHelper' => 'classes/general/crm_authorization_helper.php', 'CCrmWebDavHelper' => 'classes/general/crm_webdav_helper.php', 'CCrmActivityDirection' => 'classes/general/crm_activity.php', 'CCrmViewHelper' => 'classes/general/crm_view_helper.php', 'CCrmSecurityHelper' => 'classes/general/crm_security_helper.php', 'CCrmMailHelper' => 'classes/general/crm_mail_helper.php', 'CCrmNotifier' => 'classes/general/crm_notifier.php', 'CCrmNotifierSchemeType' => 'classes/general/crm_notifier.php', 'CCrmActivityConverter' => 'classes/general/crm_activity_converter.php', 'CCrmDateTimeHelper' => 'classes/general/datetime_helper.php', 'CCrmEMailCodeAllocation' => 'classes/general/crm_email.php', 'CCrmActivityCalendarSettings' => 'classes/general/crm_activity.php', 'CCrmActivityCalendarSettings' => 'classes/general/crm_activity.php', 'CCrmProductReportHelper' => 'classes/general/crm_report_helper.php', 'CCrmReportManager' => 'classes/general/crm_report_helper.php', 'CCrmCallToUrl' => 'classes/general/crm_url_util.php', 'CCrmUrlTemplate' => 'classes/general/crm_url_util.php', 'CCrmFileProxy' => 'classes/general/file_proxy.php', 'CAllCrmMailTemplate' => 'classes/general/mail_template.php', 'CCrmMailTemplate' => 'classes/' . $DBType . '/mail_template.php', 'CCrmMailTemplateScope' => 'classes/general/mail_template.php', 'CCrmTemplateAdapter' => 'classes/general/template_adapter.php', 'CCrmTemplateMapper' => 'classes/general/template_mapper.php', 'CCrmTemplateManager' => 'classes/general/template_manager.php', 'CCrmGridContext' => 'classes/general/crm_grids.php', 'CCrmUserCounter' => 'classes/general/user_counter.php', 'CCrmUserCounterSettings' => 'classes/general/user_counter.php', 'CCrmMobileHelper' => 'classes/general/mobile_helper.php', 'CCrmStatusInvoice' => 'classes/general/crm_status_invoice.php', 'CCrmTax' => 'classes/general/crm_tax.php', 'CCrmVat' => 'classes/general/crm_vat.php', 'CCrmLocations' => 'classes/general/crm_locations.php', 'CCrmPaySystem' => 'classes/general/crm_pay_system.php', 'CCrmRestService' => 'classes/general/restservice.php', 'CCrmFieldInfo' => 'classes/general/field_info.php', 'CCrmFieldInfoAttr' => 'classes/general/field_info.php', 'CCrmActivityEmailSender' => 'classes/general/crm_activity.php', 'CCrmProductSection' => 'classes/general/crm_product_section.php', 'CCrmProductSectionDbResult' => 'classes/general/crm_product_section.php', 'CCrmActivityDbResult' => 'classes/general/crm_activity.php', 'CCrmInvoiceRestService' => 'classes/general/restservice_invoice.php', 'CCrmInvoiceEvent' => 'classes/general/crm_invoice_event.php', 'CCrmInvoiceEventFormat' => 'classes/general/crm_invoice_event.php', 'CCrmLeadReportHelper' => 'classes/general/crm_report_helper.php', 'CCrmInvoiceReportHelper' => 'classes/general/crm_report_helper.php', 'CCrmActivityReportHelper' => 'classes/general/crm_report_helper.php', 'CCrmLiveFeed' => 'classes/general/livefeed.php', 'CCrmLiveFeedMessageRestProxy' => 'classes/general/restservice.php', 'CCrmLiveFeedEntity' => 'classes/general/livefeed.php', 'CCrmLiveFeedEvent' => 'classes/general/livefeed.php', 'CCrmLiveFeedFilter' => 'classes/general/livefeed.php', 'CCrmLiveFeedComponent' => 'classes/general/livefeed.php', 'CAllCrmSonetRelation' => 'classes/general/sonet_relation.php', 'CCrmSonetRelationType' => 'classes/general/sonet_relation.php', 'CCrmSonetRelation' => 'classes/' . $DBType . '/sonet_relation.php', 'CAllCrmSonetSubscription' => 'classes/general/sonet_subscription.php', 'CCrmSonetSubscriptionType' => 'classes/general/sonet_subscription.php', 'CCrmSonetSubscription' => 'classes/' . $DBType . '/sonet_subscription.php', 'CCrmSipHelper' => 'classes/general/sip_helper.php', 'CCrmSaleHelper' => 'classes/general/sale_helper.php', 'CCrmProductFile' => 'classes/general/crm_product_file.php', 'CCrmProductFileControl' => 'classes/general/crm_product_file.php', 'CCrmProductPropsHelper' => 'classes/general/crm_productprops_helper.php', 'CCrmProductSectionHelper' => 'classes/general/crm_product_section_helper.php', '\\Bitrix\\Crm\\Honorific' => 'lib/honorific.php', '\\Bitrix\\Crm\\Conversion\\LeadConverter' => 'lib/conversion/leadconverter.php', '\\Bitrix\\Crm\\Conversion\\EntityConversionConfigItem' => 'lib/conversion/entityconversionconfigitem.php', '\\Bitrix\\Crm\\Conversion\\EntityConversionMapItem' => 'lib/conversion/entityconversionmapitem.php', '\\Bitrix\\Crm\\Conversion\\EntityConversionMap' => 'lib/conversion/entityconversionmap.php', '\\Bitrix\\Crm\\Conversion\\LeadConversionMapper' => 'lib/conversion/leadconversionmapper.php', '\\Bitrix\\Crm\\Conversion\\LeadConversionWizard' => 'lib/conversion/leadconversionwizard.php', '\\Bitrix\\Crm\\Conversion\\LeadConversionPhase' => 'lib/conversion/leadconversionphase.php', '\\Bitrix\\Crm\\Conversion\\LeadConversionConfig' => 'lib/conversion/leadconversionconfig.php', '\\Bitrix\\Crm\\Conversion\\LeadConversionScheme' => 'lib/conversion/leadconversionscheme.php', '\\Bitrix\\Crm\\Conversion\\DealConversionConfig' => 'lib/conversion/dealconversionconfig.php', '\\Bitrix\\Crm\\Conversion\\DealConversionScheme' => 'lib/conversion/dealconversionscheme.php', '\\Bitrix\\Crm\\Conversion\\EntityConversionFileViewer' => 'lib/conversion/entityconversionfileviewer.php', '\\Bitrix\\Crm\\Conversion\\Entity\\EntityConversionMapTable' => 'lib/conversion/entity/entityconversionmap.php', '\\Bitrix\\Crm\\Conversion\\ConversionWizardStep' => 'lib/conversion/conversionwizardstep.php', '\\Bitrix\\Crm\\Conversion\\ConversionWizard' => 'lib/conversion/conversionwizard.php', '\\Bitrix\\Crm\\Synchronization\\UserFieldSynchronizer' => 'lib/synchronization/userfieldsynchronizer.php', '\\Bitrix\\Crm\\Synchronization\\UserFieldSynchronizationException' => 'lib/synchronization/userfieldsynchronizationexception.php', '\\Bitrix\\Crm\\UserField\\UserFieldHistory' => 'lib/userfield/userfieldhistory.php', '\\Bitrix\\Crm\\UserField\\FileViewer' => 'lib/userfield/fileviewer.php', '\\Bitrix\\Crm\\Restriction\\ClientRestriction' => 'lib/restriction/clientrestriction.php', '\\Bitrix\\Crm\\Restriction\\ClientRestrictionManager' => 'lib/restriction/clientrestrictionmanager.php', '\\Bitrix\\Crm\\Restriction\\SelectRestriction' => 'lib/restriction/selectrestriction.php')); CModule::AddAutoloadClasses('', array('CAdminCalendar' => BX_ROOT . '/modules/main/interface/admin_lib.php')); //Disable data initialization under agent context if (CCrmSecurityHelper::GetCurrentUserID() > 0) { // Convert LEAD & DEAL PRODUCT --> if (COption::GetOptionString('crm', '~crm_11_0_6_convertion', 'N') !== 'Y') { $baseCurrencyID = "USD"; $rsLang = CLanguage::GetByID("ru"); if ($arLang = $rsLang->Fetch()) { $baseCurrencyID = "RUB"; } else { $rsLang = CLanguage::GetByID("de"); if ($arLang = $rsLang->Fetch()) { $baseCurrencyID = "EUR"; } } $arProducts = CCrmStatus::GetStatusList('PRODUCT', true); foreach ($arProducts as $prodCode => $prodName) { CCrmProduct::Add(array('NAME' => $prodName, 'ACTIVE' => 'Y', 'CURRENCY_ID' => $baseCurrencyID, 'PRICE' => 1, 'ORIGIN_ID' => 'CRM_PROD_' . $prodCode, 'ORIGINATOR_ID' => 'CRM_PRODUCT_REFERENCE'));
public function Delete($ID, $options = array()) { global $DB, $APPLICATION; $ID = intval($ID); $iUserId = CCrmSecurityHelper::GetCurrentUserID(); $sWherePerm = ''; if ($this->bCheckPermission) { $arEntityAttr = $this->cPerms->GetEntityAttr('QUOTE', $ID); $sEntityPerm = $this->cPerms->GetPermType('QUOTE', 'DELETE', $arEntityAttr[$ID]); if ($sEntityPerm == BX_CRM_PERM_NONE) { return false; } else { if ($sEntityPerm == BX_CRM_PERM_SELF) { $sWherePerm = " AND ASSIGNED_BY_ID = {$iUserId}"; } else { if ($sEntityPerm == BX_CRM_PERM_OPEN) { $sWherePerm = " AND (OPENED = 'Y' OR ASSIGNED_BY_ID = {$iUserId})"; } } } } $APPLICATION->ResetException(); foreach (GetModuleEvents('crm', 'OnBeforeCrmQuoteDelete', true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { $err = GetMessage("MAIN_BEFORE_DEL_ERR") . ' ' . $arEvent['TO_NAME']; if ($ex = $APPLICATION->GetException()) { $err .= ': ' . $ex->GetString(); } $APPLICATION->throwException($err); return false; } } if (!(isset($options['SKIP_FILES']) && $options['SKIP_FILES'])) { if (!self::DeleteStorageElements($ID)) { return false; } if (!$DB->Query('DELETE FROM ' . CCrmQuote::ELEMENT_TABLE_NAME . ' WHERE QUOTE_ID = ' . $ID, false, 'File: ' . __FILE__ . '<br/>Line: ' . __LINE__)) { $APPLICATION->throwException(GetMessage('CRM_QUOTE_ERR_DELETE_STORAGE_ELEMENTS_QUERY')); return false; } } $dbRes = $DB->Query("DELETE FROM b_crm_quote WHERE ID = {$ID}{$sWherePerm}", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); if (is_object($dbRes) && $dbRes->AffectedRowsCount() > 0) { $DB->Query("DELETE FROM b_crm_entity_perms WHERE ENTITY='QUOTE' AND ENTITY_ID = {$ID}", false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__); $GLOBALS['USER_FIELD_MANAGER']->Delete(self::$sUFEntityID, $ID); $CCrmFieldMulti = new CCrmFieldMulti(); $CCrmFieldMulti->DeleteByElement('QUOTE', $ID); $CCrmEvent = new CCrmEvent(); $CCrmEvent->DeleteByElement('QUOTE', $ID); CCrmSearch::DeleteSearch('QUOTE', $ID); // Deletion of quote details CCrmProductRow::DeleteByOwner(self::OWNER_TYPE, $ID); CCrmProductRow::DeleteSettings(self::OWNER_TYPE, $ID); /*CCrmActivity::DeleteByOwner(CCrmOwnerType::Quote, $ID);*/ if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("crm_entity_name_" . CCrmOwnerType::Quote . "_" . $ID); } $afterEvents = GetModuleEvents('crm', 'OnAfterCrmQuoteDelete'); while ($arEvent = $afterEvents->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID)); } } return true; }
} } global $USER_FIELD_MANAGER, $USER, $APPLICATION, $DB; $CCrmPerms = CCrmPerms::GetCurrentUserPermissions(); if ($CCrmPerms->HavePerm('CONTACT', BX_CRM_PERM_NONE, 'READ')) { ShowError(GetMessage('CRM_PERMISSION_DENIED')); return; } use Bitrix\Crm\EntityAddress; use Bitrix\Crm\Format\AddressSeparator; use Bitrix\Crm\Format\ContactAddressFormatter; $CCrmContact = new CCrmContact(false); $CCrmBizProc = new CCrmBizProc('CONTACT'); $userID = CCrmSecurityHelper::GetCurrentUserID(); $isAdmin = CCrmPerms::IsAdmin(); $arResult['CURRENT_USER_ID'] = CCrmSecurityHelper::GetCurrentUserID(); $arParams['PATH_TO_CONTACT_LIST'] = CrmCheckPath('PATH_TO_CONTACT_LIST', $arParams['PATH_TO_CONTACT_LIST'], $APPLICATION->GetCurPage()); $arParams['PATH_TO_CONTACT_SHOW'] = CrmCheckPath('PATH_TO_CONTACT_SHOW', $arParams['PATH_TO_CONTACT_SHOW'], $APPLICATION->GetCurPage() . '?contact_id=#contact_id#&show'); $arParams['PATH_TO_CONTACT_EDIT'] = CrmCheckPath('PATH_TO_CONTACT_EDIT', $arParams['PATH_TO_CONTACT_EDIT'], $APPLICATION->GetCurPage() . '?contact_id=#contact_id#&edit'); $arParams['PATH_TO_COMPANY_SHOW'] = CrmCheckPath('PATH_TO_COMPANY_SHOW', $arParams['PATH_TO_COMPANY_SHOW'], $APPLICATION->GetCurPage() . '?company_id=#company_id#&show'); $arParams['PATH_TO_DEAL_EDIT'] = CrmCheckPath('PATH_TO_DEAL_EDIT', $arParams['PATH_TO_DEAL_EDIT'], $APPLICATION->GetCurPage() . '?deal_id=#deal_id#&edit'); $arParams['PATH_TO_QUOTE_EDIT'] = CrmCheckPath('PATH_TO_QUOTE_EDIT', $arParams['PATH_TO_QUOTE_EDIT'], $APPLICATION->GetCurPage() . '?quote_id=#quote_id#&edit'); $arParams['PATH_TO_INVOICE_EDIT'] = CrmCheckPath('PATH_TO_INVOICE_EDIT', $arParams['PATH_TO_INVOICE_EDIT'], $APPLICATION->GetCurPage() . '?invoice_id=#invoice_id#&edit'); $arParams['PATH_TO_USER_PROFILE'] = CrmCheckPath('PATH_TO_USER_PROFILE', $arParams['PATH_TO_USER_PROFILE'], '/company/personal/user/#user_id#/'); $arParams['PATH_TO_USER_BP'] = CrmCheckPath('PATH_TO_USER_BP', $arParams['PATH_TO_USER_BP'], '/company/personal/bizproc/'); $arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat(false) : str_replace(array("#NOBR#", "#/NOBR#"), array("", ""), $arParams["NAME_TEMPLATE"]); $arResult['IS_AJAX_CALL'] = isset($_REQUEST['bxajaxid']) || isset($_REQUEST['AJAX_CALL']); $arResult['SESSION_ID'] = bitrix_sessid(); CUtil::InitJSCore(array('ajax', 'tooltip')); $arResult['GADGET'] = 'N'; if (isset($arParams['GADGET_ID']) && strlen($arParams['GADGET_ID']) > 0) {
public static function PrepareUserInfo($userID, &$userInfo, $options = array()) { $userID = intval($userID); if ($userID <= 0) { return false; } // Check if extranet user request intranet user info if (IsModuleInstalled('extranet') && CModule::IncludeModule('extranet') && $userID != CCrmSecurityHelper::GetCurrentUserID() && !CExtranet::IsProfileViewableByID($userID)) { return false; } $dbUser = CUser::GetList($by = 'ID', $order = 'ASC', array('ID' => $userID)); $arUser = $dbUser->Fetch(); if (!is_array($arUser)) { return false; } if (!is_array($options)) { $options = array(); } $photoW = isset($options['PHOTO_WIDTH']) ? intval($options['PHOTO_WIDTH']) : 0; $photoH = isset($options['PHOTO_HEIGHT']) ? intval($options['PHOTO_HEIGHT']) : 0; $photoInfo = CFile::ResizeImageGet($arUser['PERSONAL_PHOTO'], array('width' => $photoW > 0 ? $photoW : 32, 'height' => $photoH > 0 ? $photoH : 32), BX_RESIZE_IMAGE_EXACT); $nameTemplate = isset($options['NAME_TEMPLATE']) ? $options['NAME_TEMPLATE'] : ''; $userInfo['ID'] = $userID; $userInfo['FULL_NAME'] = CUser::FormatName($nameTemplate !== '' ? $nameTemplate : CSite::GetNameFormat(false), $arUser, true, false); $urlTemplate = isset($options['USER_PROFILE_URL_TEMPLATE']) ? $options['USER_PROFILE_URL_TEMPLATE'] : ''; $userInfo['USER_PROFILE'] = $urlTemplate !== '' ? CComponentEngine::MakePathFromTemplate($urlTemplate, array('user_id' => $userID)) : ''; $userInfo['WORK_POSITION'] = isset($arUser['WORK_POSITION']) ? $arUser['WORK_POSITION'] : ''; $userInfo['PERSONAL_PHOTO'] = isset($photoInfo['src']) ? $photoInfo['src'] : ''; return true; }