İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
6901 Görünümler

Hi,

I need to override the product_id_change function defined in sale.order.line, so it doesn't change the unit_price every time I update the quantity.

I understand I have to use super, but I'm not sure how it all works.

Can anyone help?

Thank you.

Avatar
Vazgeç
En İyi Yanıt

Using super() allows to change behavior (returned value or any logic before that) of the method you are super'ing. In this particular case you may find it convenient to replicate all code of the supered method (as it contains significant amount of logic, you dont want to lose it), and only change what is necessary.

To make the change, super the product_id_change() in your module:

class SaleOrderLine(orm.Model):

    _inherit = 'sale.order.line'

    def product_id_change(
        self, cr, uid, ids,
        pricelist, product, qty=0,
        uom=False, qty_uos=0, uos=False,
        name='', partner_id=False,
        lang=False, update_tax=True,
        date_order=False, packaging=False,
        fiscal_position=False, flag=False,
        context=None):

        super(SaleOrderLine, self).product_id_change(
            cr, uid, ids, pricelist,
            product, qty, uom, qty_uos,
            uos, name, partner_id, lang,
            update_tax, date_order, packaging=packaging,
            fiscal_position=fiscal_position,
            flag=flag, context=context)
       # Your changes here

        return {'value': result, 'domain': domain, 'warning': warning}

 

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
1
Ara 15
7390
1
Kas 20
2957
4
Ara 19
7946
1
Mar 16
4077
1
Şub 16
6993