$arParams['UID'] = 'mobile_crm_company_view'; } $arResult['UID'] = $arParams['UID']; $serviceURLTemplate = $arParams["SERVICE_URL_TEMPLATE"] ? $arParams["SERVICE_URL_TEMPLATE"] : '#SITE_DIR#bitrix/components/bitrix/mobile.crm.company.edit/ajax.php?site_id=#SITE#&sessid=#SID#'; $arResult['SERVICE_URL'] = CComponentEngine::makePathFromTemplate($serviceURLTemplate, array('SID' => bitrix_sessid())); $arResult['PERMISSIONS'] = array('EDIT' => CCrmCompany::CheckUpdatePermission($entityID, $userPerms), 'DELETE' => CCrmCompany::CheckDeletePermission($entityID, $userPerms)); $dbFields = CCrmCompany::GetListEx(array(), array('ID' => $entityID)); $arFields = $dbFields->GetNext(); if (!$arFields) { ShowError(GetMessage('CRM_COMPANY_VIEW_NOT_FOUND', array('#ID#' => $arParams['ENTITY_ID']))); return; } $arResult['COMPANY_TYPE_LIST'] = CCrmStatus::GetStatusList('COMPANY_TYPE'); $arResult['EMPLOYEES_LIST'] = CCrmStatus::GetStatusList('EMPLOYEES'); $arResult['INDUSTRY_LIST'] = CCrmStatus::GetStatusList('INDUSTRY'); CCrmMobileHelper::PrepareCompanyItem($arFields, $arParams, array('COMPANY_TYPE' => $arResult['COMPANY_TYPE_LIST'], 'INDUSTRY' => $arResult['INDUSTRY_LIST'], 'EMPLOYEES_LIST' => $arResult['EMPLOYEES_LIST'])); $arFields['FM'] = array(); $dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $entityID)); if ($dbMultiFields) { while ($multiFields = $dbMultiFields->Fetch()) { $arFields['FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']); } } $arResult['CALLTO'] = CCrmMobileHelper::PrepareCalltoParams(array('COMMUNICATION_LIST_URL_TEMPLATE' => $arParams['COMMUNICATION_LIST_URL_TEMPLATE'], 'ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $entityID, 'FM' => $arFields['FM'])); $arResult['MAILTO'] = CCrmMobileHelper::PrepareMailtoParams(array('COMMUNICATION_LIST_URL_TEMPLATE' => $arParams['COMMUNICATION_LIST_URL_TEMPLATE'], 'ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $entityID, 'FM' => $arFields['FM'])); $arFields['ACTITITY_QUANTITY'] = CAllCrmActivity::GetCount(array('BINDINGS' => array(array('OWNER_TYPE_ID' => CCrmOwnerType::Company, 'OWNER_ID' => $entityID)))); $arFields['ACTIVITY_LIST_URL'] = $arParams['ACTIVITY_LIST_URL_TEMPLATE'] !== '' ? CComponentEngine::MakePathFromTemplate($arParams['ACTIVITY_LIST_URL_TEMPLATE'], array('entity_type_id' => CCrmOwnerType::Company, 'entity_id' => $entityID)) : ''; $arFields['EVENT_LIST_URL'] = $arParams['EVENT_LIST_URL_TEMPLATE'] !== '' ? CComponentEngine::MakePathFromTemplate($arParams['EVENT_LIST_URL_TEMPLATE'], array('entity_type_id' => CCrmOwnerType::Company, 'entity_id' => $entityID)) : ''; $arFields['DEAL_QUANTITY'] = CAllCrmDeal::GetCount(array('COMPANY_ID' => $entityID)); $arFields['DEAL_LIST_URL'] = $arParams['DEAL_LIST_URL_TEMPLATE'] !== '' ? CComponentEngine::MakePathFromTemplate($arParams['DEAL_LIST_URL_TEMPLATE'], array('company_id' => $entityID)) : ''; $arFields['CONTACT_QUANTITY'] = CAllCrmContact::GetCount(array('COMPANY_ID' => $entityID));
} if (isset($filter['TITLE'])) { $filter['%TITLE'] = $filter['TITLE']; unset($filter['TITLE']); } } else { $enableSearch = $arResult['ENABLE_SEARCH'] = false; } } $arResult['ENTITY_DATA'][CCrmOwnerType::CompanyName]['FILTER'] =& $filterFields; unset($filterFields); $dbRes = CCrmCompany::GetListEx($sort, $filter, false, $navParams, $select); $dbRes->NavStart($navParams['nPageSize'], false); $navigationData = array('PAGE_NAVNUM' => intval($dbRes->NavNum), 'PAGE_NUMBER' => intval($dbRes->NavPageNomer), 'PAGE_NAVCOUNT' => intval($dbRes->NavPageCount)); while ($item = $dbRes->GetNext()) { CCrmMobileHelper::PrepareCompanyItem($item, $arParams); $arResult['ENTITY_DATA'][CCrmOwnerType::CompanyName]['ITEMS'][] = $item; unset($item); } $navigationData['PAGER_PARAM'] = "PAGEN_{$navigationData['PAGE_NAVNUM']}"; $navigationData['PAGE_NEXT_NUMBER'] = $navigationData['PAGE_NUMBER'] + 1; if ($navigationData['PAGE_NEXT_NUMBER'] > $navigationData['PAGE_NAVCOUNT']) { $navigationData['NEXT_PAGE_URL'] = ''; } else { $navigationData['NEXT_PAGE_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&PAGING=Y&FORMAT=json&entityTypes[]=' . strtolower(CCrmOwnerType::CompanyName) . '&SEARCH=' . ($enableSearch ? 'Y' : 'N') . '&' . $navigationData['PAGER_PARAM'] . '=' . $navigationData['PAGE_NEXT_NUMBER'], array('AJAX_CALL', 'PAGING', 'FORMAT', 'SEARCH', 'entityTypes', $navigationData['PAGER_PARAM'])); } $navigationData['SEARCH_PAGE_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&SEARCH=Y&FORMAT=json&apply_filter=Y&save=Y&entityTypes[]=' . strtolower(CCrmOwnerType::CompanyName), array('AJAX_CALL', 'SEARCH', 'FORMAT', 'entityTypes', 'save', 'apply_filter', 'clear_filter')); $arResult['ENTITY_DATA'][CCrmOwnerType::CompanyName]['NAVIGATION'] =& $navigationData; unset($navigationData); $arResult['ENTITY_DATA'][CCrmOwnerType::CompanyName]['RELOAD_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&FORMAT=json&entityTypes[]=' . strtolower(CCrmOwnerType::CompanyName), array('AJAX_CALL', 'SEARCH', 'FORMAT', 'entityTypes', 'save')); if ($arParams['ENABLE_CREATION']) {
$arResult['ITEMS'] = array(); $dbRes = CCrmCompany::GetListEx($sort, $filter, false, $navParams, $select); $dbRes->NavStart($navParams['nPageSize'], false); $arResult['PAGE_NAVNUM'] = intval($dbRes->NavNum); // pager index $arResult['PAGE_NUMBER'] = intval($dbRes->NavPageNomer); // current page index $arResult['PAGE_NAVCOUNT'] = intval($dbRes->NavPageCount); // page count $arResult['PAGER_PARAM'] = "PAGEN_{$arResult['PAGE_NAVNUM']}"; $arResult['PAGE_NEXT_NUMBER'] = $arResult['PAGE_NUMBER'] + 1; $arResult['COMPANY_TYPE_LIST'] = CCrmStatus::GetStatusList('COMPANY_TYPE'); //$arResult['EMPLOYEES_LIST'] = CCrmStatus::GetStatusList('EMPLOYEES'); $arResult['INDUSTRY_LIST'] = CCrmStatus::GetStatusList('INDUSTRY'); while ($item = $dbRes->GetNext()) { CCrmMobileHelper::PrepareCompanyItem($item, $arParams, array('COMPANY_TYPE' => $arResult['COMPANY_TYPE_LIST'], 'INDUSTRY' => $arResult['INDUSTRY_LIST'])); $arResult['ITEMS'][] =& $item; unset($item); } if ($arResult['PAGE_NEXT_NUMBER'] > $arResult['PAGE_NAVCOUNT']) { $arResult['NEXT_PAGE_URL'] = ''; } else { $arResult['NEXT_PAGE_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&PAGING=Y&FORMAT=json&SEARCH=' . ($enableSearch ? 'Y' : 'N') . '&' . $arResult['PAGER_PARAM'] . '=' . $arResult['PAGE_NEXT_NUMBER'], array('AJAX_CALL', 'PAGING', 'FORMAT', 'SEARCH', $arResult['PAGER_PARAM'])); } $arResult['SEARCH_PAGE_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&SEARCH=Y&FORMAT=json&apply_filter=Y&save=Y', array('AJAX_CALL', 'SEARCH', 'FORMAT', 'save', 'apply_filter', 'clear_filter')); $arResult['SERVICE_URL'] = SITE_DIR . 'bitrix/components/bitrix/mobile.crm.company.list/ajax.php?siteID=' . SITE_ID . '&' . bitrix_sessid_get(); $arResult['PERMISSIONS'] = array('CREATE' => CCrmCompany::CheckCreatePermission()); $arResult['CREATE_URL'] = $arParams['COMPANY_EDIT_URL_TEMPLATE'] !== '' ? CComponentEngine::MakePathFromTemplate($arParams['COMPANY_EDIT_URL_TEMPLATE'], array('company_id' => 0)) : ''; $arResult['RELOAD_URL'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&FORMAT=json', array('AJAX_CALL', 'SEARCH', 'FORMAT', 'save', 'apply_filter', 'clear_filter')); $format = isset($_REQUEST['FORMAT']) ? strtolower($_REQUEST['FORMAT']) : ''; // Only JSON format is supported
if ($successed) { //$DB->Commit(); __CrmMobileCompanyEditEndResonse(array('DELETED_ENTITY_ID' => $ID)); } else { //$DB->Rollback(); __CrmMobileCompanyEditEndResonse(array('ERROR' => GetMessage('CRM_COMPANY_COULD_NOT_DELETE'))); } } elseif ($action === 'GET_ENTITY') { __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); $typeName = isset($_REQUEST['ENTITY_TYPE_NAME']) ? $_REQUEST['ENTITY_TYPE_NAME'] : ''; if ($typeName !== 'COMPANY') { __CrmMobileCompanyEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_TYPE_NOT_SUPPORTED', array('#ENTITY_TYPE#' => $typeName)))); } $ID = isset($_REQUEST['ENTITY_ID']) ? intval($_REQUEST['ENTITY_ID']) : 0; if ($ID <= 0) { __CrmMobileCompanyEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_ID_NOT_FOUND'))); } if (!CCrmCompany::CheckReadPermission($ID)) { __CrmMobileCompanyEditEndResonse(array('ERROR' => GetMessage('CRM_ACCESS_DENIED'))); } $dbRes = CCrmCompany::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => 'N')); $item = $dbRes ? $dbRes->GetNext() : null; if (!is_array($item)) { __CrmMobileCompanyEditEndResonse(array('ERROR' => GetMessage('CRM_COMPANY_NOT_FOUND', array('#ID#' => $ID)))); } $formatParams = isset($_REQUEST['FORMAT_PARAMS']) ? $_REQUEST['FORMAT_PARAMS'] : array(); CCrmMobileHelper::PrepareCompanyItem($item, $formatParams); __CrmMobileCompanyEditEndResonse(array('ENTITY' => CCrmMobileHelper::PrepareCompanyData($item))); } else { __CrmMobileCompanyEditEndResonse(array('ERROR' => 'Action is not supported in current context.')); }