} if ($arSettings['LEAD'] == 'Y' && isset($arSelected['LEAD']) && !empty($arSelected['LEAD'])) { $hasNameFormatter = method_exists("CCrmLead", "PrepareFormattedName"); $obRes = CCrmLead::GetListEx(array('ID' => 'DESC'), array('=ID' => $arSelected['LEAD']), false, false, $hasNameFormatter ? array('ID', 'TITLE', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME') : array('ID', 'TITLE', 'FULL_NAME')); $arFiles = array(); $ar = array(); while ($arRes = $obRes->Fetch()) { $arRes['SID'] = $arResult['PREFIX'] == 'Y' ? 'L_' . $arRes['ID'] : $arRes['ID']; if (isset($arResult['SELECTED'][$arRes['SID']])) { unset($arResult['SELECTED'][$arRes['SID']]); $sSelected = 'Y'; } else { $sSelected = 'N'; } if ($hasNameFormatter) { $description = 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'] : '')); } else { $description = isset($arRes['FULL_NAME']) ? $arRes['FULL_NAME'] : ''; } $ar[] = array('title' => str_replace(array(';', ','), ' ', $arRes['TITLE']), 'desc' => $description, 'id' => $arRes['SID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $arRes['ID'])), 'type' => 'lead', 'selected' => $sSelected); } $arResult['ELEMENT'] = array_merge($ar, $arResult['ELEMENT']); } if ($arSettings['CONTACT'] == 'Y' && isset($arSelected['CONTACT']) && !empty($arSelected['CONTACT'])) { $hasNameFormatter = method_exists("CCrmContact", "PrepareFormattedName"); $obRes = CCrmContact::GetListEx(array('ID' => 'DESC'), array('=ID' => $arSelected['CONTACT']), false, false, $hasNameFormatter ? array('ID', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'COMPANY_TITLE', 'PHOTO') : array('ID', 'FULL_NAME', 'COMPANY_TITLE', 'PHOTO')); $ar = array(); while ($arRes = $obRes->Fetch()) { $arImg = array(); if (!empty($arRes['PHOTO']) && !isset($arFiles[$arRes['PHOTO']])) { if (intval($arRes['PHOTO']) > 0) {
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 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 PrepareCommunicationInfo(&$arComm, $arFields = null) { if (!isset($arComm['ENTITY_SETTINGS'])) { if (!self::PrepareCommunicationSettings($arComm, $arFields)) { $arComm['TITLE'] = ''; $arComm['DESCRIPTION'] = ''; return false; } } $title = ''; $description = ''; $entityTypeID = isset($arComm['ENTITY_TYPE_ID']) ? intval($arComm['ENTITY_TYPE_ID']) : CCrmOwnerType::Undefined; if ($entityTypeID === CCrmOwnerType::Lead) { $honorific = ''; $name = ''; $secondName = ''; $lastName = ''; $leadTitle = ''; if (is_array($arComm['ENTITY_SETTINGS'])) { $settings = $arComm['ENTITY_SETTINGS']; $honorific = isset($settings['HONORIFIC']) ? $settings['HONORIFIC'] : ''; $name = isset($settings['NAME']) ? $settings['NAME'] : ''; $secondName = isset($settings['SECOND_NAME']) ? $settings['SECOND_NAME'] : ''; $lastName = isset($settings['LAST_NAME']) ? $settings['LAST_NAME'] : ''; $leadTitle = isset($settings['LEAD_TITLE']) ? $settings['LEAD_TITLE'] : ''; } else { $arEntity = CCrmLead::GetByID($arComm['ENTITY_ID']); if ($arEntity) { $honorific = isset($arEntity['HONORIFIC']) ? $arEntity['HONORIFIC'] : ''; $name = isset($arEntity['NAME']) ? $arEntity['NAME'] : ''; $secondName = isset($arEntity['SECOND_NAME']) ? $arEntity['SECOND_NAME'] : ''; $lastName = isset($arEntity['LAST_NAME']) ? $arEntity['LAST_NAME'] : ''; $leadTitle = isset($arEntity['TITLE']) ? $arEntity['TITLE'] : ''; } } if ($name === '' && $secondName === '' && $lastName === '') { $title = $leadTitle; //$description = ''; } else { $title = CCrmLead::PrepareFormattedName(array('HONORIFIC' => $honorific, 'NAME' => $name, 'SECOND_NAME' => $secondName, 'LAST_NAME' => $lastName)); $description = $leadTitle; } } elseif ($entityTypeID === CCrmOwnerType::Contact) { // Empty TYPE is person to person communiation, empty ENTITY_ID is unbound communication - no method to build title if (!($arComm['TYPE'] === '' && intval($arComm['ENTITY_ID']) === 0)) { $honorific = ''; $name = ''; $secondName = ''; $lastName = ''; $companyTitle = ''; if (is_array($arComm['ENTITY_SETTINGS'])) { $settings = $arComm['ENTITY_SETTINGS']; $honorific = isset($settings['HONORIFIC']) ? $settings['HONORIFIC'] : ''; $name = isset($settings['NAME']) ? $settings['NAME'] : ''; $secondName = isset($settings['SECOND_NAME']) ? $settings['SECOND_NAME'] : ''; $lastName = isset($settings['LAST_NAME']) ? $settings['LAST_NAME'] : ''; $companyTitle = isset($settings['COMPANY_TITLE']) ? $settings['COMPANY_TITLE'] : ''; } else { $arEntity = CCrmContact::GetByID($arComm['ENTITY_ID']); if ($arEntity) { $honorific = isset($arEntity['HONORIFIC']) ? $arEntity['HONORIFIC'] : ''; $name = isset($arEntity['NAME']) ? $arEntity['NAME'] : ''; $secondName = isset($arEntity['SECOND_NAME']) ? $arEntity['SECOND_NAME'] : ''; $lastName = isset($arEntity['LAST_NAME']) ? $arEntity['LAST_NAME'] : ''; $companyTitle = isset($arEntity['COMPANY_TITLE']) ? $arEntity['COMPANY_TITLE'] : ''; } } $title = CCrmContact::PrepareFormattedName(array('HONORIFIC' => $honorific, 'NAME' => $name, 'SECOND_NAME' => $secondName, 'LAST_NAME' => $lastName)); $description = $companyTitle; } } elseif ($entityTypeID === CCrmOwnerType::Company) { if (is_array($arComm['ENTITY_SETTINGS'])) { $settings = $arComm['ENTITY_SETTINGS']; $title = isset($settings['COMPANY_TITLE']) ? $settings['COMPANY_TITLE'] : ''; } else { $arEntity = CCrmCompany::GetByID($arComm['ENTITY_ID']); if ($arEntity) { $title = isset($arEntity['TITLE']) ? $arEntity['TITLE'] : ''; } } } $arComm['TITLE'] = $title; $arComm['DESCRIPTION'] = $description; return true; }
public static function findByPhoneNumber($number, $params = array()) { if (!is_string($number)) { throw new \Bitrix\Main\ArgumentTypeException('number', 'string'); } if ($number === '') { throw new \Bitrix\Main\ArgumentException('Is empty', 'number'); } if (!is_array($params)) { $params = array(); } $userID = isset($params['USER_ID']) ? intval($params['USER_ID']) : 0; if ($userID <= 0) { $userID = CCrmPerms::GetCurrentUserID(); } $isAdmin = CCrmPerms::IsAdmin($userID); $userPermissions = CCrmPerms::GetUserPermissions($userID); $enableExtendedMode = isset($params['ENABLE_EXTENDED_MODE']) ? (bool) $params['ENABLE_EXTENDED_MODE'] : true; $contactFormID = isset($params['CONTACT_FORM_ID']) ? intval($params['CONTACT_FORM_ID']) : ''; if ($contactFormID === '') { $contactFormID = CCrmContact::DEFAULT_FORM_ID; } $dups = array(); $criterion = new \Bitrix\Crm\Integrity\DuplicateCommunicationCriterion('PHONE', $number); $entityTypes = array(CCrmOwnerType::Contact, CCrmOwnerType::Company, CCrmOwnerType::Lead); foreach ($entityTypes as $entityType) { $duplicate = $criterion->find($entityType, 1); if ($duplicate !== null) { $dups[] = $duplicate; } } $entityByType = array(); foreach ($dups as &$dup) { /** @var \Bitrix\Crm\Integrity\Duplicate $dup */ $entities = $dup->getEntities(); if (!(is_array($entities) && !empty($entities))) { continue; } //Each entity type limited by 50 items foreach ($entities as &$entity) { /** @var \Bitrix\Crm\Integrity\DuplicateEntity $entity */ $entityTypeID = $entity->getEntityTypeID(); $entityID = $entity->getEntityID(); $fields = null; if ($entityTypeID === CCrmOwnerType::Contact) { $dbEntity = CCrmContact::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'PHOTO', 'POST', 'COMPANY_ID', 'COMPANY_TITLE', 'ASSIGNED_BY_ID')); $entityFields = is_object($dbEntity) ? $dbEntity->Fetch() : null; if (is_array($entityFields)) { $formattedName = CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($entityFields['HONORIFIC']) ? $entityFields['HONORIFIC'] : '', 'NAME' => isset($entityFields['NAME']) ? $entityFields['NAME'] : '', 'SECOND_NAME' => isset($entityFields['SECOND_NAME']) ? $entityFields['SECOND_NAME'] : '', 'LAST_NAME' => isset($entityFields['LAST_NAME']) ? $entityFields['LAST_NAME'] : '')); $fields = array('ID' => intval($entityFields['ID']), 'FORMATTED_NAME' => $formattedName, 'PHOTO' => isset($entityFields['PHOTO']) ? intval($entityFields['PHOTO']) : 0, 'COMPANY_ID' => isset($entityFields['COMPANY_ID']) ? intval($entityFields['COMPANY_ID']) : 0, 'COMPANY_TITLE' => isset($entityFields['COMPANY_TITLE']) ? $entityFields['COMPANY_TITLE'] : '', 'POST' => isset($entityFields['POST']) ? $entityFields['POST'] : '', 'ASSIGNED_BY_ID' => isset($entityFields['ASSIGNED_BY_ID']) ? intval($entityFields['ASSIGNED_BY_ID']) : 0, 'CAN_READ' => CCrmContact::CheckReadPermission($entityID, $userPermissions)); if ($fields['CAN_READ'] && $enableExtendedMode) { $deals = array(); $dbDeal = CCrmDeal::GetListEx(array('BEGINDATE' => 'ASC'), array('=CONTACT_ID' => $entityID, 'CLOSED' => 'N', 'CHECK_PERMISSIONS' => $isAdmin ? 'N' : 'Y'), false, array('nTopCount' => 2), array('ID', 'TITLE', 'STAGE_ID'), array('PERMS' => $userPermissions)); if (is_object($dbDeal)) { while ($dealFields = $dbDeal->Fetch()) { $dealID = intval($dealFields['ID']); //$dealFields['CAN_READ'] = CCrmDeal::CheckReadPermission($dealID, $userPermissions); $dealFields['SHOW_URL'] = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Deal, $dealID); $deals[] = $dealFields; } } $fields['DEALS'] =& $deals; unset($deals); } } } elseif ($entityTypeID === CCrmOwnerType::Company) { $dbEntity = CCrmCompany::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'TITLE', 'LOGO', 'ASSIGNED_BY_ID')); $entityFields = is_object($dbEntity) ? $dbEntity->Fetch() : null; if (is_array($entityFields)) { $fields = array('ID' => intval($entityFields['ID']), 'TITLE' => isset($entityFields['TITLE']) ? $entityFields['TITLE'] : '', 'LOGO' => isset($entityFields['LOGO']) ? intval($entityFields['LOGO']) : 0, 'ASSIGNED_BY_ID' => isset($entityFields['ASSIGNED_BY_ID']) ? intval($entityFields['ASSIGNED_BY_ID']) : 0, 'CAN_READ' => CCrmCompany::CheckReadPermission($entityID, $userPermissions)); if ($fields['CAN_READ'] && $enableExtendedMode) { $deals = array(); $dbDeal = CCrmDeal::GetListEx(array('BEGINDATE' => 'ASC'), array('=COMPANY_ID' => $entityID, 'CLOSED' => 'N', 'CHECK_PERMISSIONS' => $isAdmin ? 'N' : 'Y'), false, array('nTopCount' => 2), array('ID', 'TITLE', 'STAGE_ID'), array('PERMS' => $userPermissions)); if (is_object($dbDeal)) { while ($dealFields = $dbDeal->Fetch()) { $dealID = intval($dealFields['ID']); //$dealFields['CAN_READ'] = CCrmDeal::CheckReadPermission($dealID, $userPermissions); $dealFields['SHOW_URL'] = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Deal, $dealID); $deals[] = $dealFields; } } $fields['DEALS'] =& $deals; unset($deals); } } } elseif ($entityTypeID === CCrmOwnerType::Lead) { $dbEntity = CCrmLead::GetListEx(array(), array('=ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'TITLE', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'POST', 'COMPANY_TITLE', 'ASSIGNED_BY_ID')); $entityFields = is_object($dbEntity) ? $dbEntity->Fetch() : null; if (is_array($entityFields)) { $formattedName = ''; if (!empty($entityFields['NAME']) || !empty($entityFields['SECOND_NAME']) || !empty($entityFields['LAST_NAME'])) { $formattedName = CCrmLead::PrepareFormattedName(array('HONORIFIC' => isset($entityFields['HONORIFIC']) ? $entityFields['HONORIFIC'] : '', 'NAME' => isset($entityFields['NAME']) ? $entityFields['NAME'] : '', 'SECOND_NAME' => isset($entityFields['SECOND_NAME']) ? $entityFields['SECOND_NAME'] : '', 'LAST_NAME' => isset($entityFields['LAST_NAME']) ? $entityFields['LAST_NAME'] : '')); } $fields = array('ID' => intval($entityFields['ID']), 'TITLE' => isset($entityFields['TITLE']) ? $entityFields['TITLE'] : '', 'FORMATTED_NAME' => $formattedName, 'COMPANY_TITLE' => isset($entityFields['COMPANY_TITLE']) ? $entityFields['COMPANY_TITLE'] : '', 'POST' => isset($entityFields['POST']) ? $entityFields['POST'] : '', 'ASSIGNED_BY_ID' => isset($entityFields['ASSIGNED_BY_ID']) ? intval($entityFields['ASSIGNED_BY_ID']) : 0, 'CAN_READ' => CCrmLead::CheckReadPermission($entityID, $userPermissions)); } } if (!is_array($fields)) { continue; } if ($fields['CAN_READ'] && $enableExtendedMode) { $showUrl = $fields['SHOW_URL'] = CCrmOwnerType::GetShowUrl($entityTypeID, $entityID); if ($showUrl !== '') { $fields['ACTIVITY_LIST_URL'] = CCrmUrlUtil::AddUrlParams($showUrl, array("{$contactFormID}_active_tab" => 'tab_activity')); $fields['INVOICE_LIST_URL'] = CCrmUrlUtil::AddUrlParams($showUrl, array("{$contactFormID}_active_tab" => 'tab_invoice')); if ($entityTypeID === CCrmOwnerType::Contact || $entityTypeID === CCrmOwnerType::Company) { $fields['DEAL_LIST_URL'] = CCrmUrlUtil::AddUrlParams($showUrl, array("{$contactFormID}_active_tab" => 'tab_deal')); } } $activities = array(); $dbActivity = CCrmActivity::GetList(array('DEADLINE' => 'ASC'), array('COMPLETED' => 'N', 'BINDINGS' => array(array('OWNER_TYPE_ID' => $entityTypeID, 'OWNER_ID' => $entityID)), 'CHECK_PERMISSIONS' => $isAdmin ? 'N' : 'Y'), false, array('nTopCount' => 4), array('ID', 'SUBJECT', 'START_TIME', 'END_TIME', 'DEADLINE'), array('PERMS' => $userPermissions)); if (is_object($dbActivity)) { while ($activityFields = $dbActivity->Fetch()) { $activityFields['SHOW_URL'] = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Activity, $activityFields['ID']); $activities[] =& $activityFields; unset($activityFields); } } $fields['ACTIVITIES'] =& $activities; unset($activities); } $entityTypeName = CCrmOwnerType::ResolveName($entityTypeID); if (!isset($entityByType[$entityTypeName])) { $entityByType[$entityTypeName] = array($fields); } elseif (!in_array($entityID, $entityByType[$entityTypeName], true)) { $entityByType[$entityTypeName][] = $fields; } } } unset($dup); return $entityByType; }
//CrmContact $obRes = CCrmContact::GetListEx(array('LAST_NAME' => 'ASC', 'NAME' => 'ASC'), array(), false, array('nTopCount' => 50), array('ID', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'COMPANY_TITLE', 'PHOTO')); $arContacts = array(); while ($arRes = $obRes->Fetch()) { if (!empty($arRes['PHOTO']) && !isset($arFiles[$arRes['PHOTO']])) { if ($arFile = CFile::GetFileArray($arRes['PHOTO'])) { $arFiles[$arRes['PHOTO']] = CHTTP::URN2URI($arFile['SRC']); } } $arContacts[] = array('id' => $arRes['ID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_show'), array('contact_id' => $arRes['ID'])), 'title' => str_replace(array(';', ','), ' ', CCrmContact::PrepareFormattedName($arRes)), 'desc' => empty($arRes['COMPANY_TITLE']) ? '' : $arRes['COMPANY_TITLE'], 'image' => isset($arFiles[$arRes['PHOTO']]) ? $arFiles[$arRes['PHOTO']] : '', 'type' => 'contact', 'selected' => false); } //CrmLead $arLeads = array(); $obRes = CCrmLead::GetListEx(array('TITLE' => 'ASC'), array(), false, array('nTopCount' => 50), array('ID', 'TITLE', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'STATUS_ID')); while ($arRes = $obRes->Fetch()) { $arLeads[] = array('id' => $arRes['ID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $arRes['ID'])), 'title' => str_replace(array(';', ','), ' ', $arRes['TITLE']), 'desc' => CCrmLead::PrepareFormattedName($arRes), 'type' => 'lead', 'selected' => false); } //CrmDeal $arDeals = array(); $obRes = CCrmDeal::GetListEx(array('TITLE' => 'ASC'), array(), false, array('nTopCount' => 50), array('ID', 'TITLE')); while ($arRes = $obRes->Fetch()) { $arDeals[] = array('id' => $arRes['ID'], 'url' => CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $arRes['ID'])), 'title' => str_replace(array(';', ','), ' ', $arRes['TITLE']), 'desc' => '', 'type' => 'deal', 'selected' => false); } ?> <script type="text/javascript"> var crmCompanyElements = <?php echo CUtil::PhpToJsObject($arCompanies); ?> ; var crmContactElements = <?php
private function MapField(&$entityInfo, $fieldName) { $result = ''; $typeID = isset($entityInfo['TYPE_ID']) ? intval($entityInfo['TYPE_ID']) : CCrmOwnerType::Undefined; $fields = isset($entityInfo['FIELDS']) ? $entityInfo['FIELDS'] : array(); $isHtml = $this->contentType === CCrmContentType::Html; $isBBCode = $this->contentType === CCrmContentType::BBCode; $isPlainText = $this->contentType === CCrmContentType::PlainText; if ($typeID === CCrmOwnerType::Lead) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'NAME': case 'SECOND_NAME': case 'LAST_NAME': case 'TITLE': case 'COMPANY_TITLE': case 'SOURCE_DESCRIPTION': case 'STATUS_DESCRIPTION': case 'POST': case 'ASSIGNED_BY_WORK_POSITION': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'ADDRESS': $addressOptions = array(); if ($isHtml) { $addressOptions['SEPARATOR'] = AddressSeparator::HtmlLineBreak; $addressOptions['NL2BR'] = true; } else { $addressOptions['SEPARATOR'] = AddressSeparator::NewLine; } $result = LeadAddressFormatter::format($fields, $addressOptions); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'SOURCE': $result = self::MapReferenceValue(self::PrepareSources(), $fields, 'SOURCE_ID', $isHtml); break; case 'STATUS': $result = self::MapReferenceValue(self::PrepareLeadStatuses(), $fields, 'STATUS_ID', $isHtml); break; case 'FORMATTED_NAME': $result = CCrmLead::PrepareFormattedName(array('HONORIFIC' => isset($fields['HONORIFIC']) ? $fields['HONORIFIC'] : '', 'NAME' => isset($fields['NAME']) ? $fields['NAME'] : '', 'SECOND_NAME' => isset($fields['SECOND_NAME']) ? $fields['SECOND_NAME'] : '', 'LAST_NAME' => isset($fields['LAST_NAME']) ? $fields['LAST_NAME'] : '')); if ($isHtml) { $result = htmlspecialcharsbx($result); } break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'OPPORTUNITY': $result = isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0; break; case 'OPPORTUNITY_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; } } elseif ($typeID === CCrmOwnerType::Deal) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'TITLE': case 'ASSIGNED_BY_WORK_POSITION': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'TYPE': $result = self::MapReferenceValue(self::PrepareDealTypes(), $fields, 'TYPE_ID', $isHtml); break; case 'STAGE': $result = self::MapReferenceValue(self::PrepareDealStages(), $fields, 'STAGE_ID', $isHtml); break; case 'PROBABILITY': $result = (isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0) . ' %'; break; case 'BEGINDATE': $result = isset($fields['BEGINDATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['BEGINDATE'])) : ''; break; case 'CLOSEDATE': $result = isset($fields['CLOSEDATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['CLOSEDATE'])) : ''; break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'OPPORTUNITY': $result = isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0; break; case 'OPPORTUNITY_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['OPPORTUNITY']) ? $fields['OPPORTUNITY'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; case 'COMPANY': $result = self::ResolveEntityInfo(CCrmOwnerType::Company, isset($fields['COMPANY_ID']) ? intval($fields['COMPANY_ID']) : 0); break; case 'CONTACT': $result = self::ResolveEntityInfo(CCrmOwnerType::Contact, isset($fields['CONTACT_ID']) ? intval($fields['CONTACT_ID']) : 0); break; } } elseif ($typeID === CCrmOwnerType::Contact) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'NAME': case 'SECOND_NAME': case 'LAST_NAME': case 'POST': case 'SOURCE_DESCRIPTION': case 'ASSIGNED_BY_WORK_POSITION': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'ADDRESS': $addressOptions = array(); if ($isHtml) { $addressOptions['SEPARATOR'] = AddressSeparator::HtmlLineBreak; $addressOptions['NL2BR'] = true; } else { $addressOptions['SEPARATOR'] = AddressSeparator::NewLine; } $result = ContactAddressFormatter::format($fields, $addressOptions); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'FORMATTED_NAME': $result = CCrmContact::PrepareFormattedName(array('HONORIFIC' => isset($fields['HONORIFIC']) ? $fields['HONORIFIC'] : '', 'NAME' => isset($fields['NAME']) ? $fields['NAME'] : '', 'SECOND_NAME' => isset($fields['SECOND_NAME']) ? $fields['SECOND_NAME'] : '', 'LAST_NAME' => isset($fields['LAST_NAME']) ? $fields['LAST_NAME'] : '')); if ($isHtml) { $result = htmlspecialcharsbx($result); } break; case 'SOURCE': $result = self::MapReferenceValue(self::PrepareSources(), $fields, 'SOURCE_ID', $isHtml); break; case 'TYPE': $result = self::MapReferenceValue(self::PrepareContactTypes(), $fields, 'TYPE_ID', $isHtml); break; case 'COMPANY': $result = self::ResolveEntityInfo(CCrmOwnerType::Company, isset($fields['COMPANY_ID']) ? intval($fields['COMPANY_ID']) : 0); break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; } } elseif ($typeID === CCrmOwnerType::Company) { switch ($fieldName) { case 'ID': $result = isset($fields[$fieldName]) ? intval($fields[$fieldName]) : 0; break; case 'TITLE': case 'COMPANY_TITLE': case 'SOURCE_DESCRIPTION': case 'ASSIGNED_BY_WORK_POSITION': case 'BANKING_DETAILS': $result = self::MapFieldValue($fields, $fieldName, $isHtml); break; case 'ADDRESS': case 'ADDRESS_LEGAL': $addressOptions = array('TYPE_ID' => $fieldName === 'ADDRESS' ? EntityAddress::Primary : EntityAddress::Registered); if ($isHtml) { $addressOptions['SEPARATOR'] = AddressSeparator::HtmlLineBreak; $addressOptions['NL2BR'] = true; } else { $addressOptions['SEPARATOR'] = AddressSeparator::NewLine; } $result = CompanyAddressFormatter::format($fields, $addressOptions); break; case 'COMMENTS': if ($isBBCode) { $result = self::MapHtmlFieldAsBbCode($fields, 'COMMENTS'); } elseif ($isPlainText) { $result = self::MapHtmlFieldAsPlainText($fields, 'COMMENTS'); } else { $result = self::MapFieldValue($fields, $fieldName, false); } break; case 'COMPANY_TYPE': case 'TYPE': $result = self::MapReferenceValue(self::PrepareCompanyTypes(), $fields, 'COMPANY_TYPE', $isHtml); break; case 'INDUSTRY': $result = self::MapReferenceValue(self::PrepareIndustries(), $fields, 'INDUSTRY', $isHtml); break; case 'EMPLOYEES': $result = self::MapReferenceValue(self::PrepareEmployees(), $fields, 'EMPLOYEES', $isHtml); break; case 'CURRENCY': $result = isset($fields['CURRENCY_ID']) ? CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID']) : ''; break; case 'REVENUE': $result = isset($fields['REVENUE']) ? $fields['REVENUE'] : 0.0; break; case 'REVENUE_FORMATTED': $result = CCrmCurrency::MoneyToString(isset($fields['REVENUE']) ? $fields['REVENUE'] : 0.0, isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : ''); break; case 'ASSIGNED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['ASSIGNED_BY_ID']) ? $fields['ASSIGNED_BY_ID'] : 0, '', $isHtml); break; case 'CREATED_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['CREATED_BY_ID']) ? $fields['CREATED_BY_ID'] : 0, '', $isHtml); break; case 'MODIFY_BY_FULL_NAME': $result = CCrmViewHelper::GetFormattedUserName(isset($fields['MODIFY_BY_ID']) ? $fields['MODIFY_BY_ID'] : 0, '', $isHtml); break; case 'DATE_CREATE': $result = isset($fields['DATE_CREATE']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_CREATE'])) : ''; break; case 'DATE_MODIFY': $result = isset($fields['DATE_MODIFY']) ? FormatDate('SHORT', MakeTimeStamp($fields['DATE_MODIFY'])) : ''; break; } } return $result; }
public static function PrepareLeadItem(&$item, &$params, $enums = array()) { $itemID = intval($item['~ID']); $item['SHOW_URL'] = CComponentEngine::MakePathFromTemplate($params['LEAD_SHOW_URL_TEMPLATE'], array('lead_id' => $itemID)); $statusList = $enums && isset($enums['STATUS_LIST']) ? $enums['STATUS_LIST'] : self::GetStatusList('STATUS'); $statusID = isset($item['~STATUS_ID']) ? $item['~STATUS_ID'] : ''; if ($statusID === '' || !isset($statusList[$statusID])) { $item['~STATUS_NAME'] = $item['STATUS_NAME'] = ''; } else { $item['~STATUS_NAME'] = $statusList[$statusID]; $item['STATUS_NAME'] = htmlspecialcharsbx($item['~STATUS_NAME']); } $sourceList = $enums && isset($enums['SOURCE_LIST']) ? $enums['SOURCE_LIST'] : self::GetStatusList('SOURCE'); $sourceID = isset($item['~SOURCE_ID']) ? $item['~SOURCE_ID'] : ''; if ($sourceID === '' || !isset($sourceList[$sourceID])) { $item['~SOURCE_NAME'] = $item['SOURCE_NAME'] = ''; } else { $item['~SOURCE_NAME'] = $sourceList[$sourceID]; $item['SOURCE_NAME'] = htmlspecialcharsbx($item['~SOURCE_NAME']); } $currencyID = isset($item['~CURRENCY_ID']) ? $item['~CURRENCY_ID'] : ''; if ($currencyID === '') { $currencyID = $item['~CURRENCY_ID'] = CCrmCurrency::GetBaseCurrencyID(); $item['CURRENCY_ID'] = htmlspecialcharsbx($currencyID); } $item['~CURRENCY_NAME'] = CCrmCurrency::GetCurrencyName($currencyID); $item['CURRENCY_NAME'] = htmlspecialcharsbx($item['~CURRENCY_NAME']); $item['~FORMATTED_OPPORTUNITY'] = CCrmCurrency::MoneyToString(isset($item['~OPPORTUNITY']) ? $item['~OPPORTUNITY'] : '', $currencyID); $item['FORMATTED_OPPORTUNITY'] = strip_tags($item['~FORMATTED_OPPORTUNITY']); $item['~FORMATTED_NAME'] = CCrmLead::PrepareFormattedName(array('HONORIFIC' => isset($item['~HONORIFIC']) ? $item['~HONORIFIC'] : '', 'NAME' => isset($item['~NAME']) ? $item['~NAME'] : '', 'LAST_NAME' => isset($item['~LAST_NAME']) ? $item['~LAST_NAME'] : '', 'SECOND_NAME' => isset($item['~SECOND_NAME']) ? $item['~SECOND_NAME'] : '')); $item['FORMATTED_NAME'] = htmlspecialcharsbx($item['~FORMATTED_NAME']); $assignedByID = isset($item['~ASSIGNED_BY_ID']) ? intval($item['~ASSIGNED_BY_ID']) : 0; $item['~ASSIGNED_BY_ID'] = $item['ASSIGNED_BY_ID'] = $assignedByID; $item['ASSIGNED_BY_SHOW_URL'] = $assignedByID > 0 ? CComponentEngine::MakePathFromTemplate($params['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $assignedByID)) : ''; $item['~ASSIGNED_BY_FORMATTED_NAME'] = $assignedByID > 0 ? CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => isset($item['~ASSIGNED_BY_LOGIN']) ? $item['~ASSIGNED_BY_LOGIN'] : '', 'NAME' => isset($item['~ASSIGNED_BY_NAME']) ? $item['~ASSIGNED_BY_NAME'] : '', 'LAST_NAME' => isset($item['~ASSIGNED_BY_LAST_NAME']) ? $item['~ASSIGNED_BY_LAST_NAME'] : '', 'SECOND_NAME' => isset($item['~ASSIGNED_BY_SECOND_NAME']) ? $item['~ASSIGNED_BY_SECOND_NAME'] : ''), true, false) : ''; $item['ASSIGNED_BY_FORMATTED_NAME'] = htmlspecialcharsbx($item['~ASSIGNED_BY_FORMATTED_NAME']); if (!isset($item['~ADDRESS'])) { $item['~ADDRESS'] = $item['ADDRESS'] = ''; } if (!isset($item['~ADDRESS_2'])) { $item['~ADDRESS_2'] = $item['ADDRESS_2'] = ''; } if (!isset($item['~ADDRESS_CITY'])) { $item['~ADDRESS_CITY'] = $item['ADDRESS_CITY'] = ''; } if (!isset($item['~ADDRESS_REGION'])) { $item['~ADDRESS_REGION'] = $item['ADDRESS_REGION'] = ''; } if (!isset($item['~ADDRESS_PROVINCE'])) { $item['~ADDRESS_PROVINCE'] = $item['ADDRESS_PROVINCE'] = ''; } if (!isset($item['~ADDRESS_POSTAL_CODE'])) { $item['~ADDRESS_POSTAL_CODE'] = $item['ADDRESS_POSTAL_CODE'] = ''; } if (!isset($item['~ADDRESS_COUNTRY'])) { $item['~ADDRESS_COUNTRY'] = $item['ADDRESS_COUNTRY'] = ''; } $item['FULL_ADDRESS'] = Bitrix\Crm\Format\LeadAddressFormatter::format(array('ADDRESS' => $item['~ADDRESS'], 'ADDRESS_2' => $item['~ADDRESS_2'], 'ADDRESS_CITY' => $item['~ADDRESS_CITY'], 'ADDRESS_REGION' => $item['~ADDRESS_REGION'], 'ADDRESS_PROVINCE' => $item['~ADDRESS_PROVINCE'], 'ADDRESS_POSTAL_CODE' => $item['~ADDRESS_POSTAL_CODE'], 'ADDRESS_COUNTRY' => $item['~ADDRESS_COUNTRY']), array('SEPARATOR' => Bitrix\Crm\Format\AddressSeparator::HtmlLineBreak)); }