public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = null, $formName = '') { if (!CModule::IncludeModule('crm')) { return false; } $runtime = CBPRuntime::GetRuntime(); $arMap = array('EventType' => 'event_type', 'EventText' => 'event_text'); if (!is_array($arWorkflowParameters)) { $arWorkflowParameters = array(); } if (!is_array($arWorkflowVariables)) { $arWorkflowVariables = array(); } if (!is_array($arCurrentValues)) { $arCurrentActivity =& CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName); if (is_array($arCurrentActivity['Properties'])) { foreach ($arMap as $k => $v) { if (array_key_exists($k, $arCurrentActivity['Properties'])) { $arCurrentValues[$arMap[$k]] = $arCurrentActivity['Properties'][$k]; } else { $arCurrentValues[$arMap[$k]] = ''; } } } else { foreach ($arMap as $k => $v) { $arCurrentValues[$arMap[$k]] = ''; } } } return $runtime->ExecuteResourceFile(__FILE__, 'properties_dialog.php', array('arCurrentValues' => $arCurrentValues, 'arTypes' => CCrmStatus::GetStatusList('EVENT_TYPE'), 'formName' => $formName)); }
private static function GetStatusList($id) { if (!isset(self::$STATUSES[$id])) { self::$STATUSES[$id] = CCrmStatus::GetStatus($id); } return self::$STATUSES[$id]; }
public static function PrepareDocument(array &$arFields) { $stuses = CCrmStatus::GetStatusList('STATUS'); $statusID = isset($arFields['STATUS_ID']) ? $arFields['STATUS_ID'] : ''; $arFields['STATUS_ID_PRINTABLE'] = $statusID !== '' && isset($stuses[$statusID]) ? $stuses[$statusID] : ''; $arFields['FULL_ADDRESS'] = Bitrix\Crm\Format\LeadAddressFormatter::format($arFields, array('SEPARATOR' => Bitrix\Crm\Format\AddressSeparator::Comma)); }
public static function GetFieldsInfo() { if (!self::$FIELD_INFOS) { self::$FIELD_INFOS = array('ID' => array('TYPE' => 'integer', 'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)), 'ENTITY_ID' => array('TYPE' => 'string', 'ATTRIBUTES' => array(CCrmFieldInfoAttr::Required, CCrmFieldInfoAttr::Immutable)), 'STATUS_ID' => array('TYPE' => 'string', 'ATTRIBUTES' => array(CCrmFieldInfoAttr::Required, CCrmFieldInfoAttr::Immutable)), 'SORT' => array('TYPE' => 'integer'), 'NAME' => array('TYPE' => 'string', 'ATTRIBUTES' => array(CCrmFieldInfoAttr::Required)), 'NAME_INIT' => array('TYPE' => 'string', 'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly)), 'SYSTEM' => array('TYPE' => 'char', 'ATTRIBUTES' => array(CCrmFieldInfoAttr::ReadOnly))); } return self::$FIELD_INFOS; }
public static function installDefault() { $items = array(); $langIDs = self::getAllLangIDs(); foreach ($langIDs as $langID) { IncludeModuleLangFile(__FILE__, $langID); $s = trim(GetMessage('CRM_HONORIFIC_DEFAULT')); if ($s === '' || $s === '-') { //Skip stub continue; } $slugs = explode('|', $s); $slugCount = count($slugs); for ($i = 0; $i < $slugCount; $i++) { $ary = explode(';', $slugs[$i]); $count = count($ary); if ($count >= 2) { $name = trim($ary[1]); $statusID = trim($ary[0]); } else { $name = trim($ary[0]); $statusID = ''; } if ($statusID === '') { $statusID = 'HNR_' . strtoupper($langID) . '_' . ($i + 1); } if ($name === '' || isset($items[$statusID])) { continue; } $items[$statusID] = array('STATUS_ID' => $statusID, 'NAME' => $name, 'SORT' => ($i + 1) * 10, 'SYSTEM' => 'N'); } } $statusEntity = new \CCrmStatus('HONORIFIC'); $presentItems = \CCrmStatus::GetStatusList('HONORIFIC'); foreach ($items as $item) { if (!isset($presentItems[$item['STATUS_ID']])) { $statusEntity->Add($item); } } }
function GetList($arUserField) { $rsStatus = false; if (CModule::IncludeModule('crm')) { $arList = array(); $arStatuses = CCrmStatus::GetStatus($arUserField['SETTINGS']['ENTITY_TYPE']); foreach ($arStatuses as $arStatus) { $arList[] = array('ID' => $arStatus['STATUS_ID'], 'VALUE' => $arStatus['NAME']); } $rsStatus = new CDBResult(); $rsStatus->InitFromArray($arList); } return $rsStatus; }
/** * @return array */ public function initializeDemoData(array $data) { if (!(isset($data['items']) && is_array($data['items']))) { return $data; } $stages = \CCrmStatus::GetStatusList('DEAL_STAGE'); foreach ($data['items'] as &$item) { $stageID = isset($item['ID']) ? $item['ID'] : ''; if ($stageID !== '' && isset($stages[$stageID])) { $item['NAME'] = $stages[$stageID]; } } unset($item); return $data; }
public static function GetDocumentFields($documentType) { $arDocumentID = self::GetDocumentInfo($documentType . '_0'); if (empty($arDocumentID)) { throw new CBPArgumentNullException('documentId'); } __IncludeLang($_SERVER['DOCUMENT_ROOT'] . BX_ROOT . '/components/bitrix/crm.' . strtolower($arDocumentID['TYPE']) . '.edit/lang/' . LANGUAGE_ID . '/component.php'); $printableFieldNameSuffix = ' (' . GetMessage('CRM_FIELD_BP_TEXT') . ')'; $emailFieldNameSuffix = ' (' . GetMessage('CRM_FIELD_BP_EMAIL') . ')'; $arResult = array('ID' => array('Name' => GetMessage('CRM_FIELD_ID'), 'Type' => 'int', 'Filterable' => true, 'Editable' => false, 'Required' => false), 'TITLE' => array('Name' => GetMessage('CRM_FIELD_TITLE'), 'Type' => 'string', 'Filterable' => true, 'Editable' => true, 'Required' => true), 'COMPANY_TYPE' => array('Name' => GetMessage('CRM_FIELD_COMPANY_TYPE'), 'Type' => 'select', 'Options' => CCrmStatus::GetStatusListEx('COMPANY_TYPE'), 'Filterable' => true, 'Editable' => true, 'Required' => false), 'INDUSTRY' => array('Name' => GetMessage('CRM_FIELD_INDUSTRY'), 'Type' => 'select', 'Options' => CCrmStatus::GetStatusListEx('INDUSTRY'), 'Filterable' => true, 'Editable' => true, 'Required' => false), 'EMPLOYEES' => array('Name' => GetMessage('CRM_FIELD_EMPLOYEES'), 'Type' => 'select', 'Options' => CCrmStatus::GetStatusListEx('EMPLOYEES'), 'Filterable' => true, 'Editable' => true, 'Required' => false), 'REVENUE' => array('Name' => GetMessage('CRM_FIELD_REVENUE'), 'Type' => 'string', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'CURRENCY_ID' => array('Name' => GetMessage('CRM_FIELD_CURRENCY_ID'), 'Type' => 'select', 'Options' => CCrmCurrencyHelper::PrepareListItems(), 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ASSIGNED_BY_ID' => array('Name' => GetMessage('CRM_FIELD_ASSIGNED_BY_ID'), 'Type' => 'user', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ASSIGNED_BY_PRINTABLE' => array('Name' => GetMessage('CRM_FIELD_ASSIGNED_BY_ID') . $printableFieldNameSuffix, 'Type' => 'string', 'Filterable' => false, 'Editable' => false, 'Required' => false), 'ASSIGNED_BY_EMAIL' => array('Name' => GetMessage('CRM_FIELD_ASSIGNED_BY_ID') . $emailFieldNameSuffix, 'Type' => 'string', 'Filterable' => false, 'Editable' => false, 'Required' => false), 'COMMENTS' => array('Name' => GetMessage('CRM_FIELD_COMMENTS'), 'Type' => 'text', 'Filterable' => false, 'Editable' => true, 'Required' => false), 'EMAIL' => array('Name' => GetMessage('CRM_FIELD_EMAIL'), 'Type' => 'email', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'PHONE' => array('Name' => GetMessage('CRM_FIELD_PHONE'), 'Type' => 'phone', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'WEB' => array('Name' => GetMessage('CRM_FIELD_WEB'), 'Type' => 'web', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'IM' => array('Name' => GetMessage('CRM_FIELD_MESSENGER'), 'Type' => 'im', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS' => array('Name' => GetMessage('CRM_FIELD_ADDRESS'), 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS_LEGAL' => array('Name' => GetMessage('CRM_FIELD_ADDRESS_LEGAL'), 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'BANKING_DETAILS' => array('Name' => GetMessage('CRM_FIELD_BANKING_DETAILS'), 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), "OPENED" => array("Name" => GetMessage("CRM_FIELD_OPENED"), "Type" => "bool", "Filterable" => true, "Editable" => true, "Required" => false), "LEAD_ID" => array("Name" => GetMessage("CRM_FIELD_LEAD_ID"), "Type" => "int", "Filterable" => true, "Editable" => true, "Required" => false), "ORIGINATOR_ID" => array("Name" => GetMessage("CRM_FIELD_ORIGINATOR_ID"), "Type" => "string", "Filterable" => true, "Editable" => true, "Required" => false), "ORIGIN_ID" => array("Name" => GetMessage("CRM_FIELD_ORIGIN_ID"), "Type" => "string", "Filterable" => true, "Editable" => true, "Required" => false), "CONTACT_ID" => array("Name" => GetMessage("CRM_FIELD_CONTACT_ID"), "Type" => "UF:crm", "Options" => array('CONTACT' => 'Y'), "Filterable" => true, "Editable" => true, "Required" => false, "Multiple" => false), "DATE_CREATE" => array("Name" => GetMessage("CRM_COMPANY_EDIT_FIELD_DATE_CREATE"), "Type" => "datetime", "Filterable" => true, "Editable" => false, "Required" => false), "DATE_MODIFY" => array("Name" => GetMessage("CRM_COMPANY_EDIT_FIELD_DATE_MODIFY"), "Type" => "datetime", "Filterable" => true, "Editable" => false, "Required" => false)); $ar = CCrmFieldMulti::GetEntityTypeList(); foreach ($ar as $typeId => $arFields) { $arResult[$typeId . '_PRINTABLE'] = array('Name' => GetMessage("CRM_FIELD_MULTI_" . $typeId) . $printableFieldNameSuffix, 'Type' => 'string', "Filterable" => true, "Editable" => false, "Required" => false); foreach ($arFields as $valueType => $valueName) { $arResult[$typeId . '_' . $valueType] = array('Name' => $valueName, 'Type' => 'string', "Filterable" => true, "Editable" => false, "Required" => false); $arResult[$typeId . '_' . $valueType . '_PRINTABLE'] = array('Name' => $valueName . $printableFieldNameSuffix, 'Type' => 'string', "Filterable" => true, "Editable" => false, "Required" => false); } } global $USER_FIELD_MANAGER; $CCrmUserType = new CCrmUserType($USER_FIELD_MANAGER, 'CRM_COMPANY'); $CCrmUserType->AddBPFields($arResult, array('PRINTABLE_SUFFIX' => GetMessage("CRM_FIELD_BP_TEXT"))); return $arResult; }
public static function GetDocumentFields($documentType) { $arDocumentID = self::GetDocumentInfo($documentType . '_0'); if (empty($arDocumentID)) { throw new CBPArgumentNullException('documentId'); } __IncludeLang($_SERVER['DOCUMENT_ROOT'] . BX_ROOT . '/components/bitrix/crm.' . strtolower($arDocumentID['TYPE']) . '.edit/lang/' . LANGUAGE_ID . '/component.php'); $addressLabels = Bitrix\Crm\EntityAddress::getShortLabels(); $printableFieldNameSuffix = ' (' . GetMessage('CRM_FIELD_BP_TEXT') . ')'; $emailFieldNameSuffix = ' (' . GetMessage('CRM_FIELD_BP_EMAIL') . ')'; $arResult = array('ID' => array('Name' => GetMessage('CRM_FIELD_ID'), 'Type' => 'int', 'Filterable' => true, 'Editable' => false, 'Required' => false), 'NAME' => array('Name' => GetMessage('CRM_FIELD_NAME'), 'Type' => 'string', 'Filterable' => true, 'Editable' => true, 'Required' => true), 'LAST_NAME' => array('Name' => GetMessage('CRM_FIELD_LAST_NAME'), 'Type' => 'string', 'Filterable' => true, 'Editable' => true, 'Required' => true), 'SECOND_NAME' => array('Name' => GetMessage('CRM_FIELD_SECOND_NAME'), 'Type' => 'string', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'BIRTHDATE' => array('Name' => GetMessage('CRM_FIELD_BIRTHDATE'), 'Type' => 'datetime', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'PHOTO' => array('Name' => GetMessage('CRM_FIELD_PHOTO'), 'Type' => 'file', 'Filterable' => false, 'Editable' => true, 'Required' => false), 'EMAIL' => array('Name' => GetMessage('CRM_FIELD_EMAIL'), 'Type' => 'email', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'PHONE' => array('Name' => GetMessage('CRM_FIELD_PHONE'), 'Type' => 'phone', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'WEB' => array('Name' => GetMessage('CRM_FIELD_WEB'), 'Type' => 'web', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'IM' => array('Name' => GetMessage('CRM_FIELD_MESSENGER'), 'Type' => 'im', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'POST' => array('Name' => GetMessage('CRM_FIELD_POST'), 'Type' => 'string', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'FULL_ADDRESS' => array('Name' => GetMessage('CRM_FIELD_ADDRESS'), 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS' => array('Name' => $addressLabels['ADDRESS'], 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS_2' => array('Name' => $addressLabels['ADDRESS_2'], 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS_CITY' => array('Name' => $addressLabels['CITY'], 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS_POSTAL_CODE' => array('Name' => $addressLabels['POSTAL_CODE'], 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS_REGION' => array('Name' => $addressLabels['REGION'], 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS_PROVINCE' => array('Name' => $addressLabels['PROVINCE'], 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ADDRESS_COUNTRY' => array('Name' => $addressLabels['COUNTRY'], 'Type' => 'text', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'COMMENTS' => array('Name' => GetMessage('CRM_FIELD_COMMENTS'), 'Type' => 'text', 'Filterable' => false, 'Editable' => true, 'Required' => false), 'TYPE_ID' => array('Name' => GetMessage('CRM_FIELD_TYPE_ID'), 'Type' => 'select', 'Options' => CCrmStatus::GetStatusListEx('CONTACT_TYPE'), 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ASSIGNED_BY_ID' => array('Name' => GetMessage('CRM_FIELD_ASSIGNED_BY_ID'), 'Type' => 'user', 'Filterable' => true, 'Editable' => true, 'Required' => false), 'ASSIGNED_BY_PRINTABLE' => array('Name' => GetMessage('CRM_FIELD_ASSIGNED_BY_ID') . $printableFieldNameSuffix, 'Type' => 'string', 'Filterable' => false, 'Editable' => false, 'Required' => false), 'ASSIGNED_BY_EMAIL' => array('Name' => GetMessage('CRM_FIELD_ASSIGNED_BY_ID') . $emailFieldNameSuffix, 'Type' => 'string', 'Filterable' => false, 'Editable' => false, 'Required' => false), 'SOURCE_ID' => array('Name' => GetMessage('CRM_FIELD_SOURCE_ID'), 'Type' => 'select', 'Options' => CCrmStatus::GetStatusListEx('SOURCE'), 'Filterable' => true, 'Editable' => true, 'Required' => false), 'SOURCE_DESCRIPTION' => array('Name' => GetMessage('CRM_FIELD_SOURCE_DESCRIPTION'), 'Type' => 'text', 'Filterable' => false, 'Editable' => true, 'Required' => false), "OPENED" => array("Name" => GetMessage("CRM_FIELD_OPENED"), "Type" => "bool", "Filterable" => true, "Editable" => true, "Required" => false), "COMPANY_ID" => array("Name" => GetMessage("CRM_FIELD_COMPANY_ID"), "Type" => "string", "Filterable" => true, "Editable" => true, "Required" => false), "LEAD_ID" => array("Name" => GetMessage("CRM_FIELD_LEAD_ID"), "Type" => "int", "Filterable" => true, "Editable" => true, "Required" => false), "ORIGINATOR_ID" => array("Name" => GetMessage("CRM_FIELD_ORIGINATOR_ID"), "Type" => "string", "Filterable" => true, "Editable" => true, "Required" => false), "ORIGIN_ID" => array("Name" => GetMessage("CRM_FIELD_ORIGIN_ID"), "Type" => "string", "Filterable" => true, "Editable" => true, "Required" => false), "DATE_CREATE" => array("Name" => GetMessage("CRM_CONTACT_EDIT_FIELD_DATE_CREATE"), "Type" => "datetime", "Filterable" => true, "Editable" => false, "Required" => false), "DATE_MODIFY" => array("Name" => GetMessage("CRM_CONTACT_EDIT_FIELD_DATE_MODIFY"), "Type" => "datetime", "Filterable" => true, "Editable" => false, "Required" => false)); $ar = CCrmFieldMulti::GetEntityTypeList(); foreach ($ar as $typeId => $arFields) { $arResult[$typeId . '_PRINTABLE'] = array('Name' => GetMessage('CRM_FIELD_MULTI_' . $typeId) . $printableFieldNameSuffix, 'Type' => 'string', "Filterable" => true, "Editable" => false, "Required" => false); foreach ($arFields as $valueType => $valueName) { $arResult[$typeId . '_' . $valueType] = array('Name' => $valueName, 'Type' => 'string', "Filterable" => true, "Editable" => false, "Required" => false); $arResult[$typeId . '_' . $valueType . '_PRINTABLE'] = array('Name' => $valueName . $printableFieldNameSuffix, 'Type' => 'string', "Filterable" => true, "Editable" => false, "Required" => false); } } global $USER_FIELD_MANAGER; $CCrmUserType = new CCrmUserType($USER_FIELD_MANAGER, 'CRM_CONTACT'); $CCrmUserType->AddBPFields($arResult, array('PRINTABLE_SUFFIX' => GetMessage("CRM_FIELD_BP_TEXT"))); return $arResult; }
$arFields['~ASSIGNED_BY_FORMATTED_NAME'] = intval($arFields['~ASSIGNED_BY_ID']) > 0 ? CUser::FormatName($fullNameFormat, array('LOGIN' => $arFields['~ASSIGNED_BY_LOGIN'], 'NAME' => $arFields['~ASSIGNED_BY_NAME'], 'LAST_NAME' => $arFields['~ASSIGNED_BY_LAST_NAME'], 'SECOND_NAME' => $arFields['~ASSIGNED_BY_SECOND_NAME']), true, false) : GetMessage('RESPONSIBLE_NOT_ASSIGNED'); $arFields['ASSIGNED_BY_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~ASSIGNED_BY_FORMATTED_NAME']); $arFields['~CREATED_BY_FORMATTED_NAME'] = CUser::FormatName($fullNameFormat, array('LOGIN' => $arFields['~CREATED_BY_LOGIN'], 'NAME' => $arFields['~CREATED_BY_NAME'], 'LAST_NAME' => $arFields['~CREATED_BY_LAST_NAME'], 'SECOND_NAME' => $arFields['~CREATED_BY_SECOND_NAME']), true, false); $arFields['CREATED_BY_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~CREATED_BY_FORMATTED_NAME']); $arFields['PATH_TO_USER_CREATOR'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arFields['ASSIGNED_BY'])); $arFields['~MODIFY_BY_FORMATTED_NAME'] = CUser::FormatName($fullNameFormat, array('LOGIN' => $arFields['~MODIFY_BY_LOGIN'], 'NAME' => $arFields['~MODIFY_BY_NAME'], 'LAST_NAME' => $arFields['~MODIFY_BY_LAST_NAME'], 'SECOND_NAME' => $arFields['~MODIFY_BY_SECOND_NAME']), true, false); $arFields['MODIFY_BY_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~MODIFY_BY_FORMATTED_NAME']); $arFields['PATH_TO_USER_MODIFIER'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arFields['MODIFY_BY'])); $arResult['ELEMENT'] = $arFields; unset($arFields); $arResult['FORM_ID'] = 'CRM_COMPANY_SHOW_V12'; $arResult['GRID_ID'] = 'CRM_COMPANY_LIST_V12'; $arResult['BACK_URL'] = $arParams['PATH_TO_COMPANY_LIST']; $arResult['COMPANY_TYPE_LIST'] = CCrmStatus::GetStatusListEx('COMPANY_TYPE'); $arResult['EMPLOYEES_LIST'] = CCrmStatus::GetStatusListEx('EMPLOYEES'); $arResult['INDUSTRY_LIST'] = CCrmStatus::GetStatusListEx('INDUSTRY'); $enableInstantEdit = $arResult['ENABLE_INSTANT_EDIT'] = $arResult['CAN_EDIT']; $readOnlyMode = !$enableInstantEdit; $arResult['FIELDS'] = array(); $arResult['FIELDS']['tab_1'][] = array('id' => 'section_company_info', 'name' => GetMessage('CRM_SECTION_COMPANY_INFO'), 'type' => 'section', 'isTactile' => true); // TITLE --> // TITLE is displayed in sidebar. The field is added for COMPATIBILITY ONLY if ($enableInstantEdit) { $arResult['EDITABLE_FIELDS'][] = 'TITLE'; } $arResult['FIELDS']['tab_1'][] = array('id' => 'TITLE', 'name' => GetMessage('CRM_FIELD_TITLE'), 'params' => array('size' => 50), 'value' => isset($arResult['ELEMENT']['~TITLE']) ? $arResult['ELEMENT']['~TITLE'] : '', 'type' => 'label', 'isTactile' => true); // <-- TITLE // ASSIGNED_BY_ID is displayed in sidebar. The field is added for COMPATIBILITY ONLY if ($enableInstantEdit) { $arResult['EDITABLE_FIELDS'][] = 'ASSIGNED_BY_ID'; }
function __CrmQuickPanelViewPrepareStatusEnumeration($statusTypeID, $statusID, $editable, &$entityContext) { $sourceItems = CCrmStatus::GetStatusList($statusTypeID); $items = array(); $text = ''; foreach ($sourceItems as $k => $v) { if (!is_string($k)) { $k = (string) $k; } $items[] = array('ID' => $k, 'VALUE' => $v); if ($text === '' && $statusID !== '' && $statusID === $k) { $text = $v; } } return array('type' => 'enumeration', 'editable' => $editable, 'data' => array('value' => $statusID, 'text' => $text, 'items' => $items)); }
$CCrmUserType = new CCrmUserType($USER_FIELD_MANAGER, CCrmDeal::$sUFEntityID); $arResult['STAGE_LIST'] = CCrmStatus::GetStatusListEx('DEAL_STAGE'); $arResult['CURRENCY_LIST'] = CCrmCurrencyHelper::PrepareListItems(); $arResult['FILTER'] = array(); $arResult['GRID_ID'] = 'CRM_DEAL_FUNNEL'; if (!$bInternal) { $arResult['FILTER2LOGIC'] = array(); ob_start(); $GLOBALS['APPLICATION']->IncludeComponent('bitrix:crm.entity.selector', '', array('ENTITY_TYPE' => 'CONTACT', 'INPUT_NAME' => 'CONTACT_ID', 'INPUT_VALUE' => isset($_REQUEST['CONTACT_ID']) ? intval($_REQUEST['CONTACT_ID']) : '', 'FORM_NAME' => $arResult['GRID_ID'], 'MULTIPLE' => 'N', 'FILTER' => true), false, array('HIDE_ICONS' => 'Y')); $sValContact = ob_get_contents(); ob_end_clean(); ob_start(); $GLOBALS['APPLICATION']->IncludeComponent('bitrix:crm.entity.selector', '', array('ENTITY_TYPE' => 'COMPANY', 'INPUT_NAME' => 'COMPANY_ID', 'INPUT_VALUE' => isset($_REQUEST['COMPANY_ID']) ? intval($_REQUEST['COMPANY_ID']) : '', 'FORM_NAME' => $arResult['GRID_ID'], 'MULTIPLE' => 'N', 'FILTER' => true), false, array('HIDE_ICONS' => 'Y')); $sValCompany = ob_get_contents(); ob_end_clean(); $arResult['FILTER'] = array(array('id' => 'OPPORTUNITY', 'name' => GetMessage('CRM_COLUMN_OPPORTUNITY'), 'type' => 'number'), array('id' => 'CURRENCY_ID', 'name' => GetMessage('CRM_COLUMN_CURRENCY_ID'), 'type' => 'list', 'items' => array('' => '') + CCrmCurrencyHelper::PrepareListItems()), array('id' => 'PROBABILITY', 'name' => GetMessage('CRM_COLUMN_PROBABILITY'), 'type' => 'number'), array('id' => 'CLOSED', 'name' => GetMessage('CRM_COLUMN_CLOSED'), 'type' => 'list', 'items' => array('' => '', 'Y' => GetMessage('MAIN_YES'), 'N' => GetMessage('MAIN_NO'))), array('id' => 'TYPE_ID', 'name' => GetMessage('CRM_COLUMN_TYPE_ID'), 'default' => 'Y', 'type' => 'list', 'items' => array('' => '') + CCrmStatus::GetStatusList('DEAL_TYPE')), array('id' => 'BEGINDATE', 'name' => GetMessage('CRM_COLUMN_BEGINDATE'), 'type' => 'date'), array('id' => 'CLOSEDATE', 'name' => GetMessage('CRM_COLUMN_CLOSEDATE'), 'type' => 'date'), array('id' => 'DATE_CREATE', 'name' => GetMessage('CRM_COLUMN_DATE_CREATE'), 'default' => 'Y', 'type' => 'date'), array('id' => 'DATE_MODIFY', 'name' => GetMessage('CRM_COLUMN_DATE_MODIFY'), 'default' => 'Y', 'type' => 'date'), array('id' => 'MODIFY_BY_ID', 'name' => GetMessage('CRM_COLUMN_MODIFY_BY'), 'enable_settings' => false, 'type' => 'user'), array('id' => 'ASSIGNED_BY_ID', 'name' => GetMessage('CRM_COLUMN_ASSIGNED_BY'), 'default' => 'Y', 'enable_settings' => false, 'type' => 'user'), array('id' => 'CONTACT_ID', 'name' => GetMessage('CRM_COLUMN_CONTACT_LIST'), 'type' => 'custom', 'value' => $sValContact), array('id' => 'COMPANY_ID', 'name' => GetMessage('CRM_COLUMN_COMPANY_LIST'), 'type' => 'custom', 'value' => $sValCompany)); $CCrmUserType->ListAddFilterFields($arResult['FILTER'], $arResult['FILTER2LOGIC'], $arResult['GRID_ID']); $arResult['FILTER_PRESETS'] = array('filter_week' => array('name' => GetMessage('CRM_PRESET_WEEK'), 'fields' => array('DATE_MODIFY_datesel' => 'week')), 'filter_week_prev' => array('name' => GetMessage('CRM_PRESET_WEEK_PREV'), 'fields' => array('DATE_MODIFY_datesel' => 'week_ago')), 'filter_month' => array('name' => GetMessage('CRM_PRESET_MONTH'), 'fields' => array('DATE_MODIFY_datesel' => 'month')), 'filter_month_prev' => array('name' => GetMessage('CRM_PRESET_MONTH_PREV'), 'fields' => array('DATE_MODIFY_datesel' => 'month_ago')), 'filter_my_week' => array('name' => GetMessage('CRM_PRESET_MY_WEEK'), 'fields' => array('DATE_MODIFY_datesel' => 'week', "ASSIGNED_BY_ID" => __format_user4search(), "ASSIGNED_BY_ID[]" => $GLOBALS['USER']->GetID())), 'filter_my_week_ago' => array('name' => GetMessage('CRM_PRESET_MY_WEEK_AGO'), 'fields' => array('DATE_MODIFY_datesel' => 'week_ago', "ASSIGNED_BY_ID" => __format_user4search(), "ASSIGNED_BY_ID[]" => $GLOBALS['USER']->GetID()))); } if ($arParams['USE_AMCHARTS']) { $arResult['HEADERS'] = array(array('id' => 'TITLE', 'name' => GetMessage('CRM_COLUMN_TITLE'), 'sort' => false, 'default' => true, 'editable' => false), array('id' => 'PROCENT', 'name' => GetMessage('CRM_COLUMN_PROCENT'), 'sort' => false, 'default' => true, 'editable' => false, 'align' => 'right'), array('id' => 'COUNT_FUNNEL', 'name' => GetMessage('CRM_COLUMN_COUNT'), 'sort' => false, 'default' => true, 'editable' => false, 'align' => 'right')); } else { $arResult['HEADERS'] = array(array('id' => 'FUNNEL', 'name' => GetMessage('CRM_COLUMN_FUNNEL'), 'sort' => false, 'default' => false, 'editable' => false, 'align' => 'center'), array('id' => 'TITLE', 'name' => GetMessage('CRM_COLUMN_TITLE'), 'sort' => false, 'default' => true, 'editable' => false), array('id' => 'PROCENT', 'name' => GetMessage('CRM_COLUMN_PROCENT'), 'sort' => false, 'default' => true, 'editable' => false, 'align' => 'right'), array('id' => 'COUNT_FUNNEL', 'name' => GetMessage('CRM_COLUMN_COUNT'), 'sort' => false, 'default' => true, 'editable' => false, 'align' => 'right')); } $i = 0; foreach ($arResult['CURRENCY_LIST'] as $k => $v) { $arResult['HEADERS'][] = array('id' => $k, 'name' => GetMessage('CRM_COLUMN_SUMM', array('#CURRENCY#' => htmlspecialcharsbx($v))), 'sort' => false, 'default' => $i == 0, 'editable' => false, 'align' => 'right'); $i++; } $CGridOptions = new CCrmGridOptions($arResult['GRID_ID']); if (isset($_REQUEST['clear_filter']) && $_REQUEST['clear_filter'] == 'Y') {
</span> <span id="<?php echo htmlspecialcharsbx($addContactButtonID); ?> " class="bx-crm-edit-crm-entity-add"><?php echo htmlspecialcharsbx(GetMessage('interface_form_add_btn_contact')); ?> </span> </span> <?php } ?> <!--</div>--> </div><?php $dialogSettings['CONTACT'] = array('addButtonName' => GetMessage('interface_form_add_dialog_btn_add'), 'cancelButtonName' => GetMessage('interface_form_cancel'), 'title' => GetMessage('interface_form_add_contact_dlg_title'), 'lastNameTitle' => GetMessage('interface_form_add_contact_fld_last_name'), 'nameTitle' => GetMessage('interface_form_add_contact_fld_name'), 'secondNameTitle' => GetMessage('interface_form_add_contact_fld_second_name'), 'emailTitle' => GetMessage('interface_form_add_contact_fld_email'), 'phoneTitle' => GetMessage('interface_form_add_contact_fld_phone'), 'exportTitle' => GetMessage('interface_form_add_contact_fld_export')); $dialogSettings['COMPANY'] = array('addButtonName' => GetMessage('interface_form_add_dialog_btn_add'), 'cancelButtonName' => GetMessage('interface_form_cancel'), 'title' => GetMessage('interface_form_add_company_dlg_title'), 'titleTitle' => GetMessage('interface_form_add_company_fld_title_name'), 'companyTypeTitle' => GetMessage('interface_form_add_conpany_fld_company_type'), 'industryTitle' => GetMessage('interface_form_add_company_fld_industry'), 'emailTitle' => GetMessage('interface_form_add_conpany_fld_email'), 'phoneTitle' => GetMessage('interface_form_add_company_fld_phone'), 'companyTypeItems' => CCrmEntitySelectorHelper::PrepareListItems(CCrmStatus::GetStatusList('COMPANY_TYPE')), 'industryItems' => CCrmEntitySelectorHelper::PrepareListItems(CCrmStatus::GetStatusList('INDUSTRY'))); ?> <script type="text/javascript"> BX.ready( function() { var entitySelectorId = CRM.Set( BX('<?php echo CUtil::JSEscape($changeButtonID); ?> '), '<?php echo CUtil::JSEscape($selectorID); ?> ', '',
private static function PrepareEmployees() { return self::$EMPLOYEES !== null ? self::$EMPLOYEES : (self::$EMPLOYEES = CCrmStatus::GetStatusListEx('EMPLOYEES')); }
private static function PrepareEntityInfo($typeID, $ID, &$arRes, $options = null) { $enableEditUrl = is_array($options) && isset($options['ENABLE_EDIT_URL']) && $options['ENABLE_EDIT_URL'] === true; switch ($typeID) { case self::Lead: $treatAsContact = false; $treatAsCompany = false; if (is_array($options)) { $treatAsContact = isset($options['TREAT_AS_CONTACT']) && $options['TREAT_AS_CONTACT']; $treatAsCompany = isset($options['TREAT_AS_COMPANY']) && $options['TREAT_AS_COMPANY']; } if ($treatAsContact) { $result = array('TITLE' => CCrmLead::PrepareFormattedName($arRes), 'LEGEND' => isset($arRes['TITLE']) ? $arRes['TITLE'] : ''); } elseif ($treatAsCompany) { $result = array('TITLE' => isset($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : '', 'LEGEND' => isset($arRes['TITLE']) ? $arRes['TITLE'] : ''); } else { $result = array('TITLE' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'LEGEND' => CCrmLead::PrepareFormattedName($arRes)); } $result['RESPONSIBLE_ID'] = isset($arRes['ASSIGNED_BY_ID']) ? intval($arRes['ASSIGNED_BY_ID']) : 0; $result['IMAGE_FILE_ID'] = 0; $result['SHOW_URL'] = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $ID)); if ($enableEditUrl) { $result['EDIT_URL'] = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_edit'), array('lead_id' => $ID)); } return $result; case self::Contact: $result = array('TITLE' => CCrmContact::PrepareFormattedName($arRes), 'LEGEND' => isset($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : '', 'RESPONSIBLE_ID' => isset($arRes['ASSIGNED_BY_ID']) ? intval($arRes['ASSIGNED_BY_ID']) : 0, 'IMAGE_FILE_ID' => isset($arRes['PHOTO']) ? intval($arRes['PHOTO']) : 0, 'SHOW_URL' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_show'), array('contact_id' => $ID))); if ($enableEditUrl) { $result['EDIT_URL'] = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_edit'), array('contact_id' => $ID)); } return $result; case self::Company: if (self::$COMPANY_TYPE === null) { self::$COMPANY_TYPE = CCrmStatus::GetStatusList('COMPANY_TYPE'); } if (self::$COMPANY_INDUSTRY === null) { self::$COMPANY_INDUSTRY = CCrmStatus::GetStatusList('INDUSTRY'); } $legendParts = array(); $typeID = isset($arRes['COMPANY_TYPE']) ? $arRes['COMPANY_TYPE'] : ''; if ($typeID !== '' && isset(self::$COMPANY_TYPE[$typeID])) { $legendParts[] = self::$COMPANY_TYPE[$typeID]; } $industryID = isset($arRes['INDUSTRY']) ? $arRes['INDUSTRY'] : ''; if ($industryID !== '' && isset(self::$COMPANY_INDUSTRY[$industryID])) { $legendParts[] = self::$COMPANY_INDUSTRY[$industryID]; } $result = array('TITLE' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'LEGEND' => !empty($legendParts) ? implode(', ', $legendParts) : '', 'RESPONSIBLE_ID' => isset($arRes['ASSIGNED_BY_ID']) ? intval($arRes['ASSIGNED_BY_ID']) : 0, 'IMAGE_FILE_ID' => isset($arRes['LOGO']) ? intval($arRes['LOGO']) : 0, 'SHOW_URL' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_show'), array('company_id' => $ID))); if ($enableEditUrl) { $result['EDIT_URL'] = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_edit'), array('company_id' => $ID)); } return $result; case self::Deal: $result = array('TITLE' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'LEGEND' => '', 'RESPONSIBLE_ID' => isset($arRes['ASSIGNED_BY_ID']) ? intval($arRes['ASSIGNED_BY_ID']) : 0, 'IMAGE_FILE_ID' => 0, 'SHOW_URL' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $ID))); if ($enableEditUrl) { $result['EDIT_URL'] = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_edit'), array('deal_id' => $ID)); } return $result; case self::Invoice: $result = array('TITLE' => isset($arRes['ORDER_TOPIC']) ? $arRes['ORDER_TOPIC'] : '', 'LEGEND' => '', 'RESPONSIBLE_ID' => isset($arRes['RESPONSIBLE_ID']) ? intval($arRes['RESPONSIBLE_ID']) : 0, 'IMAGE_FILE_ID' => 0, 'SHOW_URL' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_invoice_show'), array('invoice_id' => $ID))); if ($enableEditUrl) { $result['EDIT_URL'] = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_invoice_edit'), array('invoice_id' => $ID)); } return $result; case self::Quote: $result = array('TITLE' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'LEGEND' => '', 'RESPONSIBLE_ID' => isset($arRes['ASSIGNED_BY_ID']) ? intval($arRes['ASSIGNED_BY_ID']) : 0, 'IMAGE_FILE_ID' => 0, 'SHOW_URL' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_show'), array('quote_id' => $ID))); if ($enableEditUrl) { $result['EDIT_URL'] = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_edit'), array('quote_id' => $ID)); } return $result; } return null; }
public function showField($arField, $arUF = array()) { $strResult = ""; switch ($arField["FORMAT"]) { case "LEAD_PROGRESS": if (!empty($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding crm-feed-info-bar-cont">'; $strResult .= CCrmViewHelper::RenderLeadStatusControl(array('ENTITY_TYPE_NAME' => CCrmOwnerType::Lead, 'REGISTER_SETTINGS' => true, 'PREFIX' => "", 'ENTITY_ID' => CCrmLiveFeedEntity::Lead, 'CURRENT_ID' => $arField["VALUE"], 'READ_ONLY' => true)); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "DEAL_PROGRESS": if (!empty($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding crm-feed-info-bar-cont">'; $strResult .= CCrmViewHelper::RenderDealStageControl(array('ENTITY_TYPE_NAME' => CCrmOwnerType::Deal, 'REGISTER_SETTINGS' => true, 'PREFIX' => "", 'ENTITY_ID' => CCrmLiveFeedEntity::Deal, 'CURRENT_ID' => $arField["VALUE"], 'READ_ONLY' => true)); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "INVOICE_PROGRESS": if (!empty($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding crm-feed-info-bar-cont">'; $strResult .= CCrmViewHelper::RenderInvoiceStatusControl(array('ENTITY_TYPE_NAME' => CCrmOwnerType::Invoice, 'REGISTER_SETTINGS' => true, 'PREFIX' => "", 'ENTITY_ID' => CCrmLiveFeedEntity::Invoice, 'CURRENT_ID' => $arField["VALUE"], 'READ_ONLY' => true)); $strResult .= "</span>"; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "LEAD_STATUS": $infos = CCrmStatus::GetStatus('STATUS'); if (!empty($arField["VALUE"]) && array_key_exists($arField["VALUE"], $infos)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= $infos[$arField["VALUE"]]["NAME"]; $strResult .= "</span>"; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "PERSON_NAME": if (is_array($arField["VALUE"])) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CUser::FormatName(CSite::GetNameFormat(), $arField["VALUE"]); $strResult .= "</span>"; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "PERSON_ID": if (intval($arField["VALUE"]) > 0) { $dbUser = CUser::GetByID(intval($arField["VALUE"])); if ($arUser = $dbUser->GetNext()) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; if ($arUser["PERSONAL_PHOTO"] > 0) { $arFileTmp = CFile::ResizeImageGet($arUser["PERSONAL_PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); } $strUser = ""; $strUser .= '<div class="feed-com-avatar crm-feed-company-avatar">'; if (is_array($arFileTmp) && isset($arFileTmp['src'])) { if (strlen($this->params["PATH_TO_USER"]) > 0) { $strUser .= '<a target="_blank" href="' . str_replace(array("#user_id#", "#USER_ID#"), intval($arField["VALUE"]), $this->params["PATH_TO_USER"]) . '"><img src="' . $arFileTmp['src'] . '" alt=""/></a>'; } else { $strUser .= '<img src="' . $arFileTmp['src'] . '" alt=""/>'; } } $strUser .= '</div>'; if (strlen($this->params["PATH_TO_USER"]) > 0) { $strUser .= '<a class="crm-detail-info-resp-name" target="_blank" href="' . str_replace(array("#user_id#", "#USER_ID#"), intval($arField["VALUE"]), $this->params["PATH_TO_USER"]) . '">' . CUser::FormatName(CSite::GetNameFormat(), $arUser, true, false) . '</a>'; } else { $strUser .= '<span class="crm-detail-info-resp-name">' . CUser::FormatName(CSite::GetNameFormat(), $arUser, true, false) . '</span>'; } if (strlen($arUser["WORK_POSITION"]) > 0) { $strUser .= '<span class="crm-detail-info-resp-descr">' . $arUser["WORK_POSITION"] . '</span>'; } $strResult .= '<span class="crm-detail-info-resp">' . $strUser . '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } } break; case "COMPANY_ID": if (intval($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $arField["VALUE"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMPANY_TYPE": $infos = CCrmStatus::GetStatusListEx('COMPANY_TYPE'); if (!empty($arField["VALUE"]) && array_key_exists($arField["VALUE"], $infos)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= $infos[$arField["VALUE"]]; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "CONTACT_ID": if (intval($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; $dbRes = CCrmContact::GetListEx(array(), array('=ID' => $arField["VALUE"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('PHOTO')); if (($arRes = $dbRes->Fetch()) && intval($arRes["PHOTO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } $strResult .= '</span>'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Contact, 'ENTITY_ID' => $arField["VALUE"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</div>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_CLIENT": if (is_array($arField["VALUE"]) && (array_key_exists("CONTACT_ID", $arField["VALUE"]) && intval($arField["VALUE"]["CONTACT_ID"]) > 0 || array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0 || array_key_exists("COMPANY_ID", $arField["VALUE"]) && intval($arField["VALUE"]["COMPANY_ID"]) > 0)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; if (array_key_exists("CONTACT_ID", $arField["VALUE"]) && intval($arField["VALUE"]["CONTACT_ID"]) > 0 || array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0) { if (array_key_exists("CONTACT_ID", $arField["VALUE"]) && intval($arField["VALUE"]["CONTACT_ID"]) > 0) { $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; $dbRes = CCrmContact::GetListEx(array(), array('=ID' => $arField["VALUE"]["CONTACT_ID"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('PHOTO', 'COMPANY_ID')); if ($arRes = $dbRes->Fetch()) { $contactCompanyID = $arRes['COMPANY_ID']; if (intval($arRes["PHOTO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } } $strResult .= '</span>'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Contact, 'ENTITY_ID' => $arField["VALUE"]["CONTACT_ID"], 'PREFIX' => '', 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); } else { $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; if (intval($arField['VALUE']['PHOTO_ID']) > 0) { $arFileTmp = CFile::ResizeImageGet($arField['VALUE']['PHOTO_ID'], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } $strResult .= '</span>'; if (array_key_exists("ENTITY_ID", $arField["VALUE"]) && intval($arField["VALUE"]["ENTITY_ID"]) > 0) { $url = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Contact, $arField["VALUE"]["ENTITY_ID"], true); } $clientName = CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($arField['VALUE']['HONORIFIC']) ? $arField['VALUE']['HONORIFIC'] : '', 'NAME' => isset($arField['VALUE']['CONTACT_NAME']) ? $arField['VALUE']['CONTACT_NAME'] : '', 'LAST_NAME' => isset($arField['VALUE']['CONTACT_LAST_NAME']) ? $arField['VALUE']['CONTACT_LAST_NAME'] : '', 'SECOND_NAME' => isset($arField['VALUE']['CONTACT_SECOND_NAME']) ? $arField['VALUE']['CONTACT_SECOND_NAME'] : '')); $strResult .= strlen($url) > 0 ? '<a href="' . $url . '" class="crm-feed-client-name">' . $clientName . '</a>' : $clientName; } $strResult .= '<span class="crm-feed-client-company">'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => array_key_exists("COMPANY_ID", $arField["VALUE"]) && intval($arField["VALUE"]["COMPANY_ID"]) > 0 ? $arField["VALUE"]["COMPANY_ID"] : intval($contactCompanyID), 'PREFIX' => '', 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</span>'; $strResult .= '</div>'; } else { $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $arField["VALUE"]["COMPANY_ID"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_COMPANY": if (is_array($arField["VALUE"]) && (array_key_exists("TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["TITLE"]) > 0)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $url = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Company, $arField["VALUE"]["ENTITY_ID"]); if (intval($arField['VALUE']['LOGO_ID']) > 0) { $arFileTmp = CFile::ResizeImageGet($arField['VALUE']['LOGO_ID'], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); } if (is_array($arFileTmp) && isset($arFileTmp['src'])) { $strResult .= '<a class="crm-feed-user-block" href="' . $url . '">'; $strResult .= '<span class="feed-com-avatar crm-feed-company-avatar">'; $strResult .= '<img width="39" height="39" alt="" src="' . $arFileTmp['src'] . '">'; $strResult .= '</span>'; $strResult .= '<span class="crm-feed-user-name">' . $arField["VALUE"]["TITLE"] . '</span>'; $strResult .= '</a>'; } else { $strResult .= '<a class="crm-feed-info-link" href="' . $url . '">' . $arField["VALUE"]["TITLE"] . '</a>'; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_CLIENT_NAME": if (is_array($arField["VALUE"]) && (array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0 || array_key_exists("COMPANY_TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["COMPANY_TITLE"]) > 0)) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; if (array_key_exists("CONTACT_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_NAME"]) > 0 || array_key_exists("CONTACT_LAST_NAME", $arField["VALUE"]) && strlen($arField["VALUE"]["CONTACT_LAST_NAME"]) > 0) { $strResult .= '<div class="crm-feed-client-block">'; $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar"></span>'; $strResult .= CCrmContact::PrepareFormattedName(array("HONORIFIC" => $arField["VALUE"]["HONORIFIC"], "NAME" => $arField["VALUE"]["CONTACT_NAME"], "LAST_NAME" => $arField["VALUE"]["CONTACT_LAST_NAME"], "SECOND_NAME" => $arField["VALUE"]["CONTACT_SECOND_NAME"])); $strResult .= '<span class="crm-feed-client-company">' . (strlen($arField["VALUE"]["COMPANY_TITLE"]) > 0 ? $arField["VALUE"]["COMPANY_TITLE"] : "") . '</span>'; $strResult .= '</div>'; } else { $strResult .= $arField["VALUE"]["COMPANY_TITLE"]; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "DEAL_ID": if (intval($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => CCrmOwnerType::Deal, 'ENTITY_ID' => $arField["VALUE"], 'PREFIX' => "", 'CLASS_NAME' => '', 'CHECK_PERMISSIONS' => 'N')); $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMMUNICATIONS": if (is_array($arField["VALUE"]) && count($arField["VALUE"]) > 0) { $arCommunication = $arField["VALUE"][0]; $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<div class="crm-feed-client-block">'; if (in_array($arCommunication["ENTITY_TYPE_ID"], array(CCrmOwnerType::Company, CCrmOwnerType::Contact, CCrmOwnerType::Lead))) { $strResult .= '<span class="feed-com-avatar crm-feed-user-avatar">'; if ($arCommunication["ENTITY_TYPE_ID"] == CCrmOwnerType::Contact) { $dbRes = CCrmContact::GetListEx(array(), array('=ID' => $arCommunication["ENTITY_ID"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('PHOTO')); if (($arRes = $dbRes->Fetch()) && intval($arRes["PHOTO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["PHOTO"], array('width' => 39, 'height' => 39), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="39" height="39" src="' . $arFileTmp['src'] . '" alt="">'; } } } elseif ($arCommunication["ENTITY_TYPE_ID"] == CCrmOwnerType::Company) { $dbRes = CCrmCompany::GetListEx(array(), array('=ID' => $arCommunication["ENTITY_ID"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('LOGO')); if (($arRes = $dbRes->Fetch()) && intval($arRes["LOGO"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arRes["LOGO"], array('width' => 30, 'height' => 30), BX_RESIZE_IMAGE_EXACT, false); if (is_array($arFileTmp) && isset($arFileTmp["src"])) { $strResult .= '<img width="30" height="30" src="' . $arFileTmp['src'] . '" alt="">'; } } } $strResult .= '</span>'; } $arBaloonFields = array('ENTITY_TYPE_ID' => $arCommunication["ENTITY_TYPE_ID"], 'ENTITY_ID' => $arCommunication["ENTITY_ID"], 'PREFIX' => "", 'CLASS_NAME' => 'crm-feed-client-name', 'CHECK_PERMISSIONS' => 'N'); if ($arCommunication["ENTITY_TYPE_ID"] == CCrmOwnerType::Lead && is_array($arCommunication["ENTITY_SETTINGS"])) { $arBaloonFields["TITLE"] = isset($arCommunication["ENTITY_SETTINGS"]["LEAD_TITLE"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["LEAD_TITLE"]) : ""; $arBaloonFields["NAME"] = isset($arCommunication["ENTITY_SETTINGS"]["NAME"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["NAME"]) : ""; $arBaloonFields["LAST_NAME"] = isset($arCommunication["ENTITY_SETTINGS"]["LAST_NAME"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["LAST_NAME"]) : ""; $arBaloonFields["SECOND_NAME"] = isset($arCommunication["ENTITY_SETTINGS"]["SECOND_NAME"]) ? htmlspecialcharsback($arCommunication["ENTITY_SETTINGS"]["SECOND_NAME"]) : ""; } $strResult .= '<div>' . CCrmViewHelper::PrepareEntityBaloonHtml($arBaloonFields) . '</div>'; switch ($arCommunication["TYPE"]) { case 'EMAIL': $strResult .= '<div><a href="mailto:' . $arCommunication["VALUE"] . '" class="crm-feed-client-phone">' . $arCommunication["VALUE"] . '</div>'; break; case 'PHONE': if (CCrmSipHelper::isEnabled()) { ob_start(); ?> <script type="text/javascript"> if (typeof (window.bSipManagerUrlDefined_<?php echo $arCommunication["ENTITY_TYPE_ID"]; ?> ) === 'undefined') { window.bSipManagerUrlDefined_<?php echo $arCommunication["ENTITY_TYPE_ID"]; ?> = true; BX.ready( function() { var mgr = BX.CrmSipManager.getCurrent(); mgr.setServiceUrl( "CRM_<?php echo CUtil::JSEscape(CCrmOwnerType::ResolveName($arCommunication["ENTITY_TYPE_ID"])); ?> ", "<?php echo CUtil::JSEscape($this->arSipServiceUrl[$arCommunication["ENTITY_TYPE_ID"]]); ?> " ); if(typeof(BX.CrmSipManager.messages) === 'undefined') { BX.CrmSipManager.messages = { "unknownRecipient": "<?php echo GetMessageJS('CRM_LF_SIP_MGR_UNKNOWN_RECIPIENT'); ?> ", "enableCallRecording": "<?php echo GetMessageJS('CRM_LF_SIP_MGR_ENABLE_CALL_RECORDING'); ?> ", "makeCall": "<?php echo GetMessageJS('CCRM_LF_SIP_MGR_MAKE_CALL'); ?> " }; } } ); } </script> <?php $strResult .= ob_get_contents(); ob_end_clean(); } $strResult .= '<div><span class="crm-feed-num-block">' . CCrmViewHelper::PrepareMultiFieldHtml('PHONE', array('VALUE' => $arCommunication["VALUE"], 'VALUE_TYPE_ID' => 'WORK'), array('ENABLE_SIP' => true, 'SIP_PARAMS' => array('ENTITY_TYPE' => 'CRM_' . CCrmOwnerType::ResolveName($arCommunication["ENTITY_TYPE_ID"]), 'ENTITY_ID' => $arCommunication["ENTITY_ID"]))) . '</span></div>'; if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->RegisterTag("CRM_CALLTO_SETTINGS"); } break; } $strResult .= '<span class="crm-feed-client-company">' . (is_array($arCommunication["ENTITY_SETTINGS"]) && isset($arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"]) ? $arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"] : "") . '</span>'; $strResult .= '</div>'; $moreCnt = count($arField["VALUE"]) - 1; if ($moreCnt > 0) { $strResult .= "#clients_more_link#"; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "AVATAR_ID": if (intval($arField["VALUE"]) > 0) { $arFileTmp = CFile::ResizeImageGet($arField["VALUE"], array('width' => $this->params["AVATAR_SIZE"], 'height' => $this->params["AVATAR_SIZE"]), BX_RESIZE_IMAGE_EXACT, false); $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= '<img src="' . $arFileTmp["src"] . '" border="0" alt="' . $this->params["AVATAR_SIZE"] . '" width="" height="' . $this->params["AVATAR_SIZE"] . '">'; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "SUM": if (intval($arField["VALUE"]["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= '<span class="crm-feed-info-sum">' . CCrmCurrency::MoneyToString($arField["VALUE"]["VALUE"], $arField["VALUE"]["CURRENCY"]) . '</span>'; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "PHONE": case "EMAIL": if (!empty($arField["VALUE"])) { $infos = CCrmFieldMulti::GetEntityTypes(); $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= CCrmViewHelper::PrepareFirstMultiFieldHtml($arField["FORMAT"], $arField["VALUE"], $infos[$arField["FORMAT"]]); if (count($arField["VALUE"]) > 1 || !empty($arField["VALUE"]["WORK"]) && count($arField["VALUE"]["WORK"]) > 1 || !empty($arField["VALUE"]["MOBILE"]) && count($arField["VALUE"]["MOBILE"]) > 1 || !empty($arField["VALUE"]["FAX"]) && count($arField["VALUE"]["FAX"]) > 1 || !empty($arField["VALUE"]["PAGER"]) && count($arField["VALUE"]["PAGER"]) > 1 || !empty($arField["VALUE"]["OTHER"]) && count($arField["VALUE"]["OTHER"]) > 1) { $anchorID = strtolower($arField["FORMAT"]); $strResult .= '<span style="margin-left: 10px;" class="crm-item-tel-list" id="' . htmlspecialcharsbx($anchorID) . '"' . ' onclick="' . CCrmViewHelper::PrepareMultiFieldValuesPopup($anchorID, $anchorID, $arField["FORMAT"], $arField["VALUE"], $infos[$arField["FORMAT"]]) . '"></span>'; } $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; if ($arField["FORMAT"] == "PHONE" && defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->RegisterTag("CRM_CALLTO_SETTINGS"); } } break; case "TEXT_FORMATTED": case "TEXT_FORMATTED_BOLD": if ($arField["VALUE"] != CCrmLiveFeed::UntitledMessageStub) { $text_formatted = $this->ParseText(htmlspecialcharsback($arField["VALUE"]), $arUF, $arParams["PARAMS"]); if (strlen($text_formatted) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_colspan2#"; if ($arField["FORMAT"] == "TEXT_FORMATTED_BOLD") { $strResult .= "<b>" . $text_formatted . "</b>"; } else { $strResult .= $text_formatted; } $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } } break; case "COMBI_TITLE": if (is_array($arField["VALUE"]) && array_key_exists("TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["TITLE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; if (array_key_exists("URL", $arField["VALUE"]) && strlen($arField["VALUE"]["URL"]) > 0) { $strResult .= '<a href="' . $arField["VALUE"]["URL"] . '">' . $arField["VALUE"]["TITLE"] . '</a>'; } elseif (array_key_exists("ONCLICK", $arField["VALUE"]) && strlen($arField["VALUE"]["ONCLICK"]) > 0) { $strResult .= '<a href="javascript:void(0)" onclick="' . $arField["VALUE"]["ONCLICK"] . '">' . $arField["VALUE"]["TITLE"] . '</a>'; } else { $strResult .= $arField["VALUE"]["TITLE"]; } $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "COMBI_TITLE_ID": if (is_array($arField["VALUE"]) && array_key_exists("TITLE", $arField["VALUE"]) && strlen($arField["VALUE"]["TITLE"]) > 0 && array_key_exists("ID", $arField["VALUE"]) && strlen($arField["VALUE"]["ID"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; if (array_key_exists("URL", $arField["VALUE"]) && strlen($arField["VALUE"]["URL"]) > 0) { $strResult .= '<a href="' . $arField["VALUE"]["URL"] . '">' . GetMessage("C_CRM_LF_COMBI_TITLE_ID_VALUE", array("#ID#" => $arField["VALUE"]["ID"], "#TITLE#" => $arField["VALUE"]["TITLE"])) . '</a>'; } else { $strResult .= GetMessage("C_CRM_LF_COMBI_TITLE_ID_VALUE", array("#ID#" => $arField["VALUE"]["ID"], "#TITLE#" => $arField["VALUE"]["TITLE"])); } $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "TEXT_ADD": if (strlen($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= '<span class="crm-feed-info-name">' . $arField["VALUE"] . '</span>'; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } break; case "TEXT": default: if (strlen($arField["VALUE"]) > 0) { $strResult .= "#row_begin#"; $strResult .= "#cell_begin_left#"; $strResult .= $arField["TITLE"] . ":"; $strResult .= "#cell_end#"; $strResult .= "#cell_begin_right#"; $strResult .= '<span class="crm-feed-info-text-padding">'; $strResult .= $arField["VALUE"]; $strResult .= '</span>'; $strResult .= "#cell_end#"; $strResult .= "#row_end#"; } } return $strResult; }
} global $APPLICATION; $CCrmPerms = new CCrmPerms($USER->GetID()); if (!$USER->IsAuthorized() || $CCrmPerms->HavePerm('DEAL', BX_CRM_PERM_NONE)) { return; } $arResult = array(); $_GET['USER_ID'] = preg_replace('/^(CONTACT|COMPANY|LEAD|DEAL)_/i' . BX_UTF_PCRE_MODIFIER, '', $_GET['USER_ID']); $iDealId = (int) $_GET['USER_ID']; if ($iDealId > 0) { __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); $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_CONTACT_SHOW'] = CrmCheckPath('PATH_TO_CONTACT_SHOW', $arParams['PATH_TO_CONTACT_SHOW'], $APPLICATION->GetCurPage() . '?contact_id=#contact_id#&show'); $arParams['PATH_TO_COMPANY_SHOW'] = CrmCheckPath('PATH_TO_COMPANY_SHOW', $arParams['PATH_TO_COMPANY_SHOW'], $APPLICATION->GetCurPage() . '?company_id=#company_id#&show'); $arResult['STAGE_LIST'] = CCrmStatus::GetStatusListEx('DEAL_STAGE'); $obRes = CCrmDeal::GetList(array(), array('ID' => $iDealId)); $arDeal = $obRes->Fetch(); if ($arDeal == false) { return; } $res = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'DEAL', 'ELEMENT_ID' => $iDealId)); while ($ar = $res->Fetch()) { if (empty($arDeal[$ar['COMPLEX_ID']])) { $arDeal[$ar['COMPLEX_ID']] = CCrmFieldMulti::GetTemplateByComplex($ar['COMPLEX_ID'], $ar['VALUE']); } } $arDeal['PATH_TO_DEAL_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DEAL_SHOW'], array('deal_id' => $iDealId)); $arDeal['PATH_TO_DEAL_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DEAL_EDIT'], array('deal_id' => $iDealId)); $arDeal['PATH_TO_CONTACT_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CONTACT_SHOW'], array('contact_id' => $arDeal['CONTACT_ID'])); $arDeal['PATH_TO_COMPANY_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_COMPANY_SHOW'], array('company_id' => $arDeal['COMPANY_ID']));
public static function BuildSearchCard($arQuote, $bReindex = false) { $arStatuses = array(); $arSite = array(); $sEntityType = 'QUOTE'; $sTitle = 'TITLE'; $sNumber = 'QUOTE_NUMBER'; $arSearchableFields = array('DATE_CREATE' => GetMessage('CRM_QUOTE_SEARCH_FIELD_DATE_CREATE'), 'STATUS_ID' => GetMessage('CRM_QUOTE_SEARCH_FIELD_STATUS_ID'), 'BEGINDATE' => GetMessage('CRM_QUOTE_SEARCH_FIELD_BEGINDATE'), 'CLOSEDATE' => GetMessage('CRM_QUOTE_SEARCH_FIELD_CLOSEDATE'), 'OPPORTUNITY' => GetMessage('CRM_QUOTE_SEARCH_FIELD_OPPORTUNITY'), 'COMMENTS' => GetMessage('CRM_QUOTE_SEARCH_FIELD_COMMENTS'), 'CLIENT_TITLE' => GetMessage('CRM_QUOTE_SEARCH_FIELD_CLIENT_TITLE'), 'CLIENT_ADDR' => GetMessage('CRM_QUOTE_SEARCH_FIELD_CLIENT_ADDR'), 'CLIENT_CONTACT' => GetMessage('CRM_QUOTE_SEARCH_FIELD_CLIENT_CONTACT'), 'CLIENT_EMAIL' => GetMessage('CRM_QUOTE_SEARCH_FIELD_CLIENT_EMAIL'), 'CLIENT_PHONE' => GetMessage('CRM_QUOTE_SEARCH_FIELD_CLIENT_PHONE'), 'CLIENT_TP_ID' => GetMessage('CRM_QUOTE_SEARCH_FIELD_TP_ID'), 'CLIENT_TPA_ID' => GetMessage('CRM_QUOTE_SEARCH_FIELD_TPA_ID')); $sBody = $arQuote[$sNumber] . ', ' . $arQuote[$sTitle] . "\n"; $arField2status = array('STATUS_ID' => 'QUOTE_STATUS'); $site = new CSite(); foreach (array_keys($arSearchableFields) as $k) { if (!isset($arQuote[$k])) { continue; } $v = $arQuote[$k]; if ($k === 'COMMENTS') { $v = CSearch::KillTags($v); } $v = trim($v); if ($k === 'DATE_CREATE' || $k === 'BEGINDATE' || $k === 'CLOSEDATE') { $dateFormatShort = $site->GetDateFormat('SHORT'); if (!CheckDateTime($v, $dateFormatShort)) { $v = ConvertTimeStamp(strtotime($v), 'SHORT'); } if (CheckDateTime($v, $dateFormatShort)) { $v = FormatDate('SHORT', MakeTimeStamp($v, $dateFormatShort)); } else { $v = null; } } if (isset($arField2status[$k])) { if (!isset($arStatuses[$k])) { $arStatuses[$k] = CCrmStatus::GetStatusList($arField2status[$k]); } $v = $arStatuses[$k][$v]; } if ($k === 'OPPORTUNITY') { $v = number_format(doubleval($v), 2, '.', ''); } if (!empty($v) && (!is_numeric($v) || $k === 'OPPORTUNITY') && $v != 'N' && $v != 'Y') { $sBody .= $arSearchableFields[$k] . ": {$v}\n"; } } if (isset($arQuote['ASSIGNED_BY_NAME']) && !empty($arQuote['ASSIGNED_BY_NAME']) || isset($arQuote['ASSIGNED_BY_LAST_NAME']) && !empty($arQuote['ASSIGNED_BY_LAST_NAME']) || isset($arQuote['ASSIGNED_BY_SECOND_NAME']) && !empty($arQuote['ASSIGNED_BY_SECOND_NAME'])) { $responsibleInfo = CUser::FormatName($site->GetNameFormat(null, $arQuote['LID']), array('LOGIN' => '', 'NAME' => isset($arQuote['ASSIGNED_BY_NAME']) ? $arQuote['ASSIGNED_BY_NAME'] : '', 'LAST_NAME' => isset($arQuote['ASSIGNED_BY_LAST_NAME']) ? $arQuote['ASSIGNED_BY_LAST_NAME'] : '', 'SECOND_NAME' => isset($arQuote['ASSIGNED_BY_SECOND_NAME']) ? $arQuote['ASSIGNED_BY_SECOND_NAME'] : ''), false, false); if (isset($arQuote['ASSIGNED_BY_EMAIL']) && !empty($arQuote['ASSIGNED_BY_EMAIL'])) { $responsibleInfo .= ', ' . $arQuote['ASSIGNED_BY_EMAIL']; } if (isset($arQuote['ASSIGNED_BY_WORK_POSITION']) && !empty($arQuote['ASSIGNED_BY_WORK_POSITION'])) { $responsibleInfo .= ', ' . $arQuote['ASSIGNED_BY_WORK_POSITION']; } if (!empty($responsibleInfo) && !is_numeric($responsibleInfo) && $responsibleInfo != 'N' && $responsibleInfo != 'Y') { $sBody .= GetMessage('CRM_QUOTE_SEARCH_FIELD_ASSIGNED_BY_INFO') . ": {$responsibleInfo}\n"; } } $sDetailURL = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_' . strtolower($sEntityType) . '_show'), array(strtolower($sEntityType) . '_id' => $arQuote['ID'])); $_arAttr = CCrmPerms::GetEntityAttr($sEntityType, $arQuote['ID']); if (empty($arSite)) { $by = "sort"; $order = "asc"; $rsSite = $site->GetList($by, $order); while ($_arSite = $rsSite->Fetch()) { $arSite[] = $_arSite['ID']; } } unset($site); $sattr_d = ''; $sattr_s = ''; $sattr_u = ''; $sattr_o = ''; $sattr2 = ''; $arAttr = array(); if (!isset($_arAttr[$arQuote['ID']])) { $_arAttr[$arQuote['ID']] = array(); } $arAttr[] = $sEntityType; // for perm X foreach ($_arAttr[$arQuote['ID']] as $_s) { if ($_s[0] == 'U') { $sattr_u = $_s; } else { if ($_s[0] == 'D') { $sattr_d = $_s; } else { if ($_s[0] == 'S') { $sattr_s = $_s; } else { if ($_s[0] == 'O') { $sattr_o = $_s; } } } } $arAttr[] = $sEntityType . '_' . $_s; } $sattr = $sEntityType . '_' . $sattr_u; if (!empty($sattr_d)) { $sattr .= '_' . $sattr_d; $arAttr[] = $sattr; } if (!empty($sattr_s)) { $sattr2 = $sattr . '_' . $sattr_s; $arAttr[] = $sattr2; $arAttr[] = $sEntityType . '_' . $sattr_s; // for perm X in status } if (!empty($sattr_o)) { $sattr .= '_' . $sattr_o; $sattr3 = $sattr2 . '_' . $sattr_o; $arAttr[] = $sattr3; $arAttr[] = $sattr; } $arSitePath = array(); foreach ($arSite as $sSite) { $arSitePath[$sSite] = $sDetailURL; } $arResult = array('LAST_MODIFIED' => $arQuote['DATE_MODIFY'], 'DATE_FROM' => $arQuote['DATE_CREATE'], 'TITLE' => GetMessage('CRM_' . $sEntityType) . ': ' . $arQuote[$sNumber] . ', ' . $arQuote[$sTitle], 'PARAM1' => $sEntityType, 'PARAM2' => $arQuote['ID'], 'SITE_ID' => $arSitePath, 'PERMISSIONS' => $arAttr, 'BODY' => $sBody, 'TAGS' => 'crm,' . strtolower($sEntityType) . ',' . GetMessage('CRM_' . $sEntityType)); if ($bReindex) { $arResult['ID'] = $sEntityType . '.' . $arQuote['ID']; } return $arResult; }
private function SaveOrderDataDeal($arOrder, $contactId = null, $companyId = null) { $dealId = 0; $dealTitle = ""; $dbDeal = CCrmDeal::GetList(array(), array("ORIGINATOR_ID" => $this->externalSaleId, "ORIGIN_ID" => $arOrder["ID"], "CHECK_PERMISSIONS" => "N")); if ($arDeal = $dbDeal->Fetch()) { $dealId = $arDeal["ID"]; $dealTitle = $arDeal["TITLE"]; } $newDeal = $dealId == 0; if ($this->arExternalSale == null) { $this->arExternalSale = CCrmExternalSale::GetDefaultSettings($this->externalSaleId); } $arFields = array('ORIGINATOR_ID' => $this->externalSaleId, 'ORIGIN_ID' => $arOrder["ID"], 'BEGINDATE' => $arOrder["DATE_INSERT"], 'CURRENCY_ID' => $arOrder["CURRENCY"], 'EXCH_RATE' => $arOrder["CURRENCY_RATE"], 'OPPORTUNITY' => $arOrder["PRICE"]); // Prevent reset comment if order comment is empty if (isset($arOrder["COMMENT"]) && $arOrder["COMMENT"] !== "") { $arFields["COMMENTS"] = $arOrder["COMMENT"]; } if ($contactId != null && intval($contactId) > 0) { $arFields["CONTACT_ID"] = $contactId; } if ($companyId != null && intval($companyId) > 0) { $arFields["COMPANY_ID"] = $companyId; } static $arStageList = null; if ($arStageList == null) { $arStageList = CCrmStatus::GetStatusList('DEAL_STAGE'); } // Prevent reset stage for existed deals if ($newDeal && array_key_exists("NEW", $arStageList)) { $arFields["STAGE_ID"] = "NEW"; } $arAdditionalInfo = array(); if ($contactId != null && intval($contactId) > 0) { if (isset($arOrder["CONTRACTOR"]["FULL_NAME"]) && $arOrder["CONTRACTOR"]["FULL_NAME"] != "") { $arAdditionalInfo['CONTACT_FULL_NAME'] = $arOrder["CONTRACTOR"]["FULL_NAME"]; } elseif (isset($arOrder["CONTRACTOR"]["NAME"]) && $arOrder["CONTRACTOR"]["NAME"] != "") { $arAdditionalInfo['CONTACT_FULL_NAME'] = $arOrder["CONTRACTOR"]["NAME"]; } } if ($companyId != null && intval($companyId) > 0) { if (isset($arOrder["CONTRACTOR"]["OFFICIAL_NAME"]) && $arOrder["CONTRACTOR"]["OFFICIAL_NAME"] != "") { $arAdditionalInfo['COMPANY_FULL_NAME'] = $arOrder["CONTRACTOR"]["OFFICIAL_NAME"]; } elseif (isset($arOrder["CONTRACTOR"]["NAME"]) && $arOrder["CONTRACTOR"]["NAME"] != "") { $arAdditionalInfo['COMPANY_FULL_NAME'] = $arOrder["CONTRACTOR"]["NAME"]; } } if (is_array($arOrder["PROPERTIES"])) { foreach ($arOrder["PROPERTIES"] as $arProp) { if (!empty($arProp["VALUE"])) { $arAdditionalInfo[strtoupper($arProp["NAME"])] = $arProp["VALUE"]; if ($arAdditionalInfo[strtoupper($arProp["NAME"])] == "true") { $arAdditionalInfo[strtoupper($arProp["NAME"])] = true; } elseif ($arAdditionalInfo[strtoupper($arProp["NAME"])] == "false") { $arAdditionalInfo[strtoupper($arProp["NAME"])] = false; } } switch (strtoupper($arProp["NAME"])) { case 'FINALSTATUS': if ($arProp["VALUE"] == 'true') { $arFields["CLOSED"] = "Y"; //$arFields["CLOSEDATE"] = $arOrder["DATE_UPDATE"]; } else { $arFields["CLOSED"] = "N"; //$arFields["CLOSEDATE"] = false; } break; case 'CANCELED': if ($arProp["VALUE"] == 'true') { if (array_key_exists("LOSE", $arStageList)) { $arFields["STAGE_ID"] = "LOSE"; } $arFields["PROBABILITY"] = 0; } break; case 'ORDERPAID': if ($arProp["VALUE"] == 'true') { if (array_key_exists("WON", $arStageList)) { $arFields["STAGE_ID"] = "WON"; } $arFields["PROBABILITY"] = 100; } break; case 'ORDERSTATUS': //$arFields["CLOSED"] = "Y"; //$arFields["CLOSEDATE"] = $arOrder["DATE_UPDATE"]; break; } } } $arFields["ADDITIONAL_INFO"] = serialize($arAdditionalInfo); $accountNumber = isset($arOrder["ACCOUNT_NUMBER"]) && $arOrder["ACCOUNT_NUMBER"] !== '' ? $arOrder["ACCOUNT_NUMBER"] : $arOrder["ID"]; $obj = new CCrmDeal(false); if ($dealId == 0) { $arFields['TITLE'] = sprintf("%s #%s", $this->arExternalSale["PREFIX"], $accountNumber); $arFields['OPENED'] = $this->arExternalSale["PUBLIC"]; $arFields["TYPE_ID"] = 'SALE'; $arFields["CLOSEDATE"] = ConvertTimeStamp(time() + CTimeZone::GetOffset() + 86400, "FULL"); if (!isset($arFields["PROBABILITY"])) { $arFields["PROBABILITY"] = $this->arExternalSale["PROBABILITY"]; } $assignedById = $this->arExternalSale["RESPONSIBLE"]; if ($assignedById > 0) { $arFields["ASSIGNED_BY_ID"] = $assignedById; } $res = $obj->Add($arFields, true, array('DISABLE_USER_FIELD_CHECK' => true)); if ($res > 0) { $dealId = (int) $res; $this->arImportResult->numberOfCreatedDeals++; } } else { if ($dealTitle === 'Deal') { $arFields['TITLE'] = sprintf("%s #%s", $this->arExternalSale["PREFIX"], $accountNumber); } // Disable properties change events generation ($bCompare = false) and user fields check 'DISABLE_USER_FIELD_CHECK' = true. $res = $obj->Update($dealId, $arFields, false, true, array('DISABLE_USER_FIELD_CHECK' => true)); if ($res) { $this->arImportResult->numberOfUpdatedDeals++; } } if (!$res) { if (($ex = $GLOBALS["APPLICATION"]->GetException()) !== false) { $this->AddError($ex->GetID(), $ex->GetString()); } else { $this->AddError("CDA", "Deal creation error"); } if (!empty($obj->LAST_ERROR)) { $this->AddError("CDA", $obj->LAST_ERROR); } return false; } return array($dealId, $newDeal); }
$currentUserID = $arResult['CURRENT_USER_ID']; $currentUserName = CCrmViewHelper::GetFormattedUserName($currentUserID, $arParams['NAME_TEMPLATE']); $arResult['FILTER_PRESETS'] = array('filter_my' => array('name' => GetMessage('CRM_PRESET_MY'), 'fields' => array('ASSIGNED_BY_ID_name' => $currentUserName, 'ASSIGNED_BY_ID' => $currentUserID)), 'filter_change_my' => array('name' => GetMessage('CRM_PRESET_CHANGE_MY'), 'fields' => array('MODIFY_BY_ID_name' => $currentUserName, 'MODIFY_BY_ID' => $currentUserID))); } // Headers initialization --> $arResult['HEADERS'] = array(array('id' => 'ID', 'name' => GetMessage('CRM_COLUMN_ID'), 'sort' => 'id', 'default' => false, 'editable' => false, 'type' => 'int', 'class' => 'minimal'), array('id' => 'CONTACT_SUMMARY', 'name' => GetMessage('CRM_COLUMN_CONTACT'), 'sort' => 'full_name', 'default' => true, 'editable' => false)); // Dont display activities in INTERNAL mode. if (!$bInternal) { $arResult['HEADERS'][] = array('id' => 'ACTIVITY_ID', 'name' => GetMessage('CRM_COLUMN_ACTIVITY'), 'sort' => 'nearest_activity', 'default' => true); } $arResult['HEADERS'] = array_merge($arResult['HEADERS'], array(array('id' => 'CONTACT_COMPANY', 'name' => GetMessage('CRM_COLUMN_CONTACT_COMPANY_INFO'), 'sort' => 'company_title', 'default' => true, 'editable' => false), array('id' => 'PHOTO', 'name' => GetMessage('CRM_COLUMN_PHOTO'), 'sort' => false, 'default' => false, 'editable' => false), array('id' => 'NAME', 'name' => GetMessage('CRM_COLUMN_NAME'), 'sort' => 'name', 'default' => false, 'editable' => true, 'class' => 'username'), array('id' => 'LAST_NAME', 'name' => GetMessage('CRM_COLUMN_LAST_NAME'), 'sort' => 'last_name', 'default' => false, 'editable' => true, 'class' => 'username'), array('id' => 'SECOND_NAME', 'name' => GetMessage('CRM_COLUMN_SECOND_NAME'), 'sort' => 'second_name', 'default' => false, 'editable' => true, 'class' => 'username'), array('id' => 'BIRTHDATE', 'name' => GetMessage('CRM_COLUMN_BIRTHDATE'), 'sort' => 'BIRTHDATE', 'default' => false, 'editable' => true, 'type' => 'date'), array('id' => 'POST', 'name' => GetMessage('CRM_COLUMN_POST'), 'sort' => 'post', 'default' => false, 'editable' => true), array('id' => 'COMPANY_ID', 'name' => GetMessage('CRM_COLUMN_COMPANY_ID'), 'sort' => 'company_title', 'default' => false, 'editable' => false), array('id' => 'TYPE_ID', 'name' => GetMessage('CRM_COLUMN_TYPE'), 'sort' => 'type_id', 'default' => false, 'editable' => array('items' => CCrmStatus::GetStatusList('CONTACT_TYPE')), 'type' => 'list'))); $CCrmFieldMulti->PrepareListHeaders($arResult['HEADERS']); if ($isInExportMode) { $CCrmFieldMulti->ListAddHeaders($arResult['HEADERS']); } $arResult['HEADERS'] = array_merge($arResult['HEADERS'], array(array('id' => 'ASSIGNED_BY', 'name' => GetMessage('CRM_COLUMN_ASSIGNED_BY'), 'sort' => 'assigned_by', 'default' => true, 'editable' => false, 'class' => 'username'), array('id' => 'FULL_ADDRESS', 'name' => EntityAddress::getFullAddressLabel(), 'sort' => false, 'default' => false, 'editable' => false), array('id' => 'ADDRESS', 'name' => $addressLabels['ADDRESS'], 'sort' => 'address', 'default' => false, 'editable' => false), array('id' => 'ADDRESS_2', 'name' => $addressLabels['ADDRESS_2'], 'sort' => 'address_2', 'default' => false, 'editable' => false), array('id' => 'ADDRESS_CITY', 'name' => $addressLabels['CITY'], 'sort' => 'address_city', 'default' => false, 'editable' => false), array('id' => 'ADDRESS_REGION', 'name' => $addressLabels['REGION'], 'sort' => 'address_region', 'default' => false, 'editable' => false), array('id' => 'ADDRESS_PROVINCE', 'name' => $addressLabels['PROVINCE'], 'sort' => 'address_province', 'default' => false, 'editable' => false), array('id' => 'ADDRESS_POSTAL_CODE', 'name' => $addressLabels['POSTAL_CODE'], 'sort' => 'address_postal_code', 'default' => false, 'editable' => false), array('id' => 'ADDRESS_COUNTRY', 'name' => $addressLabels['COUNTRY'], 'sort' => 'address_country', 'default' => false, 'editable' => false), array('id' => 'COMMENTS', 'name' => GetMessage('CRM_COLUMN_COMMENTS'), 'sort' => false, 'default' => false, 'editable' => false), array('id' => 'SOURCE_ID', 'name' => GetMessage('CRM_COLUMN_SOURCE'), 'sort' => 'source_id', 'default' => false, 'editable' => array('items' => CCrmStatus::GetStatusList('SOURCE')), 'type' => 'list'), array('id' => 'SOURCE_DESCRIPTION', 'name' => GetMessage('CRM_COLUMN_SOURCE_DESCRIPTION'), 'sort' => false, 'default' => false, 'editable' => false), array('id' => 'EXPORT', 'name' => GetMessage('CRM_COLUMN_EXPORT'), 'type' => 'checkbox', 'default' => false, 'editable' => true), array('id' => 'CREATED_BY', 'name' => GetMessage('CRM_COLUMN_CREATED_BY'), 'sort' => 'created_by', 'default' => false, 'editable' => false, 'class' => 'username'), array('id' => 'DATE_CREATE', 'name' => GetMessage('CRM_COLUMN_DATE_CREATE'), 'sort' => 'date_create', 'default' => false, 'class' => 'date'), array('id' => 'MODIFY_BY', 'name' => GetMessage('CRM_COLUMN_MODIFY_BY'), 'sort' => 'modify_by', 'default' => false, 'editable' => false, 'class' => 'username'), array('id' => 'DATE_MODIFY', 'name' => GetMessage('CRM_COLUMN_DATE_MODIFY'), 'sort' => 'date_modify', 'default' => false, 'class' => 'date'))); $CCrmUserType->ListAddHeaders($arResult['HEADERS']); if (IsModuleInstalled('bizproc')) { $arBPData = CBPDocument::GetWorkflowTemplatesForDocumentType(array('crm', 'CCrmDocumentContact', 'CONTACT')); $arDocumentStates = CBPDocument::GetDocumentStates(array('crm', 'CCrmDocumentContact', 'CONTACT'), null); foreach ($arBPData as $arBP) { if (!CBPDocument::CanUserOperateDocumentType(CBPCanUserOperateOperation::StartWorkflow, $userID, array('crm', 'CCrmDocumentContact', 'CONTACT'), array('UserGroups' => $CCrmBizProc->arCurrentUserGroups, 'DocumentStates' => $arDocumentStates, 'WorkflowTemplateId' => $arBP['ID'], 'UserIsAdmin' => $isAdmin, 'CRMPermission' => $arResult['PERMS']['READ']))) { continue; } $arResult['HEADERS'][] = array('id' => 'BIZPROC_' . $arBP['ID'], 'name' => $arBP['NAME'], 'sort' => false, 'default' => false, 'editable' => false); } } unset($arHeader); // <-- Headers initialization // Try to extract user action data --> // We have to extract them before call of CGridOptions::GetFilter() overvise the custom filter will be corrupted.
protected static function GetSourceList() { $ar = CCrmStatus::GetStatusListEx('SOURCE'); $CXMLCreatorR = new CXMLCreator('CHOISES'); foreach ($ar as $key => $value) { $CXMLCreator = new CXMLCreator('CHOISE', true); $CXMLCreator->setAttribute('id', $key); $CXMLCreator->setData($value); $CXMLCreatorR->addChild($CXMLCreator); } return $CXMLCreatorR; }
} return; } else { ShowError(GetMessage('CRM_DELETE_ERROR')); return; } } $arResult['BACK_URL'] = !empty($arResult['QUOTE_REFERER']) ? $arResult['QUOTE_REFERER'] : $arParams['PATH_TO_QUOTE_LIST']; $arResult['STATUS_LIST'] = array(); $arResult['~STATUS_LIST'] = CCrmStatus::GetStatusList('QUOTE_STATUS'); foreach ($arResult['~STATUS_LIST'] as $sStatusId => $sStatusTitle) { if ($CCrmQuote->cPerms->GetPermType('QUOTE', $bEdit ? 'WRITE' : 'ADD', array('STATUS_ID' . $sStatusId)) > BX_CRM_PERM_NONE) { $arResult['STATUS_LIST'][$sStatusId] = $sStatusTitle; } } $arResult['TYPE_LIST'] = CCrmStatus::GetStatusList('QUOTE_TYPE'); $arResult['CURRENCY_LIST'] = CCrmCurrencyHelper::PrepareListItems(); $arResult['EDIT'] = $bEdit; $arResult['FIELDS'] = array(); $arResult['FIELDS']['tab_1'][] = array('id' => 'section_quote_info', 'name' => GetMessage('CRM_SECTION_QUOTE_INFO'), 'type' => 'section'); $quoteNumberField = array('id' => 'QUOTE_NUMBER', 'name' => GetMessage('CRM_QUOTE_FIELD_QUOTE_NUMBER'), 'params' => array('size' => 100), 'value' => isset($arResult['ELEMENT']['~QUOTE_NUMBER']) ? $arResult['ELEMENT']['~QUOTE_NUMBER'] : '', 'type' => 'text', 'visible' => $bEdit); $arResult['FIELDS']['tab_1'][] = $quoteNumberField; $arResult['FIELDS']['tab_1'][] = array('id' => 'TITLE', 'name' => GetMessage('CRM_QUOTE_FIELD_TITLE_QUOTE'), 'params' => array('size' => 50), 'value' => isset($arResult['ELEMENT']['~TITLE']) ? $arResult['ELEMENT']['~TITLE'] : '', 'type' => 'text'); $arResult['FIELDS']['tab_1'][] = array('id' => 'STATUS_ID', 'name' => GetMessage('CRM_QUOTE_FIELD_STATUS_ID'), 'items' => $arResult['STATUS_LIST'], 'params' => array('sale_order_marker' => 'Y'), 'type' => 'list', 'value' => isset($arResult['ELEMENT']['STATUS_ID']) ? $arResult['ELEMENT']['STATUS_ID'] : ''); $currencyID = CCrmCurrency::GetBaseCurrencyID(); if (isset($arResult['ELEMENT']['CURRENCY_ID']) && $arResult['ELEMENT']['CURRENCY_ID'] !== '') { $currencyID = $arResult['ELEMENT']['CURRENCY_ID']; } $arResult['FIELDS']['tab_1'][] = array('id' => 'CURRENCY_ID', 'name' => GetMessage('CRM_QUOTE_FIELD_CURRENCY_ID'), 'type' => 'list', 'params' => array('sale_order_marker' => 'Y'), 'items' => $arResult['CURRENCY_LIST'], 'value' => $currencyID); $arResult['FIELDS']['tab_1'][] = array('id' => 'OPPORTUNITY', 'name' => GetMessage('CRM_QUOTE_FIELD_OPPORTUNITY'), 'params' => array('size' => 21, 'sale_order_marker' => 'Y'), 'value' => isset($arResult['ELEMENT']['OPPORTUNITY']) ? $arResult['ELEMENT']['OPPORTUNITY'] : '', 'type' => 'text'); $arResult['RESPONSIBLE_SELECTOR_PARAMS'] = array('NAME' => 'crm_quote_edit_resonsible', 'INPUT_NAME' => 'ASSIGNED_BY_ID', 'SEARCH_INPUT_NAME' => 'ASSIGNED_BY_NAME', 'NAME_TEMPLATE' => $arParams['NAME_TEMPLATE']);
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')); } $rsDeals = CCrmDeal::GetListEx(array('ID' => 'ASC'), array("CHECK_PERMISSIONS" => "N"), false, false, array('ID', 'PRODUCT_ID', 'OPPORTUNITY', 'CURRENCY_ID')); while ($arDeal = $rsDeals->Fetch()) { $ID = isset($arDeal['ID']) ? intval($arDeal['ID']) : 0; if ($ID <= 0) { continue; } $productID = isset($arDeal['PRODUCT_ID']) ? $arDeal['PRODUCT_ID'] : ''; if (isset($productID[0])) { $arProductRows = CCrmDeal::LoadProductRows($ID); if (count($arProductRows) > 0) { // Already converted continue;
} echo "\n"; foreach ($arResult['HEADERS'] as $arField) { echo isset($arDemo[$arField['id']]) ? '"' . str_replace('"', '""', $arDemo[$arField['id']]) . '";' : '"";'; } echo "\n"; die; } else { if (isset($_REQUEST['import']) && isset($_SESSION['CRM_IMPORT_FILE'])) { $APPLICATION->RestartBuffer(); global $USER_FIELD_MANAGER; $CCrmFieldMulti = new CCrmFieldMulti(); $CCrmUserType = new CCrmUserType($USER_FIELD_MANAGER, CCrmLead::$sUFEntityID); require_once $_SERVER['DOCUMENT_ROOT'] . BX_ROOT . '/modules/main/classes/general/csv_data.php'; $arStatus['STATUS_LIST'] = CCrmStatus::GetStatusListEx('STATUS'); $arStatus['SOURCE_LIST'] = CCrmStatus::GetStatusListEx('SOURCE'); $arStatus['OPENED_LIST'] = array('Y' => GetMessage('MAIN_YES'), 'N' => GetMessage('MAIN_NO')); $csvFile = new CCSVData(); $csvFile->LoadFile($_SESSION['CRM_IMPORT_FILE']); $csvFile->SetFieldsType('R'); $csvFile->SetPos($_SESSION['CRM_IMPORT_FILE_POS']); $csvFile->SetFirstHeader($_SESSION['CRM_IMPORT_FILE_FIRST_HEADER']); $csvFile->SetDelimiter($_SESSION['CRM_IMPORT_FILE_SEPORATOR']); $arResult = array(); $arResult['import'] = 0; $arResult['duplicate'] = 0; $arResult['duplicate_url'] = ''; $arResult['error'] = 0; $arResult['error_data'] = array(); $arResult['errata_url'] = ''; $CCrmLead = new CCrmLead();
while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $arResult['PREFIX'] == 'Y' ? 'D_' . $arRes['ID'] : $arRes['ID']; if (isset($arResult['SELECTED'][$arRes['SID']])) { unset($arResult['SELECTED'][$arRes['SID']]); $sSelected = 'Y'; } else { $sSelected = 'N'; } $clientTitle = !empty($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : ''; $clientTitle .= ($clientTitle !== '' && !empty($arRes['CONTACT_FULL_NAME']) ? ', ' : '') . $arRes['CONTACT_FULL_NAME']; $ar[] = array('title' => str_replace(array(';', ','), ' ', $arRes['TITLE']), 'desc' => $clientTitle, 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $arRes['ID'])), 'type' => 'deal', 'selected' => $sSelected); } $arResult['ELEMENT'] = array_merge($ar, $arResult['ELEMENT']); } if ($arSettings['QUOTE'] == 'Y' && isset($arSelected['QUOTE']) && !empty($arSelected['QUOTE'])) { $arQuoteStageList = CCrmStatus::GetStatusListEx('QUOTE_STAGE'); $arSelect = array('ID', 'TITLE', 'STAGE_ID', 'COMPANY_TITLE', 'CONTACT_FULL_NAME'); $ar = array(); $obRes = CCrmQuote::GetList(array('ID' => 'DESC'), array('ID' => $arSelected['QUOTE']), false, false, $arSelect); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $arResult['PREFIX'] == 'Y' ? 'D_' . $arRes['ID'] : $arRes['ID']; if (isset($arResult['SELECTED'][$arRes['SID']])) { unset($arResult['SELECTED'][$arRes['SID']]); $sSelected = 'Y'; } else { $sSelected = 'N'; } $clientTitle = !empty($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : ''; $clientTitle .= ($clientTitle !== '' && !empty($arRes['CONTACT_FULL_NAME']) ? ', ' : '') . $arRes['CONTACT_FULL_NAME']; $ar[] = array('title' => str_replace(array(';', ','), ' ', $arRes['TITLE']), 'desc' => $clientTitle, 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_show'), array('quote_id' => $arRes['ID'])), 'type' => 'quote', 'selected' => $sSelected); }
$uid = 'mobile_crm_lead_edit'; } $arResult['UID'] = $arParams['UID'] = $uid; $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::GetStatusList('STATUS'); $arResult['SOURCE_LIST'] = CCrmStatus::GetStatusList('SOURCE'); $arFields = null; if ($entityID <= 0) { $arResult['MODE'] = 'CREATE'; $arFields = array('~CURRENCY_ID' => CCrmCurrency::GetBaseCurrencyID(), 'CURRENCY_ID' => htmlspecialcharsbx(CCrmCurrency::GetBaseCurrencyID()), 'FM' => array()); if ($arResult['USER_ID'] > 0) { $dbUser = CUser::GetList($by = 'id', $order = 'asc', array('ID' => $arResult['USER_ID']), array('FIELDS' => array('ID', 'LOGIN', 'EMAIL', 'NAME', 'LAST_NAME', 'SECOND_NAME'))); $user = $dbUser->Fetch(); if ($user) { $arFields['~ASSIGNED_BY_ID'] = $arResult['USER_ID']; $arFields['~ASSIGNED_BY_LOGIN'] = $user['LOGIN']; $arFields['~ASSIGNED_BY_NAME'] = $user['NAME']; $arFields['~ASSIGNED_BY_LAST_NAME'] = $user['LAST_NAME']; $arFields['~ASSIGNED_BY_SECOND_NAME'] = $user['SECOND_NAME']; } }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } CModule::IncludeModule('crm'); $ar = CCrmStatus::GetStatusList($arParams['arUserField']['SETTINGS']['ENTITY_TYPE']); $first = true; foreach ($arResult["VALUE"] as $res) { if (!$first) { ?> <span class="fields separator"></span><?php } else { $first = false; } ?> <span class="fields crm_status"><?php echo isset($ar[$res]) ? htmlspecialcharsbx($ar[$res]) : ''; ?> </span><?php }
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule('crm')) { return; } $arParameters = array('PARAMETERS' => array(), 'USER_PARAMETERS' => array('TYPE_ID' => array('NAME' => GetMessage('GD_CRM_COLUMN_COMPANY_TYPE'), 'TYPE' => 'LIST', 'VALUES' => array('' => '') + CCrmStatus::GetStatusListEx('COMPANY_TYPE'), 'MULTIPLE' => 'Y', 'DEFAULT' => array()), 'ONLY_MY' => array('NAME' => GetMessage('GD_CRM_ONLY_MY'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N'), 'SORT' => array('NAME' => GetMessage('GD_CRM_SORT'), 'TYPE' => 'LIST', 'VALUES' => array('DATE_CREATE' => GetMessage('GD_CRM_COLUMN_DATE_CREATE'), 'DATE_MODIFY' => GetMessage('GD_CRM_COLUMN_DATE_MODIFY'), 'STAGE_ID' => GetMessage('GD_CRM_COLUMN_COMPANY_TYPE')), 'DEFAULT' => 'DATE_CREATE'), 'SORT_BY' => array('NAME' => GetMessage('GD_CRM_SORT_BY'), 'TYPE' => 'LIST', 'VALUES' => array('ASC' => GetMessage('GD_CRM_SORT_ASC'), 'DESC' => GetMessage('GD_CRM_SORT_DESC')), 'DEFAULT' => 'DESC'), 'COMPANY_COUNT' => array('NAME' => GetMessage('GD_CRM_COMPANY_LIST_COMPANY_COUNT'), 'TYPE' => 'STRING', 'DEFAULT' => 5)));
public static function PreparePopupItems($entityTypeNames, $addPrefix = true, $nameFormat = '', $count = 50) { if (!is_array($entityTypeNames)) { $entityTypeNames = array(strval($entityTypeNames)); } $addPrefix = (bool) $addPrefix; $count = intval($count); if ($count <= 0) { $count = 50; } $arItems = array(); $i = 0; foreach ($entityTypeNames as $typeName) { $typeName = strtoupper(strval($typeName)); if ($typeName === 'CONTACT') { $contactTypes = CCrmStatus::GetStatusList('CONTACT_TYPE'); $contactIndex = array(); $obRes = CCrmContact::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'COMPANY_TITLE', 'PHOTO', 'TYPE_ID')); while ($arRes = $obRes->Fetch()) { $arImg = array(); if (!empty($arRes['PHOTO']) && !isset($arFiles[$arRes['PHOTO']])) { if (intval($arRes['PHOTO']) > 0) { $arImg = CFile::ResizeImageGet($arRes['PHOTO'], array('width' => 25, 'height' => 25), BX_RESIZE_IMAGE_EXACT); } } $arRes['SID'] = $addPrefix ? 'C_' . $arRes['ID'] : $arRes['ID']; // advanced info $advancedInfo = array(); if (isset($arRes['TYPE_ID']) && $arRes['TYPE_ID'] != '' && isset($contactTypes[$arRes['TYPE_ID']])) { $advancedInfo['contactType'] = array('id' => $arRes['TYPE_ID'], 'name' => $contactTypes[$arRes['TYPE_ID']]); } $arItems[$i] = array('title' => CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($arRes['HONORIFIC']) ? $arRes['HONORIFIC'] : '', 'NAME' => isset($arRes['NAME']) ? $arRes['NAME'] : '', 'SECOND_NAME' => isset($arRes['SECOND_NAME']) ? $arRes['SECOND_NAME'] : '', 'LAST_NAME' => isset($arRes['LAST_NAME']) ? $arRes['LAST_NAME'] : ''), $nameFormat), 'desc' => empty($arRes['COMPANY_TITLE']) ? "" : $arRes['COMPANY_TITLE'], 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_show'), array('contact_id' => $arRes['ID'])), 'image' => $arImg['src'], 'type' => 'contact', 'selected' => 'N'); if (!empty($advancedInfo)) { $arItems[$i]['advancedInfo'] = $advancedInfo; } unset($advancedInfo); $contactIndex[$arRes['ID']] =& $arItems[$i]; $i++; } // advanced info - phone number, e-mail $obRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'CONTACT', 'ELEMENT_ID' => array_keys($contactIndex))); while ($arRes = $obRes->Fetch()) { if (isset($contactIndex[$arRes['ELEMENT_ID']]) && ($arRes['TYPE_ID'] === 'PHONE' || $arRes['TYPE_ID'] === 'EMAIL')) { $item =& $contactIndex[$arRes['ELEMENT_ID']]; if (!is_array($item['advancedInfo'])) { $item['advancedInfo'] = array(); } if (!is_array($item['advancedInfo']['multiFields'])) { $item['advancedInfo']['multiFields'] = array(); } $item['advancedInfo']['multiFields'][] = array('ID' => $arRes['ID'], 'TYPE_ID' => $arRes['TYPE_ID'], 'VALUE_TYPE' => $arRes['VALUE_TYPE'], 'VALUE' => $arRes['VALUE']); unset($item); } } unset($contactIndex); } elseif ($typeName === 'COMPANY') { $companyIndex = array(); $arCompanyTypeList = CCrmStatus::GetStatusListEx('COMPANY_TYPE'); $arCompanyIndustryList = CCrmStatus::GetStatusListEx('INDUSTRY'); $obRes = CCrmCompany::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO')); $arFiles = array(); while ($arRes = $obRes->Fetch()) { $arImg = array(); if (!empty($arRes['LOGO']) && !isset($arFiles[$arRes['LOGO']])) { if (intval($arRes['LOGO']) > 0) { $arImg = CFile::ResizeImageGet($arRes['LOGO'], array('width' => 25, 'height' => 25), BX_RESIZE_IMAGE_EXACT); } $arFiles[$arRes['LOGO']] = $arImg['src']; } $arRes['SID'] = $addPrefix ? 'CO_' . $arRes['ID'] : $arRes['ID']; $arDesc = array(); if (isset($arCompanyTypeList[$arRes['COMPANY_TYPE']])) { $arDesc[] = $arCompanyTypeList[$arRes['COMPANY_TYPE']]; } if (isset($arCompanyIndustryList[$arRes['INDUSTRY']])) { $arDesc[] = $arCompanyIndustryList[$arRes['INDUSTRY']]; } $arItems[$i] = array('title' => str_replace(array(';', ','), ' ', $arRes['TITLE']), 'desc' => implode(', ', $arDesc), 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_show'), array('company_id' => $arRes['ID'])), 'image' => $arImg['src'], 'type' => 'company', 'selected' => 'N'); $companyIndex[$arRes['ID']] =& $arItems[$i]; $i++; } // advanced info - phone number, e-mail $obRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => array_keys($companyIndex))); while ($arRes = $obRes->Fetch()) { if (isset($companyIndex[$arRes['ELEMENT_ID']]) && ($arRes['TYPE_ID'] === 'PHONE' || $arRes['TYPE_ID'] === 'EMAIL')) { $item =& $companyIndex[$arRes['ELEMENT_ID']]; if (!is_array($item['advancedInfo'])) { $item['advancedInfo'] = array(); } if (!is_array($item['advancedInfo']['multiFields'])) { $item['advancedInfo']['multiFields'] = array(); } $item['advancedInfo']['multiFields'][] = array('ID' => $arRes['ID'], 'TYPE_ID' => $arRes['TYPE_ID'], 'VALUE_TYPE' => $arRes['VALUE_TYPE'], 'VALUE' => $arRes['VALUE']); unset($item); } } unset($companyIndex); } elseif ($typeName === 'LEAD') { $leadIndex = array(); $obRes = CCrmLead::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'TITLE', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'STATUS_ID')); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $addPrefix ? 'L_' . $arRes['ID'] : $arRes['ID']; $arItems[$i] = array('title' => isset($arRes['TITLE']) ? $arRes['TITLE'] : '', 'desc' => CCrmLead::PrepareFormattedName(array('HONORIFIC' => isset($arRes['HONORIFIC']) ? $arRes['HONORIFIC'] : '', 'NAME' => isset($arRes['NAME']) ? $arRes['NAME'] : '', 'SECOND_NAME' => isset($arRes['SECOND_NAME']) ? $arRes['SECOND_NAME'] : '', 'LAST_NAME' => isset($arRes['LAST_NAME']) ? $arRes['LAST_NAME'] : ''), $nameFormat), 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $arRes['ID'])), 'type' => 'lead', 'selected' => 'N'); $leadIndex[$arRes['ID']] =& $arItems[$i]; $i++; } // advanced info - phone number, e-mail $obRes = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'LEAD', 'ELEMENT_ID' => array_keys($leadIndex))); while ($arRes = $obRes->Fetch()) { if (isset($leadIndex[$arRes['ELEMENT_ID']]) && ($arRes['TYPE_ID'] === 'PHONE' || $arRes['TYPE_ID'] === 'EMAIL')) { $item =& $leadIndex[$arRes['ELEMENT_ID']]; if (!is_array($item['advancedInfo'])) { $item['advancedInfo'] = array(); } if (!is_array($item['advancedInfo']['multiFields'])) { $item['advancedInfo']['multiFields'] = array(); } $item['advancedInfo']['multiFields'][] = array('ID' => $arRes['ID'], 'TYPE_ID' => $arRes['TYPE_ID'], 'VALUE_TYPE' => $arRes['VALUE_TYPE'], 'VALUE' => $arRes['VALUE']); unset($item); } } unset($leadIndex); } elseif ($typeName === 'DEAL') { $obRes = CCrmDeal::GetListEx(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'TITLE', 'STAGE_ID', 'COMPANY_TITLE', 'CONTACT_FULL_NAME')); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $addPrefix ? 'D_' . $arRes['ID'] : $arRes['ID']; $clientTitle = !empty($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : ''; $clientTitle .= ($clientTitle !== '' && !empty($arRes['CONTACT_FULL_NAME']) ? ', ' : '') . $arRes['CONTACT_FULL_NAME']; $arItems[] = array('title' => isset($arRes['TITLE']) ? str_replace(array(';', ','), ' ', $arRes['TITLE']) : '', 'desc' => $clientTitle, 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $arRes['ID'])), 'type' => 'deal', 'selected' => 'N'); } } elseif ($typeName === 'QUOTE') { $obRes = CCrmQuote::GetList(array('ID' => 'DESC'), array(), false, array('nTopCount' => $count), array('ID', 'QUOTE_NUMBER', 'TITLE', 'COMPANY_TITLE', 'CONTACT_FULL_NAME')); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $addPrefix ? CCrmQuote::OWNER_TYPE . '_' . $arRes['ID'] : $arRes['ID']; $clientTitle = !empty($arRes['COMPANY_TITLE']) ? $arRes['COMPANY_TITLE'] : ''; $clientTitle .= ($clientTitle !== '' && !empty($arRes['CONTACT_FULL_NAME']) ? ', ' : '') . $arRes['CONTACT_FULL_NAME']; $quoteTitle = empty($arRes['TITLE']) ? $arRes['QUOTE_NUMBER'] : $arRes['QUOTE_NUMBER'] . ' - ' . $arRes['TITLE']; $arItems[] = array('title' => empty($quoteTitle) ? '' : str_replace(array(';', ','), ' ', $quoteTitle), 'desc' => $clientTitle, 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_show'), array('quote_id' => $arRes['ID'])), 'type' => 'quote', 'selected' => 'N'); } } } unset($typeName); return $arItems; }
public static function GetFieldInputControlOptions($documentType, &$arFieldType, $jsFunctionName, &$value) { $result = ''; static $arDocumentFieldTypes = array(); if (!array_key_exists($documentType, $arDocumentFieldTypes)) { $arDocumentFieldTypes[$documentType] = self::GetDocumentFieldTypes($documentType); } if (!array_key_exists($arFieldType['Type'], $arDocumentFieldTypes[$documentType]) || !$arDocumentFieldTypes[$documentType][$arFieldType['Type']]['Complex']) { return ''; } if ($arFieldType['Type'] == 'UF:iblock_element' || $arFieldType['Type'] == 'UF:iblock_section') { if (is_array($value)) { reset($value); $valueTmp = intval(current($value)); } else { $valueTmp = intval($value); } $iblockId = 0; if ($valueTmp > 0) { $dbResult = CIBlockElement::GetList(array(), array($arFieldType['Type'] == 'UF:iblock_section' ? 'SECTION_ID' : 'ID' => $valueTmp), false, false, array('ID', 'IBLOCK_ID')); if ($arResult = $dbResult->Fetch()) { $iblockId = $arResult['IBLOCK_ID']; } } if ($iblockId <= 0 && intval($arFieldType['Options']) > 0) { $iblockId = intval($arFieldType['Options']); } $defaultIBlockId = 0; $result .= '<select id="WFSFormOptionsX" onchange="' . $jsFunctionName . '(this.options[this.selectedIndex].value)">'; $arIBlockType = CIBlockParameters::GetIBlockTypes(); foreach ($arIBlockType as $iblockTypeId => $iblockTypeName) { $result .= '<optgroup label="' . $iblockTypeName . '">'; $dbIBlock = CIBlock::GetList(array('SORT' => 'ASC'), array('TYPE' => $iblockTypeId, 'ACTIVE' => 'Y')); while ($arIBlock = $dbIBlock->GetNext()) { $result .= '<option value="' . $arIBlock['ID'] . '"' . ($arIBlock['ID'] == $iblockId ? ' selected="selected"' : '') . '>' . $arIBlock['NAME'] . '</option>'; if ($defaultIBlockId <= 0 || $arIBlock['ID'] == $iblockId) { $defaultIBlockId = $arIBlock['ID']; } } $result .= '</optgroup>'; } $result .= '</select><!--__defaultOptionsValue:' . $defaultIBlockId . '--><!--__modifyOptionsPromt:' . GetMessage('CRM_DOCUMENT_IBLOCK') . '-->'; $arFieldType['Options'] = $defaultIBlockId; } else { if ($arFieldType['Type'] == 'UF:crm_status') { $statusID = $arFieldType['Options']; $arEntityTypes = CCrmStatus::GetEntityTypes(); $default = 'STATUS'; $result .= '<select id="WFSFormOptionsX" onchange="' . $jsFunctionName . '(this.options[this.selectedIndex].value)">'; foreach ($arEntityTypes as $arEntityType) { $result .= '<option value="' . $arEntityType['ID'] . '"' . ($arEntityType['ID'] == $statusID ? ' selected="selected"' : '') . '>' . htmlspecialcharsbx($arEntityType['NAME']) . '</option>'; if ($arEntityType['ID'] == $statusID) { $default = $arEntityType['ID']; } } $result .= '</select><!--__defaultOptionsValue:' . $default . '--><!--__modifyOptionsPromt:' . GetMessage('CRM_DOCUMENT_CRM_STATUS') . '-->'; } else { if ($arFieldType['Type'] == 'UF:crm') { $arEntity = $arFieldType['Options']; if (empty($arEntity)) { $arEntity = array('LEAD' => 'Y', 'CONTACT' => 'Y', 'COMPANY' => 'Y', 'DEAL' => 'Y'); } $result .= '<input type="checkbox" id="WFSFormOptionsXL" name="ENITTY[]" value="LEAD" ' . ($arEntity['LEAD'] == 'Y' ? 'checked="checked"' : '') . '> ' . GetMessage('CRM_DOCUMENT_CRM_ENTITY_TYPE_LEAD') . ' <br/>'; $result .= '<input type="checkbox" id="WFSFormOptionsXC" name="ENITTY[]" value="CONTACT" ' . ($arEntity['CONTACT'] == 'Y' ? 'checked="checked"' : '') . '> ' . GetMessage('CRM_DOCUMENT_CRM_ENTITY_TYPE_CONTACT') . '<br/>'; $result .= '<input type="checkbox" id="WFSFormOptionsXCO" name="ENITTY[]" value="COMPANY" ' . ($arEntity['COMPANY'] == 'Y' ? 'checked="checked"' : '') . '> ' . GetMessage('CRM_DOCUMENT_CRM_ENTITY_TYPE_COMPANY') . '<br/>'; $result .= '<input type="checkbox" id="WFSFormOptionsXD" name="ENITTY[]" value="DEAL" ' . ($arEntity['DEAL'] == 'Y' ? 'checked="checked"' : '') . '> ' . GetMessage('CRM_DOCUMENT_CRM_ENTITY_TYPE_DEAL') . '<br/>'; $result .= '<input type="button" onclick="' . $jsFunctionName . '(WFSFormOptionsXCRM())" value="' . GetMessage('CRM_DOCUMENT_CRM_ENTITY_OK') . '" />'; $result .= '<script> function WFSFormOptionsXCRM() { var a = {}; a["LEAD"] = BX("WFSFormOptionsXL").checked ? "Y" : "N"; a["CONTACT"] = BX("WFSFormOptionsXC").checked ? "Y" : "N"; a["COMPANY"] = BX("WFSFormOptionsXCO").checked ? "Y" : "N"; a["DEAL"] = BX("WFSFormOptionsXD").checked ? "Y" : "N"; return a; } </script>'; $result .= '<!--__modifyOptionsPromt:' . GetMessage('CRM_DOCUMENT_CRM_ENTITY') . '-->'; } elseif ($arFieldType["Type"] == "select") { $valueTmp = $arFieldType["Options"]; if (!is_array($valueTmp)) { $valueTmp = array($valueTmp => $valueTmp); } $str = ''; foreach ($valueTmp as $k => $v) { if (is_array($v) && count($v) == 2) { $v1 = array_values($v); $k = $v1[0]; $v = $v1[1]; } if ($k != $v) { $str .= '[' . $k . ']' . $v; } else { $str .= $v; } $str .= "\n"; } $result .= '<textarea id="WFSFormOptionsX" rows="5" cols="30">' . htmlspecialcharsbx($str) . '</textarea><br />'; $result .= GetMessage("IBD_DOCUMENT_XFORMOPTIONS1") . '<br />'; $result .= GetMessage("IBD_DOCUMENT_XFORMOPTIONS2") . '<br />'; $result .= '<script type="text/javascript"> function WFSFormOptionsXFunction() { var result = {}; var i, id, val, str = document.getElementById("WFSFormOptionsX").value; var arr = str.split(/[\\r\\n]+/); var p, re = /\\[([^\\]]+)\\].+/; for (i in arr) { str = arr[i].replace(/^\\s+|\\s+$/g, \'\'); if (str.length > 0) { id = str.match(re); if (id) { p = str.indexOf(\']\'); id = id[1]; val = str.substr(p + 1); } else { val = str; id = val; } result[id] = val; } } return result; } </script>'; $result .= '<input type="button" onclick="' . htmlspecialcharsbx($jsFunctionName) . '(WFSFormOptionsXFunction())" value="' . GetMessage("IBD_DOCUMENT_XFORMOPTIONS3") . '">'; } } } return $result; }