• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/controller/order.php
  • Класс: BitrixSalesCenterControllerOrder
  • Вызов: Order::prepareParamsForBuilder
protected function prepareParamsForBuilder(array $params, $scenario = null) : array
{
	$basketItems = (isset($params['basketItems']) && is_array($params['basketItems']))
		? $params['basketItems']
		: []
	;

	$propertyValues = (isset($params['propertyValues']) && is_array($params['propertyValues']))
		? $params['propertyValues']
		: []
	;
	$formData = $this->obtainOrderFields($params);

	$formData['PRODUCT'] = CatalogJSProductForm::convertToBuilderFormat($basketItems);

	$formData['PRODUCT'] = $this->tryToObtainMissingProductProperties($basketItems, $formData['PRODUCT']);

	$formData['PROPERTIES'] = $this->obtainPropertiesFields($propertyValues);

	if ($this->needObtainShipmentFields($params))
	{
		$formData['SHIPMENT'][] = $this->obtainShipmentFields($params, $formData['PRODUCT']);
	}

	if ($scenario !== SettingsContainer::BUILDER_SCENARIO_SHIPMENT)
	{
		$formData['PAYMENT'][] = $this->obtainPaymentFields($formData);
	}

	if (!empty($params['currency']))
	{
		$formData['CURRENCY'] = $params['currency'];
	}

	if (empty($formData['SITE_ID']))
	{
		$formData['SITE_ID'] = SITE_ID;
	}

	if (!empty($formData['CLIENT']['COMPANY_ID']))
	{
		$formData['PERSON_TYPE_ID'] = PersonType::getCompanyPersonTypeId();
	}
	else
	{
		$formData['PERSON_TYPE_ID'] = PersonType::getContactPersonTypeId();
	}

	if (!isset($formData['RESPONSIBLE_ID']))
	{
		$formData['RESPONSIBLE_ID'] = CCrmSecurityHelper::GetCurrentUserID();
	}

	return $formData;
}