• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/orderbuildernew.php
  • Класс: BitrixSaleHelpersOrderBuilderOrderBuilderNew
  • Вызов: OrderBuilderNew::setUser
public function setUser()
{
	$this->builder->getOrder()->setFieldNoDemand(
		'USER_ID',
		$this->builder->getUserId()
	);

	$currentUserId = (int)$this->builder->getOrder()->getUserId();
	$oldFormDataUserId = (int)$this->builder->getFormData('OLD_USER_ID');

	$currentPersonTypeId = (int)$this->builder->getOrder()->getPersonTypeId();
	$oldPersonTypeId = (int)$this->builder->getFormData('OLD_PERSON_TYPE_ID');

	$reloadProfile = $oldFormDataUserId > 0 && $currentUserId !== $oldFormDataUserId;
	if (!$reloadProfile && $oldPersonTypeId > 0 && $oldPersonTypeId !== $currentPersonTypeId)
	{
		$reloadProfile = true;
	}

	if ($reloadProfile)
	{
		$resultLoading = BitrixSaleOrderUserProperties::loadProfiles($currentUserId, $currentPersonTypeId);
		if (!$resultLoading->isSuccess())
		{
			return;
		}
		$profiles = $resultLoading->getData();
		if (empty($profiles) || !is_array($profiles))
		{
			return;
		}
		$currentProfile = current($profiles[$currentPersonTypeId]);
		if (empty($currentProfile))
		{
			return;
		}
		$values = $currentProfile['VALUES'];
		$propertyCollection = $this->builder->getOrder()->getPropertyCollection();
		$propertyCollection->setValuesFromPost(
			['PROPERTIES' => $values],[]
		);
	}
}