Exemple #1
0
    if (isset($_REQUEST['MODIFY_BY_ID_name']) && $_REQUEST['MODIFY_BY_ID_name'] === '') {
        $_REQUEST['MODIFY_BY_ID'] = $_GET['MODIFY_BY_ID'] = array();
    }
    if (isset($_REQUEST['ASSIGNED_BY_ID_name']) && $_REQUEST['ASSIGNED_BY_ID_name'] === '') {
        $_REQUEST['ASSIGNED_BY_ID'] = $_GET['ASSIGNED_BY_ID'] = array();
    }
}
if (intval($arParams['CONTACT_COUNT']) <= 0) {
    $arParams['CONTACT_COUNT'] = 20;
}
$arNavParams = array('nPageSize' => $arParams['CONTACT_COUNT']);
$arNavigation = CDBResult::GetNavParams($arNavParams);
$CGridOptions = new CCrmGridOptions($arResult['GRID_ID'], $arResult['FILTER_PRESETS']);
$arNavParams = $CGridOptions->GetNavParams($arNavParams);
$arNavParams['bShowAll'] = false;
$arFilter += $CGridOptions->GetFilter($arResult['FILTER']);
$USER_FIELD_MANAGER->AdminListAddFilter(CCrmContact::$sUFEntityID, $arFilter);
// converts data from filter
if (isset($arFilter['FIND_list']) && !empty($arFilter['FIND'])) {
    $arFilter[strtoupper($arFilter['FIND_list'])] = $arFilter['FIND'];
    unset($arFilter['FIND_list'], $arFilter['FIND']);
}
CCrmEntityHelper::PrepareMultiFieldFilter($arFilter);
$arImmutableFilters = array('FM', 'ID', 'COMPANY_ID', 'ASSIGNED_BY_ID', 'CREATED_BY_ID', 'MODIFY_BY_ID', 'TYPE_ID', 'SOURCE_ID');
foreach ($arFilter as $k => $v) {
    if (in_array($k, $arImmutableFilters, true)) {
        continue;
    }
    $arMatch = array();
    if ($k === 'ORIGINATOR_ID') {
        // HACK: build filter by internal entities
Exemple #2
0
    $exists = intval($locID > 0) && is_array(CCrmLocations::GetByID($locID));
}
########################
########################
########################
// LIST
if ($arParams['TYPE'] == 'list') {
    $parentId = false;
    // STEP UP IN LIST
    if (CSaleLocation::isLocationProEnabled()) {
        $filterParentId = false;
        if (isset($_REQUEST['PARENT_ID'])) {
            $filterParentId = intval($_REQUEST['PARENT_ID']);
        } else {
            $gridOpts = new CCrmGridOptions('CRM_LOC_LIST');
            $filter = $gridOpts->GetFilter(array());
            if (isset($filter['PARENT_ID'])) {
                $filterParentId = intval($filter['PARENT_ID']);
            }
        }
        if ($filterParentId !== false) {
            $res = Location\LocationTable::getByID($filterParentId)->fetch();
            if (!!$res['ID']) {
                $parentId = intval($res['PARENT_ID']);
                $arResult['BUTTONS'][] = array('TEXT' => GetMessage('CRM_LOC_STEP_UP'), 'TITLE' => GetMessage('CRM_LOC_STEP_UP_TITLE'), 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LOCATIONS_LIST'], array()) . '?PARENT_ID=' . $parentId, 'ICON' => 'btn-list');
            }
        }
    }
    // ADD IN LIST
    if ($locAdd) {
        $arResult['BUTTONS'][] = array('TEXT' => GetMessage('CRM_LOC_ADD'), 'TITLE' => GetMessage('CRM_LOC_ADD_TITLE'), 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LOCATIONS_ADD'], array()) . ($filterParentId ? '?PARENT_ID=' . $filterParentId : ''), 'ICON' => 'btn-new');
Exemple #3
0
if ($itemPerPage <= 0) {
    $itemPerPage = 20;
}
$arParams['ITEM_PER_PAGE'] = $itemPerPage;
$sort = array('LAST_NAME' => 'ASC', 'NAME' => 'ASC');
$filter = array();
$navParams = array('nPageSize' => $itemPerPage, 'iNumPage' => $enablePaging ? false : 1, 'bShowAll' => false);
$select = array('ID', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'POST', 'PHOTO', 'ASSIGNED_BY_ID', 'ASSIGNED_BY_LOGIN', 'ASSIGNED_BY_NAME', 'ASSIGNED_BY_SECOND_NAME', 'ASSIGNED_BY_LAST_NAME', 'COMPANY_ID', 'COMPANY_TITLE', 'COMMENTS');
$navigation = CDBResult::GetNavParams($navParams);
$CGridOptions = new CCrmGridOptions($arResult['UID']);
$navParams = $CGridOptions->GetNavParams($navParams);
$navParams['bShowAll'] = false;
$arResult['GRID_FILTER_ID'] = '';
$arResult['GRID_FILTER_NAME'] = '';
if ($enableSearch) {
    $filter += $CGridOptions->GetFilter($arResult['FILTER']);
    if (empty($filter)) {
        $enableSearch = $arResult['ENABLE_SEARCH'] = false;
        $arResult['GRID_FILTER_NAME'] = GetMessage('M_CRM_DEAL_LIST_FILTER_NONE');
    } else {
        if (isset($filter['GRID_FILTER_APPLIED']) && $filter['GRID_FILTER_APPLIED'] && isset($filter['GRID_FILTER_ID'])) {
            $filterID = $filter['GRID_FILTER_ID'];
            $arResult['GRID_FILTER_ID'] = $filterID;
            $arResult['GRID_FILTER_NAME'] = isset($arResult['FILTER_PRESETS'][$filterID]) ? $arResult['FILTER_PRESETS'][$filterID]['name'] : GetMessage('M_CRM_CONTACT_LIST_FILTER_CUSTOM');
        } else {
            $arResult['GRID_FILTER_NAME'] = GetMessage('M_CRM_CONTACT_LIST_FILTER_CUSTOM');
        }
        if (isset($filter['FULL_NAME'])) {
            $filter['%FULL_NAME'] = $filter['FULL_NAME'];
            unset($filter['FULL_NAME']);
        }
Exemple #4
0
$filter = array('CATALOG_ID' => $catalogID);
if ($activeSectionID > 0) {
    $filter['SECTION_ID'] = $activeSectionID;
}
$itemPerPage = isset($arParams['ITEM_PER_PAGE']) ? intval($arParams['ITEM_PER_PAGE']) : 0;
if ($itemPerPage <= 0) {
    $itemPerPage = 20;
}
$arParams['ITEM_PER_PAGE'] = $itemPerPage;
$navParams = array('nPageSize' => $itemPerPage, 'iNumPage' => $enablePaging ? false : 1, 'bShowAll' => false);
$navigation = CDBResult::GetNavParams($navParams);
$CGridOptions = new CCrmGridOptions($arResult['UID']);
$navParams = $CGridOptions->GetNavParams($navParams);
$navParams['bShowAll'] = !$enablePaging;
if ($enableSearch) {
    $filter += $CGridOptions->GetFilter(array(array('id' => 'NAME')));
    if (!empty($filter)) {
        if (isset($filter['NAME'])) {
            $filter['%NAME'] = $filter['NAME'];
            unset($filter['NAME']);
        }
    } else {
        $enableSearch = $arResult['ENABLE_SEARCH'] = false;
    }
}
$arResult['PRODUCTS'] = array();
$arPricesSelect = $arVatsSelect = array();
$select = CCrmProduct::DistributeProductSelect($select, $arPricesSelect, $arVatsSelect);
$dbProducts = CCrmProduct::GetList($sort, $filter, $select, $navParams);
$dbProducts->NavStart($navParams['nPageSize'], false);
$arResult['PAGE_NAVNUM'] = intval($dbProducts->NavNum);
Exemple #5
0
     foreach ($arEntityID as $entityID) {
         $isPermitted = CCrmActivity::CheckReadPermission(CCrmOwnerType::ResolveID($entityType), $entityID, $userPermissions);
         if (!$isPermitted) {
             break;
         }
     }
 }
 if (!$isPermitted) {
     echo CUtil::PhpToJSObject(array('ERROR' => GetMessage('CRM_PERMISSION_DENIED')));
     die;
 }
 // <--PERMISSIONS CHECK
 if (empty($arEntityID) && $gridID !== '') {
     //Apply grid filter if ids is not defined
     $gridOptions = new CCrmGridOptions($gridID);
     $gridFilter = $gridOptions->GetFilter(array());
     //Clear service fields
     if (isset($gridFilter['GRID_FILTER_APPLIED'])) {
         unset($gridFilter['GRID_FILTER_APPLIED']);
     }
     if (isset($gridFilter['GRID_FILTER_ID'])) {
         unset($gridFilter['GRID_FILTER_ID']);
     }
     if (is_array($gridFilter) && !empty($gridFilter)) {
         $dbEntities = null;
         if ($entityType === 'LEAD') {
             CCrmLead::PrepareFilter($gridFilter);
             $dbEntities = CCrmLead::GetListEx(array(), $gridFilter, false, false, array('ID'));
         } elseif ($entityType === 'DEAL') {
             CCrmDeal::PrepareFilter($gridFilter);
             $dbEntities = CCrmDeal::GetListEx(array(), $gridFilter, false, false, array('ID'));
Exemple #6
0
if (strlen($sEmailFrom) === 0) {
    // Using current user email
    $userName = $USER->GetFullName();
    $sEmailFrom = strlen($userName) > 0 ? $USER->GetFullName() . ' <' . $USER->GetEmail() . '>' : $USER->GetEmail();
}
$arResult['EMAIL_FROM'] = $sEmailFrom;
$arResult['COMMENTS'] = COption::GetOptionString('crm', 'email_template');
if ($arResult['ENTITY_ID'] == 'all') {
    $eventPage = isset($_REQUEST['EVENT_PAGE']) ? $_REQUEST['EVENT_PAGE'] : '';
    if ($eventPage !== '') {
        // HACK: for filter unique id
        $arUrl = parse_url($eventPage);
        $GLOBALS['APPLICATION']->SetCurPage($arUrl['path']);
    }
    $CGridOptions = new CCrmGridOptions('CRM_' . $arResult['ENTITY_TYPE'] . '_LIST');
    $arFilter = $CGridOptions->GetFilter(is_array($arResult['FILTER']) ? $arResult['FILTER'] : array());
    // converts data from filter
    if (isset($arFilter['FIND_list']) && !empty($arFilter['FIND'])) {
        $arFilter[strtoupper($arFilter['FIND_list'])] = $arFilter['FIND'];
        unset($arFilter['FIND_list'], $arFilter['FIND']);
    }
    // Preparing to filter by entity multi fields
    CCrmEntityHelper::PrepareMultiFieldFilter($arFilter);
    $arImmutableFilters = array('FM', 'ID', 'COMPANY_ID', 'CURRENCY_ID', 'CONTACT_ID', 'ASSIGNED_BY_ID', 'CREATED_BY_ID', 'MODIFY_BY_ID', 'PRODUCT_ROW_PRODUCT_ID');
    $arFilter2logic = array('TITLE', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'POST', 'ADDRESS', 'COMMENTS', 'BANKING_DETAILS', 'COMPANY_TITLE');
    foreach ($arFilter as $k => $v) {
        if (in_array($k, $arImmutableFilters, true)) {
            continue;
        }
        $arMatch = array();
        if ($k === 'ORIGINATOR_ID') {
Exemple #7
0
            $actionData['AJAX_CALL'] = false;
            if (isset($_GET['AJAX_CALL'])) {
                $actionData['AJAX_CALL'] = true;
                // Must be transfered to main.interface.grid
                //unset($_GET['AJAX_CALL'], $_REQUEST['AJAX_CALL']);
            }
        }
    }
}
// <-- Try to extract user action data
$arNavParams = array('nPageSize' => $arParams['PRODUCT_COUNT']);
$arNavigation = CDBResult::GetNavParams($arParams['PRODUCT_COUNT']);
$CGridOptions = new CCrmGridOptions($arResult['GRID_ID']);
$arNavParams = $CGridOptions->GetNavParams($arNavParams);
$arNavParams['bShowAll'] = false;
$arFilter = $gridFilter = $CGridOptions->GetFilter($arResult['FILTER']);
$arFilter['CATALOG_ID'] = $catalogID;
$sectionID = isset($arParams['~SECTION_ID']) ? intval($arParams['~SECTION_ID']) : 0;
$bFilterSection = $bTree || !isset($arFilter['GRID_FILTER_APPLIED']) || !$arFilter['GRID_FILTER_APPLIED'] || isset($arFilter['LIST_SECTION_ID']) && $arFilter['LIST_SECTION_ID'] !== '';
if ($bFilterSection) {
    if (!$bTree && isset($arFilter['GRID_FILTER_APPLIED']) && $arFilter['GRID_FILTER_APPLIED'] && isset($arFilter['LIST_SECTION_ID'])) {
        $sectionID = intval($arFilter['LIST_SECTION_ID']);
    }
    $arFilter['SECTION_ID'] = $sectionID;
}
// reset section filter HACK
if (!is_array($_SESSION['main.interface.grid'])) {
    $_SESSION['main.interface.grid'] = array();
}
if (!is_array($_SESSION['main.interface.grid'][$arResult['GRID_ID']])) {
    $_SESSION['main.interface.grid'][$arResult['GRID_ID']] = array();
Exemple #8
0
    $dbRes = new CDBResult();
    $dbRes->InitNavStartVars();
} else {
    $dataUid = $uid . '_' . strtolower(CCrmOwnerType::CompanyName);
    $arResult['ENTITY_DATA'][CCrmOwnerType::CompanyName] = array('UID' => $dataUid, 'ITEMS' => array());
    $sort = $companySort;
    $select = $companySelect;
    $filter = array();
    $filterFields = array(array('id' => 'ID'), array('id' => 'TITLE'), array('id' => 'CONTACT_ID'));
    $navParams = array('nPageSize' => $itemPerPage, 'iNumPage' => $enablePaging ? false : 1, 'bShowAll' => false);
    $navigation = CDBResult::GetNavParams($navParams);
    $CGridOptions = new CCrmGridOptions($dataUid);
    $navParams = $CGridOptions->GetNavParams($navParams);
    $navParams['bShowAll'] = false;
    if ($enableSearch) {
        $filter += $CGridOptions->GetFilter($filterFields);
        if (!empty($filter)) {
            if (isset($filter['CONTACT_ID'])) {
                //HACK: Geting contact company.
                $dbRes = CCrmContact::GetListEx($contactSort, array('=ID' => $filter['CONTACT_ID']), false, false, array('COMPANY_ID'));
                $contact = $item = $dbRes->Fetch();
                if (is_array($contact)) {
                    $filter['=ID'] = $contact['COMPANY_ID'];
                }
                unset($filter['CONTACT_ID']);
            }
            if (isset($filter['TITLE'])) {
                $filter['%TITLE'] = $filter['TITLE'];
                unset($filter['TITLE']);
            }
        } else {