0

我的商店需要最多 4 个小数点。到目前为止,我遵循了一些 tuts 并且它们在产品的前端和后端工作得很好。仅在销售/发票价格中,税金和总计仍四舍五入到小数点后 2 位。

我编辑/覆盖了以下文件:

\app\code\local\Mage\Adminhtml\Block\Catalog\Product\Edit\Tab\Options\Option.php

我在 283 号线附近的某个地方换 return number_format($value, 2, null, '');return number_format($value, 4, null, '');

\app\code\local\Mage\Adminhtml\Block\Catalog\Product\Helper\Form\Price.php 

与 Option.php 相同

\app\code\local\Mage\Core\Model\Store.php* 将函数roundPrice()行 740 的输出更改为return round($price, 4);

\app\code\local\Mage\Directory\Model\Currency.php 中的函数 在第 197 行从 2format()更改formatPrecision为 4。

\lib\Zend\Currency.php$_options['precision']从 2 更改为 4

\app\design\adminhtml\default\default\template\catalog\product\edit\price\tier.phtml echo sprintf('%.2f', $_item['price']);更改为sprintf('%.4f', $_item['price'])

我查看了一些核心文件,如 invoice.php 或 adminhtml 文件(如果有四舍五入的话)。但我找不到任何有用的东西。

used extensions: (Magento 1.4.1.0)  
Asperience_DeleteAllOrders  
Flagbit_ChangeAttributeSet  
Mxperts_Invoice  
de_DE languagepack  

谢谢,greetz Rito

magento 圆形问题

(对不起图片中的德语)

4

3 回答 3

1

我的第一个建议是打开前端和后端提示 ( System>Config>Advanced>Developer),这样您就可以看到哪个块和哪个 phtml 视图负责呈现小数点后 2 位的内容。如果您安装Developer Toolbar 扩展程序,您会发现这要容易得多。

查看您的屏幕截图,我认为它来自 Admin Sales Order 视图,因此下面的 phtml 文件app/design/adminhtml/default/default/template/sales/order/create/totals和 Blocks =Mage_Adminhtml_Block_Sales_Order_Create_Totals_Default是一个很好的查看位置。该formatPrice函数似乎正在使用您已覆盖的 Store.php 和一些货币文件。

我怀疑@greg0ire 是正确的,这将需要一些远程调试来追踪。您可能会$options['precision']在某处被覆盖,因此您需要在执行时查看它的值。

祝你好运,JD

PS 我假设您已清除并禁用缓存...请注意,在 GUI 中清除adminhtml 缓存System>Cache Management,您必须手动删除var/cache.

于 2010-08-24T23:19:13.217 回答
0

“总计”是一个很好的提示,感谢乔纳森·戴

这是带有四个小数点的销售/发票的解决方案。

\app\code\local\Mage\Adminhtml\Block\Sales\Items\Abstract.php
更改以下代码:
第 292 行:function displayPrices()更改为return $this->displayRoundedPrices($basePrice, $price, 4, $strong, $separator);
第 305 行:$precision=2变为$precision

\app\code\local\Mage\Sales\Model\Order.php 第 1358 行:

public function formatPrice($price, $addBrackets = false)
    {
        return $this->formatPricePrecision($price, 4, $addBrackets);
    }

我知道它很脏,但效果很好:)

于 2010-08-26T12:48:09.593 回答
0

在 magento 1.5.1 中找到了一种不同的简单方法

到 code/core/Mage/Directory/Model/Currency.php

更改第 194 行。

公共函数格式($price, $options=array(), $includeContainer = true, $addBrackets = false) { return $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets); }

0 - 表示价格的精确点。

于 2011-05-11T21:51:23.620 回答