如何使该方法在odoo上针对特定记录运行一次?

2024-05-16 11:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用一个按钮来做一个方法,将一张账单的总价值加到另一个对象的价值上,它工作得很好,但是每次我按下按钮,它都会将账单的总价值加到另一个对象的价值上,我需要任何东西来制作场景,以防止多次增加账单价值,下面是代码

class acc_inv_prop(models.Model):
_inherit = 'account.invoice'

property_id = fields.Many2one(comodel_name="account.asset.asset", string="Property", required=False, )

def prop_up_value(self):
    self.property_id.value += self.amount_total
    pass

我可以在object account.asset.asset上执行什么操作来检查当前票据之前是否已添加并引发错误,如果票据是新票据,则正常添加其值,但也只能添加一次

任何帮助都将不胜感激


Tags: 对象方法selfidvalue场景accountproperty
1条回答
网友
1楼 · 发布于 2024-05-16 11:35:49

除了给account.asset.asset的价值增加一些让我不舒服的东西之外(你不应该从发票中确定资产的全部价值吗?)

您需要另外一个字段来记住您已经添加了金额:

class acc_inv_prop(models.Model):
    _inherit = 'account.invoice'

    property_id = fields.Many2one(comodel_name="account.asset.asset", string="Property", required=False, )
    property_last_added_value = fields.Float(string='Last Value Added to Property', readonly=True, digits=0)

    def prop_up_value(self):
        if self.property_last_added_value != self.amount_total:
            self.property_id.value -= self.property_last_added_value
            self.property_id.value += self.amount_total
            self.property_last_added_value = self.amount_total


相关问题 更多 >