跳至內容
選單
此問題已被標幟
2 回覆
11613 瀏覽次數

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
頭像
捨棄
作者

Thanks a lot

最佳答案

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

頭像
捨棄
最佳答案
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
頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
2
5月 21
8504
2
3月 24
11905
5
9月 20
6240
1
12月 19
9663
1
2月 24
6501