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;
 }
Beispiel #2
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);
     }
 }
Beispiel #4
0
 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;
     }
 }
Beispiel #5
0
 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;
     }
 }
Beispiel #6
0
        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);
Beispiel #7
0
<?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>
Beispiel #8
0
$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';
*/
Beispiel #9
0
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';
Beispiel #10
0
<?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') {
Beispiel #11
0
 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;
 }
Beispiel #12
0
        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."));
    }
Beispiel #13
0
 /**
  * @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;
 }
Beispiel #14
0
 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;
 }
Beispiel #15
0
 public static function GetCurrentUserAttr()
 {
     return self::GetUserAttr(CCrmSecurityHelper::GetCurrentUserID());
 }
Beispiel #16
0
<?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]);
Beispiel #17
0
<?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'));
Beispiel #18
0
 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);
     }
 }
Beispiel #19
0
 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;
 }
Beispiel #20
0
 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;
 }
Beispiel #21
0
<?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';
Beispiel #22
0
 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;
 }
Beispiel #23
0
 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;
 }
Beispiel #24
0
 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;
 }
Beispiel #25
0
<?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;
}
Beispiel #26
0
$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
Beispiel #27
0
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'));
Beispiel #28
0
 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;
 }
Beispiel #29
0
    }
}
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;
 }