This question has been flagged
2 Replies
10288 Views

In the Sale Order Line table, I want to add columns Quantity on Hand from the Inventory tab in Product view afer the columns Product. To achieve this, I try to create a custom module with self.pool.get and browse method. The problem right now is it shows the error of invalid XML for view architecture. Please help me.

Here is my code

qty_available.py

from openerp.osv import fields, osv
from openerp import netsvc, tools, pooler
import openerp.addons.decimal_precision as dp

class qty_available_add(osv.osv):

    _inherit = "sale.order"

    _columns = {
        'qty_available': fields.float('Qty Disponible',digits_compute= dp.get_precision('Product UoS')),
    }

    def get_qty(self, cr, uid, id, product, context=None):
        wg_qty_avail = self.pool.get('product.product').browse(cr,uid,product,context=None).qty_available
        result['qty_available'] = wg_qty_avail


qty_available_add()

qty_available.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    <record model="ir.ui.view" id="qty_available">
        <field name="name">sale.order.form</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form" />
        <field name="arch" type="xml">
            <xpath expr="/form/sheet/notebook/page/field[@name='order_line']/form/group/group/field[@name='product_id']" position="after">
                <field name="qty_available" />
            </xpath>
        </field>
    </record>
  </data>
</openerp>

Thank you very much

Avatar
Discard
Best Answer

Your xpath is wrong update it like as given below:

<record id="view_sale_textline_tree" model="ir.ui.view">
    <field name="name">sale.order.form</field>
    <field name="model">sale.order</field>
    <field name="type">form</field>
    <field name="priority" eval="8"/>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">
        <xpath expr="//field[@name='product_id']" position="after">
            <field name="CUSTOM FIELD NAME" />
        </xpath>
        <xpath expr="//tree/field[@name='product_id']" position="after">
            <field name="CUSTOM FIELD NAME"/>
        </xpath>
    </field>
</record>

Note: and inherit sale.order.line instead of sale.order

Avatar
Discard
Best Answer

I also think your py file is incorrect. You would need to create a fields.function field in stead of the fields.float.

Regards, André Schenkels

Avatar
Discard