• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/new_to_automatic.php
  • Класс: BitrixSaleDeliveryServicesNewToAutomatic
  • Вызов: NewToAutomatic::convertNewServiceToOld
static function convertNewServiceToOld($service)
{
	if (intval($service["ID"]) <= 0)
	{
		return [];
	}

	$newService = Manager::getObjectById($service["ID"]);
	if (is_null($newService))
	{
		return [];
	}

	$service["SID"] = 'new'.$service["ID"];
	$service["TAX_RATE"] = 0;
	$service["INSTALLED"] = 'Y';
	$service["BASE_CURRENCY"] = $service["CURRENCY"];
	$service["SETTINGS"] = array();
	$service["HANDLER"] = self::HANDLER;

	if (intval($service["LOGOTIP"]) > 0)
		$service["LOGOTIP"] = CFile::getFileArray($service["LOGOTIP"]);

	$service["CONFIG"] = array(
		"CONFIG_GROUPS" => array(),
		"CONFIG" => array(),
	);

	$service["PROFILES"] = array();

	$profileParams = array(
		"TITLE" => "",
		"DESCRIPTION" => $service["DESCRIPTION"],
		"TAX_RATE" => 0,
		"ACTIVE" =>  $service["ACTIVE"]
	);

	$restrictions = RestrictionsManager::getRestrictionsList($service["ID"]);

	foreach($restrictions as $restriction)
	{
		switch($restriction["CLASS_NAME"])
		{
			case 'BitrixSaleDeliveryRestrictionsByWeight':
				$profileParams["RESTRICTIONS_WEIGHT"] = array($restriction["PARAMS"]["MIN_WEIGHT"], $restriction["PARAMS"]["MAX_WEIGHT"]);
				break;

			case 'BitrixSaleDeliveryRestrictionsByPrice':
				$profileParams["RESTRICTIONS_SUM"] = array($restriction["PARAMS"]["MIN_PRICE"], $restriction["PARAMS"]["MAX_PRICE"]);
				break;

			case 'BitrixSaleDeliveryRestrictionsByDimensions':
				$profileParams["RESTRICTIONS_DIMENSIONS"] = array(
					$restriction["PARAMS"]["LENGTH"],
					$restriction["PARAMS"]["WIDTH"],
					$restriction["PARAMS"]["HEIGHT"]
				);

				$profileParams["RESTRICTIONS_MAX_SIZE"] = $restriction["PARAMS"]["MAX_DIMENSION"];
				$profileParams["RESTRICTIONS_DIMENSIONS_SUM"] = $restriction["PARAMS"]["MAX_DIMENSIONS_SUM"];
				break;

			default:
				break;
		}
	}

	$service["PROFILES"]['profile'] = $profileParams;

	$newToAutomatic = new self($newService);
	$service = array_merge($newToAutomatic->init(), $service);
	return $service;
}