Skip to Content
Menu
This question has been flagged
2 Replies
11630 Rodiniai

I'm using odoo 10 i inherited from module stock.quant, i add a new attribute and a new method.

i want my method execute after each creating a new object in stock.quant.

This is my code.

Thanks for help.


class stock_quant(models.Model):
    _inherit = 'stock.quant'
    inventory_value_charge = fields.Float('Total Value',store=True,compute='update_stock_value')

    @api.one
    @api.depends('qty')
    def update_stock_value(self):
        stock_price_obj = self.env['stock.price.partition'].search([('id', '!=', False)])
        val_obj = stock_price_obj.search([('reception.pack_operation_product_ids.pack_lot_ids.lot_id.id', '=', self.lot_id.id)])
        if val_obj!= False:
            val_obj.calccule_price()
        else:
            self.inventory_value_charge=self.inventory_value
        #stock_price_obj = self.env['stock.price.partition'].search([('reception.pack_operation_product_ids.pack_lot_ids.lot_id.id', '=', self.lot_id.id)])
        return True
Portretas
Atmesti
Autorius

Thanks a lot

Best Answer

hello

make the super call your create method and then after call your method.

@api.model

def create(self, vals):

    res = super(classname, self).create(vals)

    res.update_stock_value() # call your method

    return res

Portretas
Atmesti
Best Answer
Hello Mohamed,
use @api.multi instead of @api.one
you are using @api.depends('qty'), it means this method will call whenever the qty change on stock quant
Portretas
Atmesti
Related Posts Replies Rodiniai Veikla
2
geg. 21
8515
2
kov. 24
11933
5
rugs. 20
6255
1
gruod. 19
9666
1
vas. 24
6522