Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使该方法在odoo上针对特定记录运行一次?_Python_Python 3.x_Odoo_Odoo 12 - Fatal编程技术网

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

Python 如何使该方法在odoo上针对特定记录运行一次?,python,python-3.x,odoo,odoo-12,Python,Python 3.x,Odoo,Odoo 12,我试图用一个按钮来做一个方法,将一张账单的总价值加到另一个对象的价值上,它工作得很好,但是每次我按下按钮,它都会将账单的总价值加到另一个对象的价值上,我需要任何东西来制作场景,以防止多次增加账单价值,下面是代码 class acc_inv_prop(models.Model): _inherit = 'account.invoice' property_id = fields.Many2one(comodel_name="account.asset.asset", string="Proper

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

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上执行什么操作来检查当前票据之前是否已添加并引发错误,如果票据是新票据,则正常添加其值,但也只能添加一次


除了给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



除了给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



这种想法可能会阻止我添加具有相同总成本的任何其他账单。添加的成本保存在每个账单
帐户上。发票
位于属性id旁边。因此,如果其总金额已添加或未添加,则每个发票将“记住”两张发票。我想,通过将两张发票链接到具有property_id的资产来添加两张发票会很好。(从混合手动输入(资产价值)和自动输入(添加金额)的一般想法来看,可能是危险的,也许您可以在
account.asset.asset
上添加一个包含属性的值,这是一个计算字段)这种想法可能会阻止我添加具有相同总成本的任何其他账单。添加的成本保存在每个账单
帐户上。发票
位于属性id旁边。因此,如果其总金额已添加或未添加,则每个发票将“记住”两张发票。我想,通过将两张发票链接到具有property_id的资产来添加两张发票会很好。(从混合手动输入(资产价值)和自动输入(添加金额)的一般想法来看,可能是危险的,也许您可以在
帐户.asset.asset
上添加一个值(包括属性),这是一个计算字段)您的意思是一个属性只允许添加一次吗?您的意思是一个属性只允许添加一次吗?