Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

销售订单的毛利值不更新的问题及解决方法



  • 帐套安装了sale_margin模块,之前做的销售订单都能看到毛利,突然发现新做的销售订单没有毛利?
    查了后台的表,发现sale_order_line的margin有值,但是sale_order的表的margin列缺没值,
    想在表上加个触发器实现自动更新,可惜pg里触发器不会写,耐心看了代码查到了原因,和我装了sale_layout模块有关,
    原因如下:
    sale_margin模块,继承了sale.view_order_form,添加了purchase_price字段,销售收入- 采购成本 = 毛利
            <field name="inherit_id" ref="sale.view_order_form" />
            <field name="arch" type="xml">
                <xpath expr="//field[@name='order_line']/form//field[@name='price_unit']" position="after">
                    <field name="purchase_price"/>
                </xpath>
            </field>

    而sale_layout模块也继承了sale.view_order_form,
                <field name="inherit_id" ref="sale.view_order_form"/>
                <field name="priority">1000</field>
                <field name="type">form</field>
                <field name="arch" type="xml">
                    <xpath expr="/form/notebook/page/field[@name='order_line']" position="replace">
                        <field name="abstract_line_ids" colspan="4" nolabel="1" widget="one2many_list">
                                <form string="Order Line">

    这个模块还没有研究过,卸载了该模块新建的销售订单毛利就正常显示了。
    之前的老数据可以执行这个sql更新:
    update sale_order set margin = (select margin from sale_order_line where sale_order_line.order_id=sale_order.id)



  • 那这就是OE的不对了哇.  sale_layout 模块的安装顺序. 要在 sale_margin 之前 应该就OK了.

    这个要怎么去调整或者模块开发时要注意的呢?


Log in to reply