本文整理汇总了PHP中CSaleBasketHelper::getFinalPrice方法的典型用法代码示例。如果您正苦于以下问题:PHP CSaleBasketHelper::getFinalPrice方法的具体用法?PHP CSaleBasketHelper::getFinalPrice怎么用?PHP CSaleBasketHelper::getFinalPrice使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CSaleBasketHelper
的用法示例。
在下文中一共展示了CSaleBasketHelper::getFinalPrice方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CalculateOrderPrices
/**
* calculate the cost according to the order basket
* @param array $arBasketItems
* @return array|bool
*/
public static function CalculateOrderPrices($arBasketItems)
{
if (!isset($arBasketItems) || isset($arBasketItems) && sizeof($arBasketItems) <= 0) {
return false;
}
$arResult = array("ORDER_PRICE" => 0, "ORDER_WEIGHT" => 0, "VAT_RATE" => 0, "VAT_SUM" => 0, "USE_VAT" => 'N', "BASKET_ITEMS" => $arBasketItems);
foreach ($arResult['BASKET_ITEMS'] as &$arItem) {
if (!CSaleBasketHelper::isSetItem($arItem)) {
if (array_key_exists('CUSTOM_PRICE', $arItem) && $arItem['CUSTOM_PRICE'] == 'Y') {
$arItem['DISCOUNT_PRICE'] = $arItem['DEFAULT_PRICE'] - $arItem['PRICE'];
if ($arItem['DISCOUNT_PRICE'] < 0) {
$arItem['DISCOUNT_PRICE'] = 0;
}
if (doubleval($arItem['DEFAULT_PRICE']) > 0) {
$arItem['DISCOUNT_PRICE_PERCENT'] = $arItem['DISCOUNT_PRICE'] * 100 / $arItem['DEFAULT_PRICE'];
} else {
$arItem['DISCOUNT_PRICE_PERCENT'] = 0;
}
$arItem["DISCOUNT_PRICE_PERCENT_FORMATED"] = roundEx($arItem["DISCOUNT_PRICE_PERCENT"], SALE_VALUE_PRECISION) . "%";
}
if (isset($arItem['CURRENCY']) && strlen($arItem['CURRENCY']) > 0) {
$arItem["PRICE_FORMATED"] = SaleFormatCurrency($arItem["PRICE"], $arItem["CURRENCY"]);
}
$arResult['ORDER_PRICE'] += CSaleBasketHelper::getFinalPrice($arItem);
$arResult['ORDER_WEIGHT'] += $arItem["WEIGHT"] * $arItem["QUANTITY"];
if ($arItem["VAT_RATE"] > 0) {
$arResult['USE_VAT'] = 'Y';
if ($arItem["VAT_RATE"] > $arResult['VAT_RATE']) {
$arResult['VAT_RATE'] = $arItem["VAT_RATE"];
}
$v = CSaleBasketHelper::getVat($arItem);
$arItem["VAT_VALUE"] = \Bitrix\Sale\PriceMaths::roundPrecision($v / $arItem["QUANTITY"]);
$arResult["VAT_SUM"] += $v;
}
}
}
$arResult['ORDER_PRICE'] = \Bitrix\Sale\PriceMaths::roundPrecision($arResult['ORDER_PRICE']);
$arResult['VAT_SUM'] = \Bitrix\Sale\PriceMaths::roundPrecision($arResult['VAT_SUM']);
unset($arItem);
return $arResult;
}