G
N
I
D
A
O
L

Обработчик события для изменения дефолтных значений в заказе ( местоположение )

use Bitrix\Main\EventManager;
$eventManager = EventManager::getInstance();
$eventManager->addEventHandler("sale", "OnSaleComponentOrderProperties", Array("MediaGroup", "OnSaleComponentOrderProperties")); //Файл с классом use Bitrix\Main\Application;

class MediaGroup{



function OnSaleComponentOrderProperties(&$arFields)
{

global $currentCity;
\Bitrix\Main\Loader::includeModule('iblock');
$application = Application::getInstance();
$context = $application->getContext();
$curCityName = 'Москва';


if ($context->getRequest()->getCookie('USER_CITY')) {
$curCityName = $context->getRequest()->getCookie('USER_CITY');
}

$res = Bitrix\Sale\Location\LocationTable::getList(array(
'filter' => array('=NAME.NAME' => $curCityName, '=NAME.LANGUAGE_ID' => LANGUAGE_ID),
'select' => array('CODE' => 'CODE', 'NAME_RU' => 'NAME.NAME', 'TYPE_CODE' => 'TYPE.CODE') //'*',
));
if($item = $res->fetch())
{
$dbOrderProps = CSaleOrderProps::GetList(
array("SORT" => "ASC"),
[
'CODE'=>'LOCATION',
'PERSON_TYPE_ID' => $arFields['PERSON_TYPE_ID']
]
);
$arOrderProps = $dbOrderProps->GetNext();
$arFields['ORDER_PROP'][$arOrderProps['ID']] = $item["CODE"];
}

}



}