%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/lib/ |
| Current File : //home/bitrix/www/bitrix/modules/sale/lib/orderdiscountmanager.php |
<?php
namespace Bitrix\Sale;
use Bitrix\Main,
Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
/**
* Class OrderDiscountManager
* @package Bitrix\Sale
*
* @deprecated
* @see OrderDiscount
*/
class OrderDiscountManager extends OrderDiscount
{
/** @deprecated */
const DESCR_TYPE_SIMPLE = Discount\Formatter::TYPE_SIMPLE;
/** @deprecated */
const DESCR_TYPE_VALUE = Discount\Formatter::TYPE_VALUE;
/** @deprecated */
const DESCR_TYPE_LIMIT_VALUE = Discount\Formatter::TYPE_LIMIT_VALUE;
/** @deprecated */
const DESCR_TYPE_FIXED = Discount\Formatter::TYPE_FIXED;
/** @deprecated */
const DESCR_TYPE_MAX_BOUND = Discount\Formatter::TYPE_MAX_BOUND;
/** @deprecated */
const DESCR_VALUE_TYPE_PERCENT = Discount\Formatter::VALUE_TYPE_PERCENT;
/** @deprecated */
const DESCR_VALUE_TYPE_CURRENCY = Discount\Formatter::VALUE_TYPE_CURRENCY;
/** @deprecated */
const DESCR_VALUE_TYPE_SUMM = Discount\Formatter::VALUE_TYPE_SUMM;
/** @deprecated */
const DESCR_VALUE_TYPE_SUMM_BASKET = Discount\Formatter::VALUE_TYPE_SUMM_BASKET;
/** @deprecated */
const DESCR_VALUE_ACTION_DISCOUNT = Discount\Formatter::VALUE_ACTION_DISCOUNT;
/** @deprecated */
const DESCR_VALUE_ACTION_EXTRA = Discount\Formatter::VALUE_ACTION_EXTRA;
/** @deprecated */
const DESCR_VALUE_ACTION_ACCUMULATE = Discount\Formatter::VALUE_ACTION_CUMULATIVE;
/** @deprecated */
const DESCR_VALUE_ACTION_CUMULATIVE = Discount\Formatter::VALUE_ACTION_CUMULATIVE;
/** @deprecated */
const DESCR_LIMIT_MAX = Discount\Formatter::LIMIT_MAX;
/** @deprecated */
const DESCR_LIMIT_MIN = Discount\Formatter::LIMIT_MIN;
/**
* Load applied discount list
* @deprecated
* @see OrderDiscount::loadResultFromDb
*
* @param int $order Order id.
* @param bool $extendedMode Get full information by discount - unused.
* @param array|bool $basketList Correspondence between basket ids and basket codes.
* @param array $basketData Basket data.
* @return Result
*/
public static function loadResultFromDatabase($order, $extendedMode = false, $basketList = false, $basketData = array())
{
if (!is_array($basketList))
$basketList = [];
if (!is_array($basketData))
$basketData = [];
$result = parent::loadResultFromDb($order, $basketList, $basketData);
/* for compatibility only */
$data = $result->getData();
$data['BASKET'] = [];
$data['ORDER'] = [];
$data['DISCOUNT_MODULES'] = [];
$data['DATA'] = [];
if (isset($data['APPLY_BLOCKS'][0]))
{
$data['BASKET'] = $data['APPLY_BLOCKS'][0]['BASKET'];
$data['ORDER'] = $data['APPLY_BLOCKS'][0]['ORDER'];
}
if (!empty($data['DISCOUNT_LIST']))
{
foreach (array_keys($data['DISCOUNT_LIST']) as $index)
{
if (empty($data['DISCOUNT_LIST'][$index]['MODULES']))
continue;
$data['DISCOUNT_MODULES'][$index] = $data['DISCOUNT_LIST'][$index]['MODULES'];
}
unset($index);
}
$data['DATA']['STORED_ACTION_DATA'] = $data['STORED_ACTION_DATA'];
unset($data['STORED_ACTION_DATA']);
$result->setData($data);
return $result;
}
/**
* Prepare discount description.
*
* @deprecated
* @see Discount\Formatter::prepareRow
*
* @param int $type Description type.
* @param array|string $data Description data.
* @return Result
*/
public static function prepareDiscountDescription($type, $data)
{
$result = new Result();
$config = static::getManagerConfig();
$type = (int)$type;
switch ($type)
{
case Discount\Formatter::TYPE_LIMIT_VALUE:
if (!is_array($data))
$data = array();
if (!isset($data['LIMIT_UNIT']) && isset($config['CURRENCY']))
$data['LIMIT_UNIT'] = $config['CURRENCY'];
if (!isset($data['VALUE_UNIT']) && isset($config['CURRENCY']))
$data['VALUE_UNIT'] = $config['CURRENCY'];
break;
case Discount\Formatter::TYPE_VALUE:
case Discount\Formatter::TYPE_FIXED:
case Discount\Formatter::TYPE_MAX_BOUND:
if (!is_array($data))
$data = array();
if (!isset($data['VALUE_UNIT']) && isset($config['CURRENCY']))
$data['VALUE_UNIT'] = $config['CURRENCY'];
break;
}
$description = Discount\Formatter::prepareRow($type, $data);
if ($description !== null)
{
$result->setData($description);
}
else
{
self::transferFormatterErrors($result);
}
return $result;
}
/**
* Format discount description.
*
* @deprecated
* @see Discount\Formatter::formatRow
*
* @param array $data Discount description.
* @return Result
*/
public static function formatDiscountDescription($data)
{
$result = new Result();
if (!is_array($data))
$data = array();
$description = Discount\Formatter::formatRow($data);
if ($description !== null)
{
$result->setData(array('DESCRIPTION' => $description));
}
else
{
self::transferFormatterErrors($result);
}
return $result;
}
/**
* Return string discount description.
*
* @deprecated
* @see Discount\Formatter::formatRow
*
* @param array $data Description.
* @return bool|string
*/
public static function formatDescription($data)
{
$result = false;
if (!is_array($data))
$data = array();
$description = Discount\Formatter::formatRow($data);
if ($description !== null)
$result = $description;
return $result;
}
/**
* Format discount result.
*
* @deprecated
* @see Discount\Formatter::formatList
*
* @param array $data Description data.
* @return array|bool
*/
public static function formatArrayDescription($data)
{
$result = array();
if (!empty($data) && is_array($data))
{
$description = Discount\Formatter::formatList($data);
if ($description !== null)
$result = $description;
}
return (empty($result) ? false: $result);
}
/**
* Create simple description for unknown discount.
*
* @deprecated
* @see Discount\Result\CompatibleFormat::createResultDescription
*
* @param float $newPrice New price.
* @param float $oldPrice Old price.
* @param string $currency Currency.
* @return array
*/
public static function createSimpleDescription($newPrice, $oldPrice, $currency)
{
return Discount\Result\CompatibleFormat::createResultDescription($newPrice, $oldPrice, $currency);
}
/**
* Return basket code for discount rule.
* @deprecated
*
* @param array $rule Discount rule.
* @param bool $translate Use entity id or basket id.
* @param array|bool $basketList Convert table basket id to basket code.
* @return string
*/
protected static function getBasketCodeByRule(array $rule, $translate, $basketList)
{
$translate = ($translate === true);
$index = '';
if ($translate)
{
if (is_array($basketList) && isset($basketList[$rule['ENTITY_ID']]))
$index = $basketList[$rule['ENTITY_ID']];
}
else
{
$index = $rule['ENTITY_ID'];
}
return $index;
}
/**
* Returns formatter errors.
*
* @param Result $result Result object.
* @return void
*/
private static function transferFormatterErrors(Result $result)
{
$errors = Discount\Formatter::getErrors();
Discount\Formatter::clearErrors();
$result->addWarning(new Main\Error(
implode('. ', $errors),
self::ERROR_ID
));
}
}