Prestashop 1.7.6.3 неверно рассчитывает налог - PullRequest
1 голос
/ 09 марта 2020

В prestashop 1.7.6.3 налог рассчитывается неправильно. Мне нужно округлить цену за единицу после того, как она получена из базовой цены, имеющей скидку. Теперь цена и сумма без учета налога в порядке, но цена и сумма, включая налог, не подходит для этой схемы. Как я могу округлить это? Я попробовал в продукте. 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.php, classes/cartrule.php и несколько других файлов, но это также не помогло мне.

1 Ответ

0 голосов
/ 09 марта 2020

в вашем config / config.in c. php в строке 134 вы можете изменить 2 константы относительно точности цены.

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

Примечание: я поставил 5 в качестве примера

...