首页 > 解决方案 > 如何在销售订单odoo 9中为小计创建新的小数精度

问题描述

我正在使用 odoo 9,并且我在设置 -> 技术 -> 数据库结构 -> 小数精度 -> 帐户中创建了数字 3 用于小计舍入。然后我添加了sale.py price_subtotal = fields.Monetary(compute='_compute_amount', string='Subtotal', digits=dp.get_precision('Account')) 。之后我更新了两个模块saledecimal_precision。但是,当我创建一个新的销售订单时,小计四舍五入没有变化,它显示 2 位而不是 3 位。任何帮助,我现在都被这个问题困住了好几天

标签: python-2.7odoo-9

解决方案


当解析器试图获取货币字段的精度时,首先它会查找digits属性。

因此,要更改小数精度,您可以将digits属性添加到 xml 视图。

<record id="view_order_form_precision_3" model="ir.ui.view">
    <field name="name">view.order.form.precision</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">

        <xpath expr='//tree/field[@name="price_subtotal"]' position="attributes">
            <attribute name="digits">(14, 3)</attribute>
        </xpath>

        <field name="amount_untaxed" position="attributes">
            <attribute name="digits">(14, 3)</attribute>
        </field>

        <field name="amount_tax" position="attributes">
            <attribute name="digits">(14, 3)</attribute>
        </field>

        <field name="amount_total" position="attributes">
            <attribute name="digits">(14, 3)</attribute>
        </field>

    </field>
</record>

推荐阅读