如何为销售订单odoo 9的小计创建新的小数精度

时间:2018-08-06 08:11:59

标签: python-2.7 odoo-9

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

2 个答案:

答案 0 :(得分:2)

当解析器尝试获取货币字段的精度时,首先将查找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>

答案 1 :(得分:1)

解决方案是将字段类型从货币修改为浮动:  price_subtotal = fields.Float(compute='_compute_amount', string='Subtotal', digits=dp.get_precision('Account'))