Odoo Help


How to add supplier field in Sales order form? [Closed]

on 4/8/13, 3:24 AM 4,585 views

The Question has been closed

Sudhir Arya (ERP Harbor Consulting Services)
on 04/18/2013 05:18:05

I am using openerp v7.

Mainly in openerp-->In sales order form, first we choose customer name and then choose products.

But my requirement is little different. In my sales order form i want to add a supplier (dropdown)field. And I added supplier field with below code.

<field name="x_supplier" context="{'default_customer':0,'search_default_supplier':1,'default_supplier':1}"/>

Thus I added supplier field.

Next I want to select products on the on_change of the supplier. ie, When I choose a supplier, its corresponding products must be shown in the dropdown list. How can I implement it?

Thanks in Advance...

How can you relate products with supplier? I mean how can we come to know which are suppliers corresponding products?

Sudhir Arya (ERP Harbor Consulting Services)
on 4/8/13, 3:59 AM

I have add Supplier in each products. In product form, there is a Procurement Tab here we can add supplier of the corresponding product. Can we connect this product and supplier? Awaiting your reply...And Thanks for your fast reply....

on 4/8/13, 4:27 AM

Shall i ask you 2 questions? 1. Where should i paste the class sale_order_line(osv.Model): in sale.py?(I pasted last of that .py file) 2. Where should i paste the <record model="ir.ui.view" id="view_sale_order_inherit_form"> in sale_view.xml? (I pasted last of that .xml file)

on 4/10/13, 4:13 AM

Are you directly changing in core modules? You should create your own custom module rather than making changes in core modules.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/10/13, 4:20 AM

Is it not possible to change the sale module?

on 4/10/13, 4:26 AM

With this code can i create a custom module?

on 4/10/13, 4:27 AM

If you don't want to create custom module then paste the onchange_supp inside sale.order.line in sale.py and paste the &lt;field name="x_supplier_id ...." in sale.order form view before order_line/tree/product_id

Sudhir Arya (ERP Harbor Consulting Services)
on 4/10/13, 4:31 AM

Yes you can create custom module. Right now where you are changing?

Sudhir Arya (ERP Harbor Consulting Services)
on 4/10/13, 4:31 AM

Ok. Then follow what I said in my earlier comment.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/10/13, 4:35 AM

ok. in onchange_supp(supplier_id) how should i mention it? supplier_id or x_supplier_id?

on 4/10/13, 4:38 AM

It doesn't matter what variable name you use in method but it should be meaningful. You can either use supplier_id or x_supplier_id. It doesn't matter.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/10/13, 4:42 AM

Hi Sudhir, Very Thanks to You. Error Cleared. And it is working Fine. Thanks a Lot.

on 4/10/13, 6:57 AM

My pleasure that my efforts have solved your problem.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/10/13, 6:59 AM

Did you know how to create a new report of my custom module?

on 4/10/13, 7:11 AM

Yes, I do.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 2:51 AM

I want to implement it in Openerp7.0. How can I?

on 4/11/13, 3:39 AM

You can create report same way as v6.0 and v6.1

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 3:49 AM

I didnt create any report in v6.0 & v6.1. I had edited the existing report in v7.0 using openoffice3.2. But dont know to create a new report for a custom module.

on 4/11/13, 3:55 AM

I used to create sxw file first, then convert it in rml file and then create parser.py file. You can refer http://doc.openerp.com/v6.1/developer/05_reports.html#openerp-server-pdf-output.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 4:16 AM

I tried all these. But no output.

on 4/11/13, 4:36 AM

Then write post about your problem and post related code.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 4:43 AM

I already posted it. "Doubt about report in openerp7.0"

on 4/11/13, 4:55 AM

So what is your doubt?

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 4:59 AM

other two posts 1."Doubt to export .rml file from .sxw file" , 2. Doubt about Report Generation in OpenERP.( i had tried in ubuntu, but when i implement it in windows7 errored as in the earlier post)

on 4/11/13, 5:16 AM

Did you get my doubt?

on 4/11/13, 6:44 AM

Sorry. I don't have any idea about windows.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 6:50 AM

Did u try it with ubuntu? Then please help me.

