我的商店最多需要4个小数点。到目前为止,我采取了一些措施,他们在前面工作得很好。后端产品。仅在销售/发票价格中,税金和总计仍然四舍五入到小数点后两位。
我编辑/覆盖了以下文件:
\应用\代码\本地\法师\ Adminhtml \块\目录\产品\编辑\标签\选项\ Option.php
在第283行的某处,我在return number_format($value, 2, null, '');
return number_format($value, 4, null, '');
\应用\代码\本地\法师\ Adminhtml \块\目录\产品\助手\表格\ Price.php
与Option.php相同
\应用\代码\本地\法师\核心\型号\ Store.php
将函数roundPrice()
第740行的输出更改为return round($price, 4);
\应用\代码\本地\法师\目录\模型\ Currency.php
函数format()
在第197行中将formatPrecision
从2更改为4。
\ lib中\ Zend的\ Currency.php
$_options['precision']
从2更改为4
\应用\设计\ adminhtml \默认\默认\模板\目录\产品\编辑\价格\ tier.phtml
echo sprintf('%.2f', $_item['price']);
已更改为sprintf('%.4f', $_item['price'])
我调查了一些核心文件,比如invoice.php或adminhtml文件,如果有舍入的话。但我找不到任何有用的东西。
使用的扩展名:( Magento 1.4.1.0)
Asperience_DeleteAllOrders
Flagbit_ChangeAttributeSet
Mxperts_Invoice
de_DE语言包
谢谢,greetz Rito
(图片中的德语对不起)
答案 0 :(得分:1)
我的第一个建议是打开前端和后端提示(System>Config>Advanced>Developer
),这样你就可以看到哪个块和哪个phtml视图负责呈现2位小数的内容。如果您安装Developer Toolbar extension,您会发现更容易。
查看您的屏幕截图,我认为它来自管理员销售订单视图,因此app/design/adminhtml/default/default/template/sales/order/create/totals
下的phtml文件和Blocks = Mage_Adminhtml_Block_Sales_Order_Create_Totals_Default
是一个值得关注的好地方。 formatPrice
函数似乎使用了已覆盖的Store.php和一些Currency文件。
我怀疑@ greg0ire是正确的,这个将采取一些远程调试来追踪。您的$options['precision']
可能会被某处覆盖,因此您需要在执行时查看它的值。
P.S。我假设您已清除并禁用缓存...请注意,在System>Cache Management
GUI中清除了未的adminhtml缓存,您必须手动删除var/cache
中的文件。
答案 1 :(得分:0)
“总计”是一个很好的暗示,对乔纳森日来说是
以下是四位小数点的销售/发票解决方案。
\应用\代码\本地\法师\ Adminhtml \块\ SALES \项目\ Abstract.php
更改以下代码:
第292行:function displayPrices()
更改为return $this->displayRoundedPrices($basePrice, $price, 4, $strong, $separator);
第305行:$precision=2
到$precision
\应用\代码\本地\法师\ SALES \模型\ Order.php 1358行:
public function formatPrice($price, $addBrackets = false)
{
return $this->formatPricePrecision($price, 4, $addBrackets);
}
我知道它很脏,但效果很好:)。
答案 2 :(得分:0)
在magento 1.5.1中找到了一种不同的简单方法
得到代码/ core / Mage / Directory / Model / Currency.php
更改行号194.
公共函数格式($ price,$ options = array(),$ includeContainer = true,$ addBrackets = false) { 返回$ this-> formatPrecision($ price,0,$ options,$ includeContainer,$ addBrackets); }
0 - 表示价格的精确点。