我的商店最多需要4个小数点 . 到目前为止,我采取了一些措施,他们在产品的前端和后端工作正常 . 仅在销售/发票价格中,税金和总计仍然四舍五入到小数点后2位 .
我编辑/覆盖了以下文件:
\程序\代码\本地\法师\ Adminhtml \块\目录\产品\编辑\标签\选项\ Option.php
在第283行附近,我在 return number_format($value, 4, null, '');
改变了 return number_format($value, 2, 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 \ DEFAULT \ DEFAULT \模板\目录\产品\编辑\价格\ tier.phtmlecho 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
(图片中的德语对不起)
3 回答
我的第一个建议是打开前端和后端提示(
System>Config>Advanced>Developer
),这样你就可以看到哪个块和哪个phtml视图负责渲染2位小数的内容 . 如果您安装Developer Toolbar extension,您会发现更容易 .查看截图,我认为这来自Admin Sales Order视图,因此
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']
可能会被某处覆盖,因此您需要在执行时查看它的值 .祝你好运,JD
附:我假设您已清除并禁用缓存...请注意,在
System>Cache Management
GUI中清除了adminhtml缓存 not ,您必须手动删除var/cache
中的文件 .对于Jonathan Day来说,“总计”是一个很好的暗示
以下是四位小数点的销售/发票解决方案 .
\程序\代码\本地\法师\ Adminhtml \块\销售\项目\ 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行:
我知道它很脏,但它工作正常:)
在magento 1.5.1中找到了一种不同的简单方法
得到代码/核心/法师/目录/模型/ Currency.php
更改行号194 .
公共函数格式($ price,$ options = array(),$ includeContainer = true,$ addBrackets = false){return $ this-> formatPrecision($ price,0,$ options,$ includeContainer,$ addBrackets); }
0 - 表示价格的精确点 .