Доброго дня всем! Не могу найти замену устаревшему событию "OnSaleComponentOrderOneStepComplete"
Использовали его для объединения полей профиля "Фамилия" "Имя" "Отчество" в одно поле FIO (Фамилия Имя Отчество)
Помогите!
Код из init.php:
Использовали его для объединения полей профиля "Фамилия" "Имя" "Отчество" в одно поле FIO (Фамилия Имя Отчество)
Помогите!
Код из init.php:
Код |
---|
AddEventHandler("sale", "OnSaleComponentOrderOneStepComplete", array("CSalehandlers", "OnSaleComponentOrderOneStepCompleteNameHandler")); class CSaleHandlers { public static function OnSaleComponentOrderOneStepCompleteNameHandler($ID, $arFields) { if ($arFields['ID'] > 0 && $arFields['USER_ID'] > 0) { $arFIO = array(); $arCityAndWarehouse = array(); $rsProp = CSaleOrderPropsValue::GetList(array(), array('ORDER_ID' => $arFields['ID'])); while ($arProp = $rsProp->Fetch()) { if ($arProp['CODE']=='F_NAME') $arFIO['NAME'] = $arProp['VALUE']; elseif ($arProp['CODE']=='F_LAST_NAME') $arFIO['LAST_NAME'] = $arProp['VALUE']; elseif ($arProp['CODE']=='F_SECOND_NAME') $arFIO['SECOND_NAME'] = $arProp['VALUE']; } } //Собираем имя и фамилию $FIO = trim($arFIO['LAST_NAME'] . ' ' . $arFIO['NAME'] . ' ' . $arFIO['SECOND_NAME']); if ($FIO != '') { if ($arProp = CSaleOrderProps::GetList(array(), array( 'CODE' => 'F_FIO', 'PERSON_TYPE_ID' => $arFields['PERSON_TYPE_ID']))->Fetch() ) { CSaleOrderPropsValue::Add( array( 'ORDER_ID' => $arFields['ID'], 'ORDER_PROPS_ID' => $arProp['ID'], 'NAME' => $arProp['NAME'], 'CODE' => 'F_FIO', 'VALUE' => $FIO, ) ); } } //Записываем имя и фамилию в данные о пользователе в систему $userUpdate = new CUser; $userUpdateFields = array( "NAME" => trim($arFIO['NAME']), "LAST_NAME" => trim($arFIO['LAST_NAME']), "SECOND_NAME" => trim($arFIO['SECOND_NAME']), ); $userUpdate->Update($arFields['USER_ID'], $userUpdateFields); //Именуем профиль покупателя по имени и фамилии $dbUserProfileData = CSaleOrderUserProps::GetList( array("DATE_UPDATED" => "DESC"), array( "USER_ID" => $arFields['USER_ID'], "PERSON_TYPE_ID" => $arFields["PERSON_TYPE_ID"] ) ); if ($arUserProfileData = $dbUserProfileData->Fetch()) { $arUserProfileID = $arUserProfileData["ID"]; } $newUserProfileName = array("NAME" => $FIO); CSaleOrderUserProps::Update($arUserProfileID, $newUserProfileName); } } |