Prestashop 1.7.6.3以错误的方式计算税款

时间:2020-03-09 05:09:56

标签: prestashop prestashop-1.7

prestashop 1.7.6.3中,税额计算方法错误。我需要将单价从具有折扣的基础价格中扣除后再四舍五入。现在价格和总计(不含税)都可以,但价格和总计(含税)不适合该路由。我该如何取整?我试过了 在product.php

$specific_price_reduction = 0;
    if (($only_reduc || $use_reduc) && $specific_price) {
        if ($specific_price['reduction_type'] == 'amount') {
            $reduction_amount = $specific_price['reduction'];

            if (!$specific_price['id_currency']) {
                $reduction_amount = Tools::convertPrice($reduction_amount, $id_currency);
            }

            $specific_price_reduction = $reduction_amount;

            // Adjust taxes if required

            if (!$use_tax && $specific_price['reduction_tax']) {
                $specific_price_reduction = $product_tax_calculator->removeTaxes($specific_price_reduction);
            }
            if ($use_tax && !$specific_price['reduction_tax']) {
                $specific_price_reduction = $product_tax_calculator->addTaxes($specific_price_reduction);
            }
        } else {
            $specific_price_reduction = $price * $specific_price['reduction'];
        }
    }

    if ($use_reduc) {
        $price -= $specific_price_reduction;
    }

    // Group reduction
    if ($use_group_reduction) {
        $reduction_from_category = GroupReduction::getValueForProduct($id_product, $id_group);
        if ($reduction_from_category !== false) {
            $group_reduction = $price * (float) $reduction_from_category;
        } else { // apply group reduction if there is no group reduction for this category
            $group_reduction = (($reduc = Group::getReductionByIdGroup($id_group)) != 0) ? ($price * $reduc / 100) : 0;
        }

        $price -= $group_reduction;
    }

我检查了classes/cart.phpclasses/cartrule.php和其他几个文件,但也没有帮助。

1 个答案:

答案 0 :(得分:0)

在config / config.inc.php第134行中,您可以更改2个有关价格精度的常量。

define('_PS_PRICE_DISPLAY_PRECISION_', 5);
define('_PS_PRICE_COMPUTE_PRECISION_', 5);

注意: 我举了5个例子