Odoo Help


Fetch Sale Order Lines from mrp.bom lines

Cyrus Waithaka
on 5/13/15, 7:56 PM 988 views

I am trying to auto-populate the sales order lines with the records in an mrp bill of materials record. This means that a user will select a product's bill of material when creating a sales order and odoo will fill pick all the "building blocks" of the selected product.

This is what I have done so far:

class sale_order(osv.osv): 
_inherit = "sale.order" _columns = {'bom_id' :fields.many2one('mrp.bom',string='Product to Manufacture'), } def onchange_bom_id(self,cr,uid,ids,bom_id,context=None): this_order = self.browse(cr, uid, ids, context=context) o_lines = this_order.order_line #preserve what was there bom = self.pool.get('mrp.bom').browse(cr, uid, bom_id, context=context) bom_lines = bom.bom_line_ids for line in bom_lines: data = { 'product_id': line.product_id.id, 'name': line.product_id.name, #'price_unit': line.price_unit, 'product_uom_qty': line.product_qty, 'product_uom': line.product_uom.id, } o_lines.append((0, 0, data)) return {'value': {'order_line':o_lines}}

I have then added the bom_id field to the sales order view as follows

        <record id="view_order_form" model="ir.ui.view">
<field name="name">nisbau_quotation_order_form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<field name='date_order' position="after">
<field name="number_of_days" on_change="onchange_days(number_of_days, context)"/>
<field name="validity_date"/>
<field name="partner_id" position="after">
<field name="bom_id" on_change="onchange_bom_id(bom_id, context)"/>

I am however stuck with this. Any pointers will highly be appreciated.

On 11/11/15, 4:12 AM


Try installing the module Mrp Bom Sale Pack.

Hope this will help you.

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

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

2 follower(s)


Asked: 5/13/15, 7:56 PM
Seen: 988 times
Last updated: 12/29/16, 1:26 PM