public static function NormalizeUserFields(&$arFields, $entityID, $manager = null, $arOptions = null) { $entityID = strval($entityID); if (!$manager) { $manager = $GLOBALS['USER_FIELD_MANAGER']; } $userType = new CCrmUserType($manager, $entityID); $userType->PrepareUpdate($arFields, $arOptions); }
global $USER_FIELD_MANAGER; $CCrmUserType = new CCrmUserType($USER_FIELD_MANAGER, CCrmLead::$sUFEntityID); $arParams['ELEMENT_ID'] = (int) $arParams['ELEMENT_ID']; $obFields = CCrmLead::GetListEx(array(), array('=ID' => $arParams['ELEMENT_ID'], 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $arLead = $arFields = is_object($obFields) ? $obFields->GetNext() : false; if ($arLead === false) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_LIST'], array())); } foreach ($arFields as $key => $value) { if (isset($arFields['~' . $key])) { $arFields[$key] = $arFields['~' . $key]; } } $arFieldsReplace = array(); $CCrmUserType->ListAddEnumFieldsValue($arFields, $arFieldsReplace, $arFields['ID']); $CCrmUserType->PrepareUpdate($arFields); $arResult['ELEMENT']['ID'] = $arFields['ID']; $arResult['ELEMENT']['TITLE'] = $arFields['TITLE']; unset($arFields['ID']); if ($arFields['STATUS_ID'] == 'CONVERTED') { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_LIST'], array())); } $arResult['ELEMENT']['CONTACT'] = $arFields; // associate custom fields leads and contacts $arUFLead = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields('CRM_LEAD', 0, LANGUAGE_ID); $arUFContact = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields('CRM_CONTACT', 0, LANGUAGE_ID); foreach ($arUFLead as $_arUfLead) { foreach ($arUFContact as $_arUFContact) { if ($_arUfLead['USER_TYPE_ID'] == $_arUFContact['USER_TYPE_ID'] && strtolower(trim($_arUfLead['EDIT_FORM_LABEL'])) == strtolower(trim($_arUFContact['EDIT_FORM_LABEL']))) { $arResult['ELEMENT']['CONTACT'][$_arUFContact['FIELD_NAME']] = $arFields[$_arUfLead['FIELD_NAME']]; break;