代码之家  ›  专栏  ›  技术社区  ›  Dhouha

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

  •  1
  • Dhouha  · 技术社区  · 6 年前

    我使用的是odoo 9,我已在“设置”->“技术”->“数据库结构”->“小数精度”->“使用数字3进行小计舍入”中创建了帐户。然后我加入了 销售.py price_subtotal = fields.Monetary(compute='_compute_amount', string='Subtotal', digits=dp.get_precision('Account')) . 之后我更新了两个模块 销售 小数精度 . 但是当我创建一个新的saleorder时,小计舍入没有变化,它显示的是2位而不是3位。有什么需要帮忙的吗?我已经被这个问题困扰了好几天了

    2 回复  |  直到 6 年前
        1
  •  2
  •   Kenly    6 年前

    当解析器试图获得货币字段的精度时,它首先查找 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>
    
        2
  •  0
  •   Dhouha    6 年前

    解决方案是修改 货币的 浮子 : price_subtotal = fields.Float(compute='_compute_amount', string='Subtotal', digits=dp.get_precision('Account'))