Skip to Content
This question has been flagged
2 Replies
6905 Views

I am trying to get the field product_code from the table product.supplierinfo in the product.product tree view so that my users can then make searches with the supplier code instead of the internal reference.

Is there a Tutorial or a snippet that could help me do so ?

Since internal reference can have many related suppliers/suppliers code, would there be a better way to do this ?

Avatar
Discard
Best Answer

Based on your requirement to inherit product object and create functional field to store product_code in product table. And add the field in tree view and search view.

Python Code:-

class product_product(osv.osv):
    _inherit = "product.product"

def _sup_product_code(self, cr, uid, ids, name, arg, context=None):
    res = {}
    if context is None:
        context = {}
    sup_code_list = []    
    for product in self.browse(cr, uid, ids, context=context):
        for supinfo in product.seller_ids:
            if isinstance(supinfo.product_code, str) or isinstance(supinfo.product_code, unicode):
                sup_code_list.append(supinfo.product_code)   
        sup_code_res = ', '.join(sup_code_list)     
        res[product.id] = sup_code_res
    return res

_columns = {
    'sup_product_code': fields.function(_sup_product_code, string="Supplier Product Code", type='char', store=True),
}

Xml File:-

<record id="product_search_view_suppcode" model="ir.ui.view">
            <field name="name">product.search.suppcode</field>
            <field name="model">product.product</field>
            <field name="inherit_id" ref="product.product_search_form_view"/>
            <field name="arch" type="xml">
                <field name="name" position="after">
                    <field name="sup_product_code"/>
                </field>
            </field>
        </record>

        <record id="product_tree_view_suppcode" model="ir.ui.view">
            <field name="name">product.tree.suppcode</field>
            <field name="model">product.product</field>
            <field name="inherit_id" ref="product.product_product_tree_view"/>
            <field name="arch" type="xml">
                <field name="state" position="after">
                    <field name="sup_product_code"/>                    
                </field>
            </field>
        </record>

Note: In the Functional Field use Store=False in the first time (then only it generate all the Product Code in tree view for old records). After that update the code Store=True and it execute the Product Code after saving the record and also we can use the field in Filter Options.

Avatar
Discard
Author Best Answer

Finally, the module product_manufacturer_extension adds the ability to do so.

Avatar
Discard
Related Posts Replies Views Activity
1
Sep 23
4245
3
Jul 24
21945
0
May 15
2398
2
May 15
2974
2
Apr 15
3778