Skip to Content
Menu
This question has been flagged
2539 Views

I want to change the value of a variable when the forecasted quantity of a product is changed. I tried using the @api.onchange decorator, but it doesn't work. The forecasted quantity change, but the variable keeps the same value. I tried this:

class MyProduct(models.Model):    
    _inherit = 'product.product'     
    was_changed = fields.Boolean(default = False)
    @api.onchange('virtual_available')
        def qtychanged(self):
            self.was_changed = True
            _logger.info('Product_Qty_Changed: %s', str(self.virtual_available))

After that, I tried to override the write method for my custom class, like this:

class MyProduct(models.Model):
    _inherit = 'product.product'
    was_changed = fields.Boolean(default=False)

    @api.multi
    def write(self, values):
        if values['virtual_available']:
            values['was_changed'] = True
        # THE FOLLOWING LINES WERE IN THE ORIGINAL WRITE METHOD
        res = super(MyProduct, self).write(values)
        if 'standard_price' in values:
            self._set_standard_price(values['standard_price'])
        return res

But still, I have the same result. I can't seem to get that flag to change. So, any ideas?

Avatar
Discard