İçereği Atla
Menü
Bu soru işaretlendi
2 Cevaplar
8030 Görünümler

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
Vazgeç
En İyi Yanıt

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
Vazgeç
Üretici En İyi Yanıt

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

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
1
Eyl 23
5341
3
Tem 24
24513
0
May 15
3159
2
May 15
4051
2
Nis 15
4527