在销售订单中为销售订单行添加字段

时间:2017-06-27 23:55:28

标签: openerp

我想添加一个计算字段" markup"销售订单中的销售订单行(报价/销售订单)。

enter image description here

我创建了模型:

class SaleOrderLine(models.Model):
    _inherit = "sale.order.line"

    markup = fields.Float(compute='_compute_markup', digits=dp.get_precision('.2f%'), store=True)

    def _compute_markup(self, order_id, product_id, product_uom_id):
        frm_cur = self.env.user.company_id.currency_id
        to_cur = order_id.pricelist_id.currency_id
        purchase_price = product_id.standard_price
        if product_uom_id != product_id.uom_id:
            purchase_price = product_id.uom_id._compute_price(purchase_price, product_uom_id)
        ctx = self.env.context.copy()
        ctx['date'] = order_id.date_order
        price = frm_cur.with_context(ctx).compute(purchase_price, to_cur, round=False)
        return price

继承sale.view_order_form的新视图:

<?xml version="1.0"?>
<odoo>
    <record id="view_order_form_margin" model="ir.ui.view">
        <field name="name">sale.order.form.margin</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">
            <xpath expr='//field[@name="order_line"]/form/group/group/field[@name="price_unit"]' position="before">
                <field name="markup"/>
            </xpath>
        </field>
    </record>
</odoo>

但是未显示该字段(当您检查继承当前视图的视图时,将显示该视图)。我重新加载了所有内容,重新启动了服务器并清除了浏览器缓存。

欢迎任何关于为什么不显示该领域的提示。也许Xpath表达? 感谢。

1 个答案:

答案 0 :(得分:5)

可能正在销售。订单查看price_unit获得2次,因此混淆添加和销售订单视图的位置包括销售订单行的表单视图和树视图。您可以在视图中获取代码。 窗体视图:

<xpath expr="//notebook//page//field//form//field[@name='price_unit']" position="before">
    <field name="markup"/>
</xpath>
树视图中的

<xpath expr="//notebook//page//field//tree//field[@name='price_unit']" position="before">
  <field name="markup"/>
</xpath>