on 4/11/13, 6:58 AM

See my answer for your question about convert sxw to rml.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 8:08 AM

Yes, Answer is fine. But my requirement is in windows.

on 4/11/13, 8:23 AM

Ok. I never developed reports in windows environment.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/11/13, 8:29 AM

Ok. Very very Thanks for your help.

on 4/11/13, 8:30 AM

Sudhir Arya (ERP Harbor Consulting Services)

--Sudhir Arya (ERP Harbor Consulting Services)--
| 6 8 8
Ahmedabad, India
--Sudhir Arya (ERP Harbor Consulting Services)--

• Co-Founder & Co-Owner at ERP Harbor Consulting Services

• ERP Consultant / ERP Customization / TechnoFunctional Expert

• Sound knowledge in Python, Odoo (Open ERP), XML, PostgreSQL

• Domain knowledge of Sale Management, Purchase Management, Warehouse Management, Manufacturing, Multi Company Configuration & Management, HR Management, Medical Management, Construction Management, Education Management, Point of Sale, Third Party Integrations

• Positive attitude and quick Learner

• Good analytical skill, quick bug and issue tracing and find the solution

• Good knowledge and experience in payment gateway integration with Odoo

• Ready to accept new challenges

• Active Memeber On Stackoverflow 




Sudhir Arya
ERP Harbor Consulting Services
Sudhir Arya (ERP Harbor Consulting Services)
On 4/8/13, 5:37 AM
class sale_order_line(osv.Model):
    _inherit = 'sale.order.line'
    _columns = {
        'x_supplier': fields.many2one('res.partner', 'Supplier'),

    def onchange_supp(self, cr, uid, ids, supplier_id):
        res = []
        product_obj = self.pool.get('product.product')
        supp_info_obj = self.pool.get('product.supplierinfo')
        supp_info_ids = supp_info_obj.search(cr, uid, [('name', '=', supplier_id)])
        product_ids = product_obj.search(cr, uid, [('seller_ids', 'in', supp_info_ids)])
        domain = {
        'product_id':[('id', 'in', product_ids)],
    return {'domain': domain}

Add x_supplier in sale order line tree view:

<record model="ir.ui.view" id="view_sale_order_inherit_form">
    <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="//notebook/page[@string='Order Lines']/field[@name='order_line']/tree/field[@name='product_id']" position="before">
            <field name="x_supplier_id" context="{'default_customer':0,'search_default_supplier':1,'default_supplier':1}" on_change="onchange_supp(x_supplier_id)"/>

I tried this code and is working for me.

Hope this will fulfil your requirement.


Oh. So you want to put supplier field in sale.order.line? And you want to add products related to selected supplier? Am I right?

Sudhir Arya (ERP Harbor Consulting Services)
on 4/8/13, 10:16 AM

Yes you are right. I am looking the same. Can you help me?

on 4/10/13, 2:18 AM

Then this code will work. I have updated it. You just try it.

Sudhir Arya (ERP Harbor Consulting Services)
on 4/10/13, 2:21 AM

Priyesh Solanki (pso)

--Priyesh Solanki (pso)--

| 2 2 4
--Priyesh Solanki (pso)--
Priyesh Solanki (pso)
On 4/8/13, 5:19 AM

You can try this:

supplier_info_obj = self.pool.get('product.supplierinfo')
supplier_info_ids = supplier_info_obj.search(cr, uid, [('name','=',x_supplier)],context=context)
product_ids = []
for supplier_info_id in supplier_info_obj.browse(cr, uid, supplier_info_ids, context=context):
print product_ids

As I don't know exactly regarding x_supplier field definition, I use it by considering many2one(return type integer). Table for Supplier in product is referring this object 'product.supplierinfo'.

Thanks, Priyesh Solanki

Hi Priyesh, Where i have to add this code? In sale.py? Which line? Please reply... And x_supplier is custom field i added in sale.order model. I have also see supplier field in product.supplierinfo model. How can i connect it with sale.order model?

on 4/8/13, 5:28 AM

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 4/8/13, 3:24 AM
Seen: 4585 times
Last updated: 9/26/17, 12:18 AM