有没有办法在另一个字段更改之前不计算计算字段?

时间:2019-04-01 17:44:21

标签: python python-3.x odoo odoo-11 erp

如果我将模块升级到包含此方法的最新版本,则所有价格都变为0? 我应该怎么做才能防止价格变化,直到我在平均场中增加任何回报为止。

我在产品模板上添加了计算字段以计算某些项目的平均值并显示 我还在list_price字段上添加了一种计算方法,以上面的平均值和成本价格进行计算。

@api.one
@api.depends('item.pro', 'drc.pro', 'dsc.pro', 'org.pro', 'car.pro', 'model.pro', 'year.pro')
def update_bar(self):
        list=[self.item.pro, self.drc.pro, self.dsc.pro, self.org.pro, self.car.pro, self.model.pro, self.year.pro]
        list = [float(x) for x in list if x is not False]
        try:
            self.pro =float(sum(list) / len(list))
        except ZeroDivisionError:
            if self.pro == float("inf") or self.pro == float("-inf") :
                return float('nan')  # or x or return whatever makes sense
            pass

@api.one
@api.depends('pro')
def testprice(self):
    if self.pro != 0 :
        for template in self:
            template.list_price = float(((self.pro + self.ex_pro) * self.standard_price / 100) + self.standard_price)

list_price = fields.Float(string="Price", required=False,compute=testprice)
pro = fields.Float(string="profit mergin", required=False,compute=update_bar,)
ex_pro = fields.Float(string="Extra profit", required=False,placeholder= "%" )

0 个答案:

没有答案