首页 文章

Magento - 发票中的小数点/ be

提问于
浏览
0

我的商店最多需要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.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

magento round issue

(图片中的德语对不起)

3 回答

  • 1

    我的第一个建议是打开前端和后端提示( 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 中的文件 .

  • 0

    对于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行:

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

    我知道它很脏,但它工作正常:)

  • 0

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

    得到代码/核心/法师/目录/模型/ Currency.php

    更改行号194 .

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

    0 - 表示价格的精确点 .

相关问题