• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/delivery/wizard/base.php
  • Класс: BitrixSalesCenterDeliveryWizardBase
  • Вызов: Base::buildFieldsFromSettings
protected function buildFieldsFromSettings(array $settings): Result
{
	$result = new Result();

	$validationResult = $this->validateSettings($settings);
	if (!$validationResult->isSuccess())
	{
		return $result->addErrors($validationResult->getErrors());
	}

	if (!Loader::includeModule('currency'))
	{
		return $result->addError(new Error(Loc::getMessage('SALESCENTER_CONTROLLER_DELIVERY_INSTALLATION_CURRENCY_MODULE_NOT_INSTALLED')));
	}

	$currency = SiteCurrencyTable::getSiteCurrency(SITE_ID);
	if (empty($currency))
	{
		$currency = CurrencyManager::getBaseCurrency();
	}

	/** @var BitrixSaleDeliveryServicesBase $handlerClass */
	$handlerClass = $this->handler->getHandlerClass();

	$vatRate = $handlerClass::getDefaultVatRate();

	return $result->setData(
		[
			'FIELDS' => [
				'NAME' => $settings['NAME'],
				'CURRENCY' => $currency,
				'ACTIVE' => $settings['ACTIVE'],
				'CLASS_NAME' => $handlerClass,
				'LOGOTIP' => CFile::SaveFile(
					CFile::MakeFileArray(
						Application::getDocumentRoot() . $this->handler->getWorkingImagePath()
					),
					'sale/delivery/logotip'
				),
				'VAT_ID' => (!is_null($vatRate) && Loader::includeModule('catalog'))
					? VatTable::getActiveVatIdByRate($vatRate, true)
					: null,
			]
		]
	);
